image/svg+xml
+ rdf:resource="https://purl.org/dc/dcmitype/StillImage" />
diff --git a/img/lychee_setup.jpg b/img/lychee_setup.jpg
new file mode 100644
index 00000000..89fcbc70
Binary files /dev/null and b/img/lychee_setup.jpg differ
diff --git a/img/mailpile_setup.jpg b/img/mailpile_setup.jpg
new file mode 100644
index 00000000..0b376462
Binary files /dev/null and b/img/mailpile_setup.jpg differ
diff --git a/img/mailpile_setup_keys.jpg b/img/mailpile_setup_keys.jpg
new file mode 100644
index 00000000..25a5a1c4
Binary files /dev/null and b/img/mailpile_setup_keys.jpg differ
diff --git a/img/mesh_choose_avatar.jpg b/img/mesh_choose_avatar.jpg
new file mode 100644
index 00000000..e99a7141
Binary files /dev/null and b/img/mesh_choose_avatar.jpg differ
diff --git a/img/mesh_friend_request.jpg b/img/mesh_friend_request.jpg
new file mode 100644
index 00000000..ec150d4b
Binary files /dev/null and b/img/mesh_friend_request.jpg differ
diff --git a/img/mesh_incoming.jpg b/img/mesh_incoming.jpg
new file mode 100644
index 00000000..e2bff4d5
Binary files /dev/null and b/img/mesh_incoming.jpg differ
diff --git a/img/mesh_netbook.jpg b/img/mesh_netbook.jpg
new file mode 100644
index 00000000..b9138771
Binary files /dev/null and b/img/mesh_netbook.jpg differ
diff --git a/img/mesh_new_blog.jpg b/img/mesh_new_blog.jpg
new file mode 100644
index 00000000..0c7530ad
Binary files /dev/null and b/img/mesh_new_blog.jpg differ
diff --git a/img/mesh_new_blog2.jpg b/img/mesh_new_blog2.jpg
new file mode 100644
index 00000000..8b19b92b
Binary files /dev/null and b/img/mesh_new_blog2.jpg differ
diff --git a/img/mesh_paste_tox_id.jpg b/img/mesh_paste_tox_id.jpg
new file mode 100644
index 00000000..4aa7b219
Binary files /dev/null and b/img/mesh_paste_tox_id.jpg differ
diff --git a/img/mesh_router.jpg b/img/mesh_router.jpg
new file mode 100644
index 00000000..f769cd04
Binary files /dev/null and b/img/mesh_router.jpg differ
diff --git a/img/mesh_screenshot.jpg b/img/mesh_screenshot.jpg
new file mode 100644
index 00000000..422ec6bd
Binary files /dev/null and b/img/mesh_screenshot.jpg differ
diff --git a/img/mesh_share_files.jpg b/img/mesh_share_files.jpg
new file mode 100644
index 00000000..3cfcf0ea
Binary files /dev/null and b/img/mesh_share_files.jpg differ
diff --git a/img/mesh_signal.jpg b/img/mesh_signal.jpg
new file mode 100644
index 00000000..f26580dd
Binary files /dev/null and b/img/mesh_signal.jpg differ
diff --git a/img/mesh_text_chat.jpg b/img/mesh_text_chat.jpg
new file mode 100644
index 00000000..0ff67ad4
Binary files /dev/null and b/img/mesh_text_chat.jpg differ
diff --git a/img/mesh_view_blog.jpg b/img/mesh_view_blog.jpg
new file mode 100644
index 00000000..352de6e9
Binary files /dev/null and b/img/mesh_view_blog.jpg differ
diff --git a/img/mesh_visit_site.jpg b/img/mesh_visit_site.jpg
new file mode 100644
index 00000000..795d87eb
Binary files /dev/null and b/img/mesh_visit_site.jpg differ
diff --git a/img/microsd_reader.jpg b/img/microsd_reader.jpg
new file mode 100644
index 00000000..40811f5d
Binary files /dev/null and b/img/microsd_reader.jpg differ
diff --git a/img/ssh_key_verify.jpg b/img/ssh_key_verify.jpg
new file mode 100644
index 00000000..cd4d7afd
Binary files /dev/null and b/img/ssh_key_verify.jpg differ
diff --git a/img/syncthing_browser.jpg b/img/syncthing_browser.jpg
new file mode 100644
index 00000000..3e2551c0
Binary files /dev/null and b/img/syncthing_browser.jpg differ
diff --git a/img/tor_onion.jpg b/img/tor_onion.jpg
new file mode 100644
index 00000000..6210b9fc
Binary files /dev/null and b/img/tor_onion.jpg differ
diff --git a/locale/af/freedombone-addremove.json b/locale/af/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/af/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-adduser.json b/locale/af/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/af/freedombone-adduser.json
+++ b/locale/af/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/af/freedombone-app-blog.json b/locale/af/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/af/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-blogstatic.json b/locale/af/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/af/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-cjdns.json b/locale/af/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/af/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-dlna.json b/locale/af/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/af/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-dokuwiki.json b/locale/af/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/af/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-emacs.json b/locale/af/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/af/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-etherpad.json b/locale/af/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/af/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-gnusocial.json b/locale/af/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/af/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-gogs.json b/locale/af/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/af/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-htmly.json b/locale/af/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/af/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-hubzilla.json b/locale/af/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/af/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-ipfs.json b/locale/af/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/af/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-irc.json b/locale/af/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/af/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-jitsi.json b/locale/af/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/af/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-mediagoblin.json b/locale/af/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/af/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-mumble.json b/locale/af/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/af/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-pelican.json b/locale/af/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/af/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-pihole.json b/locale/af/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/af/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-postactiv.json b/locale/af/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/af/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-rss.json b/locale/af/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/af/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-searx.json b/locale/af/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/af/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-sip.json b/locale/af/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/af/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-syncthing.json b/locale/af/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/af/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-tahoelafs.json b/locale/af/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/af/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-tox.json b/locale/af/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/af/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-vim.json b/locale/af/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/af/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-webmail.json b/locale/af/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/af/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-wiki.json b/locale/af/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/af/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-xmpp.json b/locale/af/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/af/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-app-zeronet.json b/locale/af/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/af/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-backup-local.json b/locale/af/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/af/freedombone-backup-local.json
+++ b/locale/af/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-backup-remote.json b/locale/af/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/af/freedombone-backup-remote.json
+++ b/locale/af/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-base-chaoskey.json b/locale/af/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/af/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-base-email.json b/locale/af/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/af/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-config.json b/locale/af/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/af/freedombone-config.json
+++ b/locale/af/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/af/freedombone-controlpanel-user.json b/locale/af/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/af/freedombone-controlpanel-user.json
+++ b/locale/af/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/af/freedombone-controlpanel.json b/locale/af/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/af/freedombone-controlpanel.json
+++ b/locale/af/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/af/freedombone-image-customise.json b/locale/af/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/af/freedombone-image-customise.json
+++ b/locale/af/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/af/freedombone-image-mesh.json b/locale/af/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/af/freedombone-image-mesh.json
+++ b/locale/af/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-image.json b/locale/af/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/af/freedombone-image.json
+++ b/locale/af/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-keydrive.json b/locale/af/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/af/freedombone-keydrive.json
+++ b/locale/af/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/af/freedombone-mesh-batman.json b/locale/af/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/af/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-mesh-blog.json b/locale/af/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/af/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-mesh-install.json b/locale/af/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/af/freedombone-mesh-install.json
+++ b/locale/af/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-mesh-reset.json b/locale/af/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/af/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-mesh-visit-site.json b/locale/af/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/af/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-mirrors.json b/locale/af/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/af/freedombone-mirrors.json
+++ b/locale/af/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-pin-cert.json b/locale/af/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/af/freedombone-pin-cert.json
+++ b/locale/af/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-recoverkey.json b/locale/af/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/af/freedombone-recoverkey.json
+++ b/locale/af/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/af/freedombone-restore-local.json b/locale/af/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/af/freedombone-restore-local.json
+++ b/locale/af/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/af/freedombone-restore-remote.json b/locale/af/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/af/freedombone-restore-remote.json
+++ b/locale/af/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-rmuser.json b/locale/af/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/af/freedombone-rmuser.json
+++ b/locale/af/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-sec.json b/locale/af/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/af/freedombone-sec.json
+++ b/locale/af/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/af/freedombone-tests.json b/locale/af/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/af/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-update-date.json b/locale/af/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/af/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/af/freedombone-update-date.mo b/locale/af/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/af/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/af/freedombone-utils-backup.json b/locale/af/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/af/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/af/freedombone-utils-config.json b/locale/af/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/af/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-database.json b/locale/af/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/af/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-depends.json b/locale/af/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/af/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-final.json b/locale/af/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/af/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-git.json b/locale/af/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/af/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-help.json b/locale/af/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/af/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-interactive.json b/locale/af/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/af/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-keys.json b/locale/af/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/af/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-onion.json b/locale/af/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/af/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-rng.json b/locale/af/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/af/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-selector.json b/locale/af/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/af/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-setup.json b/locale/af/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/af/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-validation.json b/locale/af/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/af/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-web.json b/locale/af/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/af/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-utils-wifi.json b/locale/af/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/af/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/af/freedombone-wifi.json b/locale/af/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/af/freedombone-wifi.json
+++ b/locale/af/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/af/freedombone.json
+++ b/locale/af/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-addremove.json b/locale/ar/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ar/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-adduser.json b/locale/ar/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ar/freedombone-adduser.json
+++ b/locale/ar/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ar/freedombone-app-blog.json b/locale/ar/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ar/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-blogstatic.json b/locale/ar/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ar/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-cjdns.json b/locale/ar/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ar/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-dlna.json b/locale/ar/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ar/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-dokuwiki.json b/locale/ar/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ar/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-emacs.json b/locale/ar/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ar/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-etherpad.json b/locale/ar/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ar/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-gnusocial.json b/locale/ar/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ar/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-gogs.json b/locale/ar/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ar/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-htmly.json b/locale/ar/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ar/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-hubzilla.json b/locale/ar/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ar/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-ipfs.json b/locale/ar/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ar/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-irc.json b/locale/ar/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ar/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-jitsi.json b/locale/ar/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ar/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-mediagoblin.json b/locale/ar/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ar/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-mumble.json b/locale/ar/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ar/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-pelican.json b/locale/ar/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ar/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-pihole.json b/locale/ar/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ar/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-postactiv.json b/locale/ar/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ar/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-rss.json b/locale/ar/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ar/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-searx.json b/locale/ar/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ar/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-sip.json b/locale/ar/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ar/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-syncthing.json b/locale/ar/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ar/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-tahoelafs.json b/locale/ar/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ar/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-tox.json b/locale/ar/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ar/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-vim.json b/locale/ar/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ar/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-webmail.json b/locale/ar/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ar/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-wiki.json b/locale/ar/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ar/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-xmpp.json b/locale/ar/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ar/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-app-zeronet.json b/locale/ar/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ar/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-backup-local.json b/locale/ar/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ar/freedombone-backup-local.json
+++ b/locale/ar/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-backup-remote.json b/locale/ar/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ar/freedombone-backup-remote.json
+++ b/locale/ar/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-base-chaoskey.json b/locale/ar/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ar/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-base-email.json b/locale/ar/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ar/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-config.json b/locale/ar/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ar/freedombone-config.json
+++ b/locale/ar/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ar/freedombone-controlpanel-user.json b/locale/ar/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ar/freedombone-controlpanel-user.json
+++ b/locale/ar/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ar/freedombone-controlpanel.json b/locale/ar/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ar/freedombone-controlpanel.json
+++ b/locale/ar/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ar/freedombone-image-customise.json b/locale/ar/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ar/freedombone-image-customise.json
+++ b/locale/ar/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ar/freedombone-image-mesh.json b/locale/ar/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ar/freedombone-image-mesh.json
+++ b/locale/ar/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-image.json b/locale/ar/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ar/freedombone-image.json
+++ b/locale/ar/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-keydrive.json b/locale/ar/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ar/freedombone-keydrive.json
+++ b/locale/ar/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ar/freedombone-mesh-batman.json b/locale/ar/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ar/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-mesh-blog.json b/locale/ar/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ar/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-mesh-install.json b/locale/ar/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ar/freedombone-mesh-install.json
+++ b/locale/ar/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-mesh-reset.json b/locale/ar/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ar/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-mesh-visit-site.json b/locale/ar/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ar/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-mirrors.json b/locale/ar/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ar/freedombone-mirrors.json
+++ b/locale/ar/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-pin-cert.json b/locale/ar/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ar/freedombone-pin-cert.json
+++ b/locale/ar/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-recoverkey.json b/locale/ar/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ar/freedombone-recoverkey.json
+++ b/locale/ar/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ar/freedombone-restore-local.json b/locale/ar/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ar/freedombone-restore-local.json
+++ b/locale/ar/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ar/freedombone-restore-remote.json b/locale/ar/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ar/freedombone-restore-remote.json
+++ b/locale/ar/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-rmuser.json b/locale/ar/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ar/freedombone-rmuser.json
+++ b/locale/ar/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-sec.json b/locale/ar/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ar/freedombone-sec.json
+++ b/locale/ar/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ar/freedombone-tests.json b/locale/ar/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ar/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-update-date.json b/locale/ar/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ar/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ar/freedombone-update-date.mo b/locale/ar/freedombone-update-date.mo
deleted file mode 100644
index 61bee22c..00000000
Binary files a/locale/ar/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ar/freedombone-utils-backup.json b/locale/ar/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ar/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ar/freedombone-utils-config.json b/locale/ar/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ar/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-database.json b/locale/ar/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ar/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-depends.json b/locale/ar/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ar/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-final.json b/locale/ar/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ar/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-git.json b/locale/ar/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ar/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-help.json b/locale/ar/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ar/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-interactive.json b/locale/ar/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ar/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-keys.json b/locale/ar/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ar/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-onion.json b/locale/ar/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ar/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-rng.json b/locale/ar/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ar/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-selector.json b/locale/ar/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ar/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-setup.json b/locale/ar/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ar/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-validation.json b/locale/ar/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ar/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-web.json b/locale/ar/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ar/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-utils-wifi.json b/locale/ar/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ar/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ar/freedombone-wifi.json b/locale/ar/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ar/freedombone-wifi.json
+++ b/locale/ar/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ar/freedombone.json
+++ b/locale/ar/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-addremove.json b/locale/be/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/be/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-adduser.json b/locale/be/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/be/freedombone-adduser.json
+++ b/locale/be/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/be/freedombone-app-blog.json b/locale/be/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/be/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-blogstatic.json b/locale/be/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/be/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-cjdns.json b/locale/be/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/be/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-dlna.json b/locale/be/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/be/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-dokuwiki.json b/locale/be/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/be/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-emacs.json b/locale/be/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/be/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-etherpad.json b/locale/be/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/be/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-gnusocial.json b/locale/be/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/be/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-gogs.json b/locale/be/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/be/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-htmly.json b/locale/be/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/be/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-hubzilla.json b/locale/be/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/be/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-ipfs.json b/locale/be/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/be/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-irc.json b/locale/be/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/be/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-jitsi.json b/locale/be/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/be/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-mediagoblin.json b/locale/be/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/be/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-mumble.json b/locale/be/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/be/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-pelican.json b/locale/be/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/be/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-pihole.json b/locale/be/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/be/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-postactiv.json b/locale/be/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/be/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-rss.json b/locale/be/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/be/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-searx.json b/locale/be/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/be/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-sip.json b/locale/be/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/be/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-syncthing.json b/locale/be/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/be/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-tahoelafs.json b/locale/be/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/be/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-tox.json b/locale/be/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/be/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-vim.json b/locale/be/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/be/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-webmail.json b/locale/be/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/be/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-wiki.json b/locale/be/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/be/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-xmpp.json b/locale/be/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/be/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-app-zeronet.json b/locale/be/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/be/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-backup-local.json b/locale/be/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/be/freedombone-backup-local.json
+++ b/locale/be/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-backup-remote.json b/locale/be/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/be/freedombone-backup-remote.json
+++ b/locale/be/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-base-chaoskey.json b/locale/be/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/be/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-base-email.json b/locale/be/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/be/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-config.json b/locale/be/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/be/freedombone-config.json
+++ b/locale/be/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/be/freedombone-controlpanel-user.json b/locale/be/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/be/freedombone-controlpanel-user.json
+++ b/locale/be/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/be/freedombone-controlpanel.json b/locale/be/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/be/freedombone-controlpanel.json
+++ b/locale/be/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/be/freedombone-image-customise.json b/locale/be/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/be/freedombone-image-customise.json
+++ b/locale/be/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/be/freedombone-image-mesh.json b/locale/be/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/be/freedombone-image-mesh.json
+++ b/locale/be/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-image.json b/locale/be/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/be/freedombone-image.json
+++ b/locale/be/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-keydrive.json b/locale/be/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/be/freedombone-keydrive.json
+++ b/locale/be/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/be/freedombone-mesh-batman.json b/locale/be/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/be/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-mesh-blog.json b/locale/be/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/be/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-mesh-install.json b/locale/be/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/be/freedombone-mesh-install.json
+++ b/locale/be/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-mesh-reset.json b/locale/be/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/be/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-mesh-visit-site.json b/locale/be/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/be/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-mirrors.json b/locale/be/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/be/freedombone-mirrors.json
+++ b/locale/be/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-pin-cert.json b/locale/be/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/be/freedombone-pin-cert.json
+++ b/locale/be/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-recoverkey.json b/locale/be/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/be/freedombone-recoverkey.json
+++ b/locale/be/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/be/freedombone-restore-local.json b/locale/be/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/be/freedombone-restore-local.json
+++ b/locale/be/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/be/freedombone-restore-remote.json b/locale/be/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/be/freedombone-restore-remote.json
+++ b/locale/be/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-rmuser.json b/locale/be/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/be/freedombone-rmuser.json
+++ b/locale/be/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-sec.json b/locale/be/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/be/freedombone-sec.json
+++ b/locale/be/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/be/freedombone-tests.json b/locale/be/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/be/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-update-date.json b/locale/be/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/be/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/be/freedombone-update-date.mo b/locale/be/freedombone-update-date.mo
deleted file mode 100644
index 8cc55eca..00000000
Binary files a/locale/be/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/be/freedombone-utils-backup.json b/locale/be/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/be/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/be/freedombone-utils-config.json b/locale/be/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/be/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-database.json b/locale/be/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/be/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-depends.json b/locale/be/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/be/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-final.json b/locale/be/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/be/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-git.json b/locale/be/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/be/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-help.json b/locale/be/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/be/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-interactive.json b/locale/be/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/be/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-keys.json b/locale/be/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/be/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-onion.json b/locale/be/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/be/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-rng.json b/locale/be/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/be/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-selector.json b/locale/be/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/be/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-setup.json b/locale/be/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/be/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-validation.json b/locale/be/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/be/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-web.json b/locale/be/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/be/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-utils-wifi.json b/locale/be/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/be/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/be/freedombone-wifi.json b/locale/be/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/be/freedombone-wifi.json
+++ b/locale/be/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/be/freedombone.json
+++ b/locale/be/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-addremove.json b/locale/bg/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/bg/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-adduser.json b/locale/bg/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/bg/freedombone-adduser.json
+++ b/locale/bg/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/bg/freedombone-app-blog.json b/locale/bg/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/bg/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-blogstatic.json b/locale/bg/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/bg/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-cjdns.json b/locale/bg/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/bg/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-dlna.json b/locale/bg/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/bg/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-dokuwiki.json b/locale/bg/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/bg/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-emacs.json b/locale/bg/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/bg/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-etherpad.json b/locale/bg/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/bg/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-gnusocial.json b/locale/bg/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/bg/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-gogs.json b/locale/bg/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/bg/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-htmly.json b/locale/bg/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/bg/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-hubzilla.json b/locale/bg/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/bg/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-ipfs.json b/locale/bg/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/bg/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-irc.json b/locale/bg/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/bg/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-jitsi.json b/locale/bg/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/bg/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-mediagoblin.json b/locale/bg/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/bg/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-mumble.json b/locale/bg/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/bg/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-pelican.json b/locale/bg/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/bg/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-pihole.json b/locale/bg/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/bg/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-postactiv.json b/locale/bg/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/bg/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-rss.json b/locale/bg/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/bg/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-searx.json b/locale/bg/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/bg/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-sip.json b/locale/bg/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/bg/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-syncthing.json b/locale/bg/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/bg/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-tahoelafs.json b/locale/bg/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/bg/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-tox.json b/locale/bg/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/bg/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-vim.json b/locale/bg/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/bg/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-webmail.json b/locale/bg/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/bg/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-wiki.json b/locale/bg/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/bg/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-xmpp.json b/locale/bg/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/bg/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-app-zeronet.json b/locale/bg/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/bg/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-backup-local.json b/locale/bg/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/bg/freedombone-backup-local.json
+++ b/locale/bg/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-backup-remote.json b/locale/bg/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/bg/freedombone-backup-remote.json
+++ b/locale/bg/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-base-chaoskey.json b/locale/bg/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/bg/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-base-email.json b/locale/bg/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/bg/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-config.json b/locale/bg/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/bg/freedombone-config.json
+++ b/locale/bg/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/bg/freedombone-controlpanel-user.json b/locale/bg/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/bg/freedombone-controlpanel-user.json
+++ b/locale/bg/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/bg/freedombone-controlpanel.json b/locale/bg/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/bg/freedombone-controlpanel.json
+++ b/locale/bg/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/bg/freedombone-image-customise.json b/locale/bg/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/bg/freedombone-image-customise.json
+++ b/locale/bg/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/bg/freedombone-image-mesh.json b/locale/bg/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/bg/freedombone-image-mesh.json
+++ b/locale/bg/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-image.json b/locale/bg/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/bg/freedombone-image.json
+++ b/locale/bg/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-keydrive.json b/locale/bg/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/bg/freedombone-keydrive.json
+++ b/locale/bg/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/bg/freedombone-mesh-batman.json b/locale/bg/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/bg/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-mesh-blog.json b/locale/bg/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/bg/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-mesh-install.json b/locale/bg/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/bg/freedombone-mesh-install.json
+++ b/locale/bg/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-mesh-reset.json b/locale/bg/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/bg/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-mesh-visit-site.json b/locale/bg/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/bg/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-mirrors.json b/locale/bg/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/bg/freedombone-mirrors.json
+++ b/locale/bg/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-pin-cert.json b/locale/bg/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/bg/freedombone-pin-cert.json
+++ b/locale/bg/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-recoverkey.json b/locale/bg/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/bg/freedombone-recoverkey.json
+++ b/locale/bg/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/bg/freedombone-restore-local.json b/locale/bg/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/bg/freedombone-restore-local.json
+++ b/locale/bg/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/bg/freedombone-restore-remote.json b/locale/bg/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/bg/freedombone-restore-remote.json
+++ b/locale/bg/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-rmuser.json b/locale/bg/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/bg/freedombone-rmuser.json
+++ b/locale/bg/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-sec.json b/locale/bg/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/bg/freedombone-sec.json
+++ b/locale/bg/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/bg/freedombone-tests.json b/locale/bg/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/bg/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-update-date.json b/locale/bg/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/bg/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/bg/freedombone-update-date.mo b/locale/bg/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/bg/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/bg/freedombone-utils-backup.json b/locale/bg/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/bg/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/bg/freedombone-utils-config.json b/locale/bg/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/bg/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-database.json b/locale/bg/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/bg/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-depends.json b/locale/bg/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/bg/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-final.json b/locale/bg/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/bg/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-git.json b/locale/bg/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/bg/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-help.json b/locale/bg/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/bg/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-interactive.json b/locale/bg/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/bg/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-keys.json b/locale/bg/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/bg/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-onion.json b/locale/bg/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/bg/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-rng.json b/locale/bg/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/bg/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-selector.json b/locale/bg/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/bg/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-setup.json b/locale/bg/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/bg/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-validation.json b/locale/bg/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/bg/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-web.json b/locale/bg/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/bg/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-utils-wifi.json b/locale/bg/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/bg/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/bg/freedombone-wifi.json b/locale/bg/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/bg/freedombone-wifi.json
+++ b/locale/bg/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/bg/freedombone.json
+++ b/locale/bg/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-addremove.json b/locale/bs/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/bs/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-adduser.json b/locale/bs/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/bs/freedombone-adduser.json
+++ b/locale/bs/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/bs/freedombone-app-blog.json b/locale/bs/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/bs/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-blogstatic.json b/locale/bs/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/bs/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-cjdns.json b/locale/bs/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/bs/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-dlna.json b/locale/bs/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/bs/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-dokuwiki.json b/locale/bs/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/bs/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-emacs.json b/locale/bs/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/bs/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-etherpad.json b/locale/bs/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/bs/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-gnusocial.json b/locale/bs/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/bs/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-gogs.json b/locale/bs/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/bs/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-htmly.json b/locale/bs/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/bs/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-hubzilla.json b/locale/bs/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/bs/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-ipfs.json b/locale/bs/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/bs/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-irc.json b/locale/bs/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/bs/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-jitsi.json b/locale/bs/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/bs/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-mediagoblin.json b/locale/bs/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/bs/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-mumble.json b/locale/bs/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/bs/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-pelican.json b/locale/bs/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/bs/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-pihole.json b/locale/bs/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/bs/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-postactiv.json b/locale/bs/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/bs/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-rss.json b/locale/bs/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/bs/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-searx.json b/locale/bs/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/bs/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-sip.json b/locale/bs/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/bs/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-syncthing.json b/locale/bs/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/bs/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-tahoelafs.json b/locale/bs/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/bs/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-tox.json b/locale/bs/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/bs/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-vim.json b/locale/bs/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/bs/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-webmail.json b/locale/bs/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/bs/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-wiki.json b/locale/bs/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/bs/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-xmpp.json b/locale/bs/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/bs/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-app-zeronet.json b/locale/bs/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/bs/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-backup-local.json b/locale/bs/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/bs/freedombone-backup-local.json
+++ b/locale/bs/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-backup-remote.json b/locale/bs/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/bs/freedombone-backup-remote.json
+++ b/locale/bs/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-base-chaoskey.json b/locale/bs/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/bs/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-base-email.json b/locale/bs/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/bs/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-config.json b/locale/bs/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/bs/freedombone-config.json
+++ b/locale/bs/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/bs/freedombone-controlpanel-user.json b/locale/bs/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/bs/freedombone-controlpanel-user.json
+++ b/locale/bs/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/bs/freedombone-controlpanel.json b/locale/bs/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/bs/freedombone-controlpanel.json
+++ b/locale/bs/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/bs/freedombone-image-customise.json b/locale/bs/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/bs/freedombone-image-customise.json
+++ b/locale/bs/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/bs/freedombone-image-mesh.json b/locale/bs/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/bs/freedombone-image-mesh.json
+++ b/locale/bs/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-image.json b/locale/bs/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/bs/freedombone-image.json
+++ b/locale/bs/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-keydrive.json b/locale/bs/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/bs/freedombone-keydrive.json
+++ b/locale/bs/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/bs/freedombone-mesh-batman.json b/locale/bs/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/bs/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-mesh-blog.json b/locale/bs/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/bs/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-mesh-install.json b/locale/bs/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/bs/freedombone-mesh-install.json
+++ b/locale/bs/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-mesh-reset.json b/locale/bs/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/bs/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-mesh-visit-site.json b/locale/bs/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/bs/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-mirrors.json b/locale/bs/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/bs/freedombone-mirrors.json
+++ b/locale/bs/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-pin-cert.json b/locale/bs/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/bs/freedombone-pin-cert.json
+++ b/locale/bs/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-recoverkey.json b/locale/bs/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/bs/freedombone-recoverkey.json
+++ b/locale/bs/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/bs/freedombone-restore-local.json b/locale/bs/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/bs/freedombone-restore-local.json
+++ b/locale/bs/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/bs/freedombone-restore-remote.json b/locale/bs/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/bs/freedombone-restore-remote.json
+++ b/locale/bs/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-rmuser.json b/locale/bs/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/bs/freedombone-rmuser.json
+++ b/locale/bs/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-sec.json b/locale/bs/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/bs/freedombone-sec.json
+++ b/locale/bs/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/bs/freedombone-tests.json b/locale/bs/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/bs/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-update-date.json b/locale/bs/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/bs/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/bs/freedombone-update-date.mo b/locale/bs/freedombone-update-date.mo
deleted file mode 100644
index 8cc55eca..00000000
Binary files a/locale/bs/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/bs/freedombone-utils-backup.json b/locale/bs/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/bs/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/bs/freedombone-utils-config.json b/locale/bs/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/bs/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-database.json b/locale/bs/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/bs/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-depends.json b/locale/bs/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/bs/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-final.json b/locale/bs/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/bs/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-git.json b/locale/bs/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/bs/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-help.json b/locale/bs/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/bs/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-interactive.json b/locale/bs/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/bs/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-keys.json b/locale/bs/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/bs/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-onion.json b/locale/bs/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/bs/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-rng.json b/locale/bs/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/bs/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-selector.json b/locale/bs/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/bs/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-setup.json b/locale/bs/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/bs/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-validation.json b/locale/bs/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/bs/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-web.json b/locale/bs/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/bs/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-utils-wifi.json b/locale/bs/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/bs/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/bs/freedombone-wifi.json b/locale/bs/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/bs/freedombone-wifi.json
+++ b/locale/bs/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/bs/freedombone.json
+++ b/locale/bs/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-addremove.json b/locale/ca/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ca/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-adduser.json b/locale/ca/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ca/freedombone-adduser.json
+++ b/locale/ca/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ca/freedombone-app-blog.json b/locale/ca/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ca/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-blogstatic.json b/locale/ca/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ca/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-cjdns.json b/locale/ca/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ca/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-dlna.json b/locale/ca/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ca/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-dokuwiki.json b/locale/ca/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ca/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-emacs.json b/locale/ca/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ca/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-etherpad.json b/locale/ca/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ca/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-gnusocial.json b/locale/ca/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ca/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-gogs.json b/locale/ca/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ca/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-htmly.json b/locale/ca/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ca/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-hubzilla.json b/locale/ca/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ca/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-ipfs.json b/locale/ca/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ca/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-irc.json b/locale/ca/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ca/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-jitsi.json b/locale/ca/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ca/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-mediagoblin.json b/locale/ca/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ca/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-mumble.json b/locale/ca/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ca/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-pelican.json b/locale/ca/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ca/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-pihole.json b/locale/ca/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ca/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-postactiv.json b/locale/ca/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ca/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-rss.json b/locale/ca/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ca/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-searx.json b/locale/ca/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ca/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-sip.json b/locale/ca/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ca/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-syncthing.json b/locale/ca/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ca/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-tahoelafs.json b/locale/ca/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ca/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-tox.json b/locale/ca/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ca/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-vim.json b/locale/ca/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ca/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-webmail.json b/locale/ca/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ca/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-wiki.json b/locale/ca/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ca/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-xmpp.json b/locale/ca/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ca/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-app-zeronet.json b/locale/ca/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ca/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-backup-local.json b/locale/ca/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ca/freedombone-backup-local.json
+++ b/locale/ca/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-backup-remote.json b/locale/ca/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ca/freedombone-backup-remote.json
+++ b/locale/ca/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-base-chaoskey.json b/locale/ca/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ca/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-base-email.json b/locale/ca/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ca/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-config.json b/locale/ca/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ca/freedombone-config.json
+++ b/locale/ca/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ca/freedombone-controlpanel-user.json b/locale/ca/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ca/freedombone-controlpanel-user.json
+++ b/locale/ca/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ca/freedombone-controlpanel.json b/locale/ca/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ca/freedombone-controlpanel.json
+++ b/locale/ca/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ca/freedombone-image-customise.json b/locale/ca/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ca/freedombone-image-customise.json
+++ b/locale/ca/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ca/freedombone-image-mesh.json b/locale/ca/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ca/freedombone-image-mesh.json
+++ b/locale/ca/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-image.json b/locale/ca/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ca/freedombone-image.json
+++ b/locale/ca/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-keydrive.json b/locale/ca/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ca/freedombone-keydrive.json
+++ b/locale/ca/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ca/freedombone-mesh-batman.json b/locale/ca/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ca/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-mesh-blog.json b/locale/ca/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ca/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-mesh-install.json b/locale/ca/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ca/freedombone-mesh-install.json
+++ b/locale/ca/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-mesh-reset.json b/locale/ca/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ca/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-mesh-visit-site.json b/locale/ca/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ca/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-mirrors.json b/locale/ca/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ca/freedombone-mirrors.json
+++ b/locale/ca/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-pin-cert.json b/locale/ca/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ca/freedombone-pin-cert.json
+++ b/locale/ca/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-recoverkey.json b/locale/ca/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ca/freedombone-recoverkey.json
+++ b/locale/ca/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ca/freedombone-restore-local.json b/locale/ca/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ca/freedombone-restore-local.json
+++ b/locale/ca/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ca/freedombone-restore-remote.json b/locale/ca/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ca/freedombone-restore-remote.json
+++ b/locale/ca/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-rmuser.json b/locale/ca/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ca/freedombone-rmuser.json
+++ b/locale/ca/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-sec.json b/locale/ca/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ca/freedombone-sec.json
+++ b/locale/ca/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ca/freedombone-tests.json b/locale/ca/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ca/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-update-date.json b/locale/ca/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ca/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ca/freedombone-update-date.mo b/locale/ca/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/ca/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ca/freedombone-utils-backup.json b/locale/ca/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ca/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ca/freedombone-utils-config.json b/locale/ca/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ca/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-database.json b/locale/ca/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ca/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-depends.json b/locale/ca/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ca/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-final.json b/locale/ca/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ca/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-git.json b/locale/ca/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ca/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-help.json b/locale/ca/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ca/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-interactive.json b/locale/ca/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ca/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-keys.json b/locale/ca/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ca/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-onion.json b/locale/ca/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ca/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-rng.json b/locale/ca/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ca/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-selector.json b/locale/ca/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ca/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-setup.json b/locale/ca/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ca/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-validation.json b/locale/ca/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ca/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-web.json b/locale/ca/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ca/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-utils-wifi.json b/locale/ca/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ca/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ca/freedombone-wifi.json b/locale/ca/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ca/freedombone-wifi.json
+++ b/locale/ca/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ca/freedombone.json
+++ b/locale/ca/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-addremove.json b/locale/cs/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/cs/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-adduser.json b/locale/cs/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/cs/freedombone-adduser.json
+++ b/locale/cs/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/cs/freedombone-app-blog.json b/locale/cs/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/cs/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-blogstatic.json b/locale/cs/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/cs/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-cjdns.json b/locale/cs/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/cs/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-dlna.json b/locale/cs/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/cs/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-dokuwiki.json b/locale/cs/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/cs/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-emacs.json b/locale/cs/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/cs/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-etherpad.json b/locale/cs/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/cs/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-gnusocial.json b/locale/cs/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/cs/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-gogs.json b/locale/cs/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/cs/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-htmly.json b/locale/cs/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/cs/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-hubzilla.json b/locale/cs/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/cs/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-ipfs.json b/locale/cs/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/cs/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-irc.json b/locale/cs/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/cs/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-jitsi.json b/locale/cs/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/cs/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-mediagoblin.json b/locale/cs/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/cs/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-mumble.json b/locale/cs/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/cs/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-pelican.json b/locale/cs/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/cs/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-pihole.json b/locale/cs/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/cs/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-postactiv.json b/locale/cs/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/cs/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-rss.json b/locale/cs/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/cs/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-searx.json b/locale/cs/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/cs/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-sip.json b/locale/cs/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/cs/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-syncthing.json b/locale/cs/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/cs/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-tahoelafs.json b/locale/cs/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/cs/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-tox.json b/locale/cs/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/cs/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-vim.json b/locale/cs/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/cs/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-webmail.json b/locale/cs/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/cs/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-wiki.json b/locale/cs/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/cs/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-xmpp.json b/locale/cs/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/cs/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-app-zeronet.json b/locale/cs/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/cs/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-backup-local.json b/locale/cs/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/cs/freedombone-backup-local.json
+++ b/locale/cs/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-backup-remote.json b/locale/cs/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/cs/freedombone-backup-remote.json
+++ b/locale/cs/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-base-chaoskey.json b/locale/cs/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/cs/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-base-email.json b/locale/cs/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/cs/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-config.json b/locale/cs/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/cs/freedombone-config.json
+++ b/locale/cs/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/cs/freedombone-controlpanel-user.json b/locale/cs/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/cs/freedombone-controlpanel-user.json
+++ b/locale/cs/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/cs/freedombone-controlpanel.json b/locale/cs/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/cs/freedombone-controlpanel.json
+++ b/locale/cs/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/cs/freedombone-image-customise.json b/locale/cs/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/cs/freedombone-image-customise.json
+++ b/locale/cs/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/cs/freedombone-image-mesh.json b/locale/cs/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/cs/freedombone-image-mesh.json
+++ b/locale/cs/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-image.json b/locale/cs/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/cs/freedombone-image.json
+++ b/locale/cs/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-keydrive.json b/locale/cs/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/cs/freedombone-keydrive.json
+++ b/locale/cs/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/cs/freedombone-mesh-batman.json b/locale/cs/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/cs/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-mesh-blog.json b/locale/cs/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/cs/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-mesh-install.json b/locale/cs/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/cs/freedombone-mesh-install.json
+++ b/locale/cs/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-mesh-reset.json b/locale/cs/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/cs/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-mesh-visit-site.json b/locale/cs/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/cs/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-mirrors.json b/locale/cs/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/cs/freedombone-mirrors.json
+++ b/locale/cs/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-pin-cert.json b/locale/cs/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/cs/freedombone-pin-cert.json
+++ b/locale/cs/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-recoverkey.json b/locale/cs/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/cs/freedombone-recoverkey.json
+++ b/locale/cs/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/cs/freedombone-restore-local.json b/locale/cs/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/cs/freedombone-restore-local.json
+++ b/locale/cs/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/cs/freedombone-restore-remote.json b/locale/cs/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/cs/freedombone-restore-remote.json
+++ b/locale/cs/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-rmuser.json b/locale/cs/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/cs/freedombone-rmuser.json
+++ b/locale/cs/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-sec.json b/locale/cs/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/cs/freedombone-sec.json
+++ b/locale/cs/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/cs/freedombone-tests.json b/locale/cs/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/cs/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-update-date.json b/locale/cs/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/cs/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/cs/freedombone-update-date.mo b/locale/cs/freedombone-update-date.mo
deleted file mode 100644
index 19953c5d..00000000
Binary files a/locale/cs/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/cs/freedombone-utils-backup.json b/locale/cs/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/cs/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/cs/freedombone-utils-config.json b/locale/cs/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/cs/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-database.json b/locale/cs/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/cs/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-depends.json b/locale/cs/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/cs/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-final.json b/locale/cs/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/cs/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-git.json b/locale/cs/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/cs/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-help.json b/locale/cs/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/cs/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-interactive.json b/locale/cs/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/cs/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-keys.json b/locale/cs/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/cs/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-onion.json b/locale/cs/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/cs/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-rng.json b/locale/cs/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/cs/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-selector.json b/locale/cs/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/cs/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-setup.json b/locale/cs/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/cs/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-validation.json b/locale/cs/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/cs/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-web.json b/locale/cs/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/cs/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-utils-wifi.json b/locale/cs/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/cs/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/cs/freedombone-wifi.json b/locale/cs/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/cs/freedombone-wifi.json
+++ b/locale/cs/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/cs/freedombone.json
+++ b/locale/cs/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-addremove.json b/locale/da/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/da/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-adduser.json b/locale/da/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/da/freedombone-adduser.json
+++ b/locale/da/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/da/freedombone-app-blog.json b/locale/da/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/da/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-blogstatic.json b/locale/da/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/da/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-cjdns.json b/locale/da/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/da/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-dlna.json b/locale/da/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/da/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-dokuwiki.json b/locale/da/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/da/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-emacs.json b/locale/da/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/da/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-etherpad.json b/locale/da/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/da/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-gnusocial.json b/locale/da/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/da/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-gogs.json b/locale/da/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/da/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-htmly.json b/locale/da/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/da/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-hubzilla.json b/locale/da/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/da/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-ipfs.json b/locale/da/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/da/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-irc.json b/locale/da/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/da/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-jitsi.json b/locale/da/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/da/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-mediagoblin.json b/locale/da/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/da/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-mumble.json b/locale/da/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/da/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-pelican.json b/locale/da/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/da/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-pihole.json b/locale/da/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/da/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-postactiv.json b/locale/da/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/da/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-rss.json b/locale/da/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/da/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-searx.json b/locale/da/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/da/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-sip.json b/locale/da/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/da/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-syncthing.json b/locale/da/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/da/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-tahoelafs.json b/locale/da/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/da/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-tox.json b/locale/da/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/da/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-vim.json b/locale/da/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/da/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-webmail.json b/locale/da/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/da/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-wiki.json b/locale/da/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/da/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-xmpp.json b/locale/da/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/da/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-app-zeronet.json b/locale/da/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/da/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-backup-local.json b/locale/da/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/da/freedombone-backup-local.json
+++ b/locale/da/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-backup-remote.json b/locale/da/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/da/freedombone-backup-remote.json
+++ b/locale/da/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-base-chaoskey.json b/locale/da/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/da/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-base-email.json b/locale/da/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/da/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-config.json b/locale/da/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/da/freedombone-config.json
+++ b/locale/da/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/da/freedombone-controlpanel-user.json b/locale/da/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/da/freedombone-controlpanel-user.json
+++ b/locale/da/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/da/freedombone-controlpanel.json b/locale/da/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/da/freedombone-controlpanel.json
+++ b/locale/da/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/da/freedombone-image-customise.json b/locale/da/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/da/freedombone-image-customise.json
+++ b/locale/da/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/da/freedombone-image-mesh.json b/locale/da/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/da/freedombone-image-mesh.json
+++ b/locale/da/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-image.json b/locale/da/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/da/freedombone-image.json
+++ b/locale/da/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-keydrive.json b/locale/da/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/da/freedombone-keydrive.json
+++ b/locale/da/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/da/freedombone-mesh-batman.json b/locale/da/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/da/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-mesh-blog.json b/locale/da/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/da/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-mesh-install.json b/locale/da/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/da/freedombone-mesh-install.json
+++ b/locale/da/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-mesh-reset.json b/locale/da/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/da/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-mesh-visit-site.json b/locale/da/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/da/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-mirrors.json b/locale/da/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/da/freedombone-mirrors.json
+++ b/locale/da/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-pin-cert.json b/locale/da/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/da/freedombone-pin-cert.json
+++ b/locale/da/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-recoverkey.json b/locale/da/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/da/freedombone-recoverkey.json
+++ b/locale/da/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/da/freedombone-restore-local.json b/locale/da/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/da/freedombone-restore-local.json
+++ b/locale/da/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/da/freedombone-restore-remote.json b/locale/da/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/da/freedombone-restore-remote.json
+++ b/locale/da/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-rmuser.json b/locale/da/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/da/freedombone-rmuser.json
+++ b/locale/da/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-sec.json b/locale/da/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/da/freedombone-sec.json
+++ b/locale/da/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/da/freedombone-tests.json b/locale/da/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/da/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-update-date.json b/locale/da/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/da/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/da/freedombone-update-date.mo b/locale/da/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/da/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/da/freedombone-utils-backup.json b/locale/da/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/da/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/da/freedombone-utils-config.json b/locale/da/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/da/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-database.json b/locale/da/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/da/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-depends.json b/locale/da/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/da/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-final.json b/locale/da/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/da/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-git.json b/locale/da/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/da/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-help.json b/locale/da/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/da/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-interactive.json b/locale/da/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/da/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-keys.json b/locale/da/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/da/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-onion.json b/locale/da/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/da/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-rng.json b/locale/da/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/da/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-selector.json b/locale/da/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/da/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-setup.json b/locale/da/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/da/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-validation.json b/locale/da/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/da/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-web.json b/locale/da/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/da/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-utils-wifi.json b/locale/da/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/da/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/da/freedombone-wifi.json b/locale/da/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/da/freedombone-wifi.json
+++ b/locale/da/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/da/freedombone.json
+++ b/locale/da/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-addremove.json b/locale/de/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/de/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-adduser.json b/locale/de/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/de/freedombone-adduser.json
+++ b/locale/de/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/de/freedombone-app-blog.json b/locale/de/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/de/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-blogstatic.json b/locale/de/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/de/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-cjdns.json b/locale/de/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/de/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-dlna.json b/locale/de/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/de/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-dokuwiki.json b/locale/de/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/de/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-emacs.json b/locale/de/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/de/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-etherpad.json b/locale/de/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/de/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-gnusocial.json b/locale/de/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/de/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-gogs.json b/locale/de/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/de/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-htmly.json b/locale/de/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/de/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-hubzilla.json b/locale/de/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/de/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-ipfs.json b/locale/de/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/de/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-irc.json b/locale/de/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/de/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-jitsi.json b/locale/de/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/de/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-mediagoblin.json b/locale/de/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/de/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-mumble.json b/locale/de/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/de/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-pelican.json b/locale/de/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/de/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-pihole.json b/locale/de/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/de/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-postactiv.json b/locale/de/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/de/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-rss.json b/locale/de/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/de/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-searx.json b/locale/de/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/de/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-sip.json b/locale/de/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/de/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-syncthing.json b/locale/de/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/de/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-tahoelafs.json b/locale/de/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/de/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-tox.json b/locale/de/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/de/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-vim.json b/locale/de/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/de/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-webmail.json b/locale/de/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/de/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-wiki.json b/locale/de/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/de/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-xmpp.json b/locale/de/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/de/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-app-zeronet.json b/locale/de/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/de/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-backup-local.json b/locale/de/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/de/freedombone-backup-local.json
+++ b/locale/de/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-backup-remote.json b/locale/de/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/de/freedombone-backup-remote.json
+++ b/locale/de/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-base-chaoskey.json b/locale/de/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/de/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-base-email.json b/locale/de/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/de/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-config.json b/locale/de/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/de/freedombone-config.json
+++ b/locale/de/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/de/freedombone-controlpanel-user.json b/locale/de/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/de/freedombone-controlpanel-user.json
+++ b/locale/de/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/de/freedombone-controlpanel.json b/locale/de/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/de/freedombone-controlpanel.json
+++ b/locale/de/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/de/freedombone-image-customise.json b/locale/de/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/de/freedombone-image-customise.json
+++ b/locale/de/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/de/freedombone-image-mesh.json b/locale/de/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/de/freedombone-image-mesh.json
+++ b/locale/de/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-image.json b/locale/de/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/de/freedombone-image.json
+++ b/locale/de/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-keydrive.json b/locale/de/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/de/freedombone-keydrive.json
+++ b/locale/de/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/de/freedombone-mesh-batman.json b/locale/de/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/de/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-mesh-blog.json b/locale/de/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/de/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-mesh-install.json b/locale/de/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/de/freedombone-mesh-install.json
+++ b/locale/de/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-mesh-reset.json b/locale/de/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/de/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-mesh-visit-site.json b/locale/de/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/de/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-mirrors.json b/locale/de/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/de/freedombone-mirrors.json
+++ b/locale/de/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-pin-cert.json b/locale/de/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/de/freedombone-pin-cert.json
+++ b/locale/de/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-recoverkey.json b/locale/de/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/de/freedombone-recoverkey.json
+++ b/locale/de/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/de/freedombone-restore-local.json b/locale/de/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/de/freedombone-restore-local.json
+++ b/locale/de/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/de/freedombone-restore-remote.json b/locale/de/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/de/freedombone-restore-remote.json
+++ b/locale/de/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-rmuser.json b/locale/de/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/de/freedombone-rmuser.json
+++ b/locale/de/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-sec.json b/locale/de/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/de/freedombone-sec.json
+++ b/locale/de/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/de/freedombone-tests.json b/locale/de/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/de/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-update-date.json b/locale/de/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/de/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/de/freedombone-update-date.mo b/locale/de/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/de/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/de/freedombone-utils-backup.json b/locale/de/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/de/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/de/freedombone-utils-config.json b/locale/de/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/de/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-database.json b/locale/de/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/de/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-depends.json b/locale/de/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/de/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-final.json b/locale/de/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/de/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-git.json b/locale/de/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/de/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-help.json b/locale/de/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/de/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-interactive.json b/locale/de/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/de/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-keys.json b/locale/de/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/de/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-onion.json b/locale/de/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/de/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-rng.json b/locale/de/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/de/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-selector.json b/locale/de/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/de/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-setup.json b/locale/de/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/de/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-validation.json b/locale/de/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/de/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-web.json b/locale/de/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/de/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-utils-wifi.json b/locale/de/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/de/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/de/freedombone-wifi.json b/locale/de/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/de/freedombone-wifi.json
+++ b/locale/de/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/de/freedombone.json
+++ b/locale/de/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-addremove.json b/locale/de_du/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/de_du/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-adduser.json b/locale/de_du/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/de_du/freedombone-adduser.json
+++ b/locale/de_du/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/de_du/freedombone-app-blog.json b/locale/de_du/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/de_du/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-blogstatic.json b/locale/de_du/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/de_du/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-cjdns.json b/locale/de_du/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/de_du/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-dlna.json b/locale/de_du/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/de_du/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-dokuwiki.json b/locale/de_du/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/de_du/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-emacs.json b/locale/de_du/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/de_du/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-etherpad.json b/locale/de_du/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/de_du/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-gnusocial.json b/locale/de_du/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/de_du/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-gogs.json b/locale/de_du/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/de_du/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-htmly.json b/locale/de_du/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/de_du/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-hubzilla.json b/locale/de_du/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/de_du/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-ipfs.json b/locale/de_du/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/de_du/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-irc.json b/locale/de_du/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/de_du/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-jitsi.json b/locale/de_du/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/de_du/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-mediagoblin.json b/locale/de_du/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/de_du/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-mumble.json b/locale/de_du/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/de_du/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-pelican.json b/locale/de_du/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/de_du/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-pihole.json b/locale/de_du/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/de_du/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-postactiv.json b/locale/de_du/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/de_du/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-rss.json b/locale/de_du/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/de_du/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-searx.json b/locale/de_du/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/de_du/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-sip.json b/locale/de_du/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/de_du/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-syncthing.json b/locale/de_du/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/de_du/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-tahoelafs.json b/locale/de_du/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/de_du/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-tox.json b/locale/de_du/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/de_du/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-vim.json b/locale/de_du/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/de_du/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-webmail.json b/locale/de_du/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/de_du/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-wiki.json b/locale/de_du/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/de_du/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-xmpp.json b/locale/de_du/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/de_du/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-app-zeronet.json b/locale/de_du/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/de_du/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-backup-local.json b/locale/de_du/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/de_du/freedombone-backup-local.json
+++ b/locale/de_du/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-backup-remote.json b/locale/de_du/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/de_du/freedombone-backup-remote.json
+++ b/locale/de_du/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-base-chaoskey.json b/locale/de_du/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/de_du/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-base-email.json b/locale/de_du/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/de_du/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-config.json b/locale/de_du/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/de_du/freedombone-config.json
+++ b/locale/de_du/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/de_du/freedombone-controlpanel-user.json b/locale/de_du/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/de_du/freedombone-controlpanel-user.json
+++ b/locale/de_du/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/de_du/freedombone-controlpanel.json b/locale/de_du/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/de_du/freedombone-controlpanel.json
+++ b/locale/de_du/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/de_du/freedombone-image-customise.json b/locale/de_du/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/de_du/freedombone-image-customise.json
+++ b/locale/de_du/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/de_du/freedombone-image-mesh.json b/locale/de_du/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/de_du/freedombone-image-mesh.json
+++ b/locale/de_du/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-image.json b/locale/de_du/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/de_du/freedombone-image.json
+++ b/locale/de_du/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-keydrive.json b/locale/de_du/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/de_du/freedombone-keydrive.json
+++ b/locale/de_du/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/de_du/freedombone-mesh-batman.json b/locale/de_du/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/de_du/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-mesh-blog.json b/locale/de_du/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/de_du/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-mesh-install.json b/locale/de_du/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/de_du/freedombone-mesh-install.json
+++ b/locale/de_du/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-mesh-reset.json b/locale/de_du/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/de_du/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-mesh-visit-site.json b/locale/de_du/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/de_du/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-mirrors.json b/locale/de_du/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/de_du/freedombone-mirrors.json
+++ b/locale/de_du/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-pin-cert.json b/locale/de_du/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/de_du/freedombone-pin-cert.json
+++ b/locale/de_du/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-recoverkey.json b/locale/de_du/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/de_du/freedombone-recoverkey.json
+++ b/locale/de_du/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/de_du/freedombone-restore-local.json b/locale/de_du/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/de_du/freedombone-restore-local.json
+++ b/locale/de_du/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/de_du/freedombone-restore-remote.json b/locale/de_du/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/de_du/freedombone-restore-remote.json
+++ b/locale/de_du/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-rmuser.json b/locale/de_du/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/de_du/freedombone-rmuser.json
+++ b/locale/de_du/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-sec.json b/locale/de_du/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/de_du/freedombone-sec.json
+++ b/locale/de_du/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-tests.json b/locale/de_du/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/de_du/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-update-date.json b/locale/de_du/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/de_du/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-update-date.mo b/locale/de_du/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/de_du/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/de_du/freedombone-utils-backup.json b/locale/de_du/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/de_du/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/de_du/freedombone-utils-config.json b/locale/de_du/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/de_du/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-database.json b/locale/de_du/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/de_du/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-depends.json b/locale/de_du/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/de_du/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-final.json b/locale/de_du/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/de_du/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-git.json b/locale/de_du/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/de_du/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-help.json b/locale/de_du/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/de_du/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-interactive.json b/locale/de_du/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/de_du/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-keys.json b/locale/de_du/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/de_du/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-onion.json b/locale/de_du/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/de_du/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-rng.json b/locale/de_du/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/de_du/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-selector.json b/locale/de_du/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/de_du/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-setup.json b/locale/de_du/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/de_du/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-validation.json b/locale/de_du/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/de_du/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-web.json b/locale/de_du/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/de_du/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-utils-wifi.json b/locale/de_du/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/de_du/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/de_du/freedombone-wifi.json b/locale/de_du/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/de_du/freedombone-wifi.json
+++ b/locale/de_du/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/de_du/freedombone.json
+++ b/locale/de_du/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-addremove.json b/locale/el/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/el/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-adduser.json b/locale/el/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/el/freedombone-adduser.json
+++ b/locale/el/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/el/freedombone-app-blog.json b/locale/el/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/el/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-blogstatic.json b/locale/el/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/el/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-cjdns.json b/locale/el/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/el/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-dlna.json b/locale/el/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/el/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-dokuwiki.json b/locale/el/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/el/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-emacs.json b/locale/el/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/el/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-etherpad.json b/locale/el/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/el/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-gnusocial.json b/locale/el/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/el/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-gogs.json b/locale/el/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/el/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-htmly.json b/locale/el/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/el/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-hubzilla.json b/locale/el/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/el/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-ipfs.json b/locale/el/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/el/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-irc.json b/locale/el/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/el/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-jitsi.json b/locale/el/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/el/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-mediagoblin.json b/locale/el/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/el/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-mumble.json b/locale/el/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/el/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-pelican.json b/locale/el/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/el/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-pihole.json b/locale/el/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/el/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-postactiv.json b/locale/el/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/el/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-rss.json b/locale/el/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/el/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-searx.json b/locale/el/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/el/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-sip.json b/locale/el/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/el/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-syncthing.json b/locale/el/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/el/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-tahoelafs.json b/locale/el/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/el/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-tox.json b/locale/el/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/el/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-vim.json b/locale/el/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/el/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-webmail.json b/locale/el/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/el/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-wiki.json b/locale/el/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/el/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-xmpp.json b/locale/el/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/el/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-app-zeronet.json b/locale/el/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/el/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-backup-local.json b/locale/el/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/el/freedombone-backup-local.json
+++ b/locale/el/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-backup-remote.json b/locale/el/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/el/freedombone-backup-remote.json
+++ b/locale/el/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-base-chaoskey.json b/locale/el/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/el/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-base-email.json b/locale/el/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/el/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-config.json b/locale/el/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/el/freedombone-config.json
+++ b/locale/el/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/el/freedombone-controlpanel-user.json b/locale/el/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/el/freedombone-controlpanel-user.json
+++ b/locale/el/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/el/freedombone-controlpanel.json b/locale/el/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/el/freedombone-controlpanel.json
+++ b/locale/el/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/el/freedombone-image-customise.json b/locale/el/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/el/freedombone-image-customise.json
+++ b/locale/el/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/el/freedombone-image-mesh.json b/locale/el/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/el/freedombone-image-mesh.json
+++ b/locale/el/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-image.json b/locale/el/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/el/freedombone-image.json
+++ b/locale/el/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-keydrive.json b/locale/el/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/el/freedombone-keydrive.json
+++ b/locale/el/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/el/freedombone-mesh-batman.json b/locale/el/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/el/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-mesh-blog.json b/locale/el/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/el/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-mesh-install.json b/locale/el/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/el/freedombone-mesh-install.json
+++ b/locale/el/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-mesh-reset.json b/locale/el/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/el/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-mesh-visit-site.json b/locale/el/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/el/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-mirrors.json b/locale/el/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/el/freedombone-mirrors.json
+++ b/locale/el/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-pin-cert.json b/locale/el/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/el/freedombone-pin-cert.json
+++ b/locale/el/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-recoverkey.json b/locale/el/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/el/freedombone-recoverkey.json
+++ b/locale/el/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/el/freedombone-restore-local.json b/locale/el/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/el/freedombone-restore-local.json
+++ b/locale/el/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/el/freedombone-restore-remote.json b/locale/el/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/el/freedombone-restore-remote.json
+++ b/locale/el/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-rmuser.json b/locale/el/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/el/freedombone-rmuser.json
+++ b/locale/el/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-sec.json b/locale/el/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/el/freedombone-sec.json
+++ b/locale/el/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/el/freedombone-tests.json b/locale/el/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/el/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-update-date.json b/locale/el/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/el/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/el/freedombone-update-date.mo b/locale/el/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/el/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/el/freedombone-utils-backup.json b/locale/el/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/el/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/el/freedombone-utils-config.json b/locale/el/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/el/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-database.json b/locale/el/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/el/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-depends.json b/locale/el/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/el/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-final.json b/locale/el/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/el/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-git.json b/locale/el/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/el/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-help.json b/locale/el/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/el/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-interactive.json b/locale/el/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/el/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-keys.json b/locale/el/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/el/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-onion.json b/locale/el/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/el/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-rng.json b/locale/el/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/el/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-selector.json b/locale/el/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/el/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-setup.json b/locale/el/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/el/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-validation.json b/locale/el/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/el/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-web.json b/locale/el/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/el/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-utils-wifi.json b/locale/el/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/el/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/el/freedombone-wifi.json b/locale/el/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/el/freedombone-wifi.json
+++ b/locale/el/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/el/freedombone.json
+++ b/locale/el/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-addremove.json b/locale/en_us/freedombone-addremove.json
new file mode 100644
index 00000000..072c7c95
--- /dev/null
+++ b/locale/en_us/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "Freedombone",
+ "Add/Remove Applications": "Add/Remove Applications",
+ "Remove applications": "Remove applications",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-adduser.json b/locale/en_us/freedombone-adduser.json
index eef871f9..ee7a44a3 100644
--- a/locale/en_us/freedombone-adduser.json
+++ b/locale/en_us/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$COMPLETION_FILE not found": "$COMPLETION_FILE not found",
"It's very important to add a password to your GPG key so that": "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": "if anyone does get access to your email they still won't be able",
- "Adding an XMPP account for $MY_USERNAME": "Adding an XMPP account for $MY_USERNAME",
- "XMPP account not created": "XMPP account not created",
- "Adding XMPP client setup": "Adding XMPP client setup",
- "Unable to find GNU Social installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs": "Unable to find GNU Social installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs",
+ "Adding user to ${app_name}": "Adding user to ${app_name}",
+ "Failed with error code ${retval}": "Failed with error code ${retval}",
"New user $MY_USERNAME was created": "New user $MY_USERNAME was created",
- "Their SIP phone extension is $SIP_EXTENSION": "Their SIP phone extension is $SIP_EXTENSION",
"Their login password is $NEW_USER_PASSWORD": "Their login password is $NEW_USER_PASSWORD",
"They can download their GPG keys with:": "They can download their GPG keys with:",
"They should also run ${PROJECT_NAME}-client on their system to ensure": "They should also run ${PROJECT_NAME}-client on their system to ensure"
diff --git a/locale/en_us/freedombone-app-blog.json b/locale/en_us/freedombone-app-blog.json
new file mode 100644
index 00000000..921c5ab4
--- /dev/null
+++ b/locale/en_us/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "Change blog avatar",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Enter a URL for an image. It should be approximately a square image.": "Enter a URL for an image. It should be approximately a square image.",
+ "Your blog avatar has been changed": "Your blog avatar has been changed",
+ "Freedombone Configuration": "Freedombone Configuration",
+ "Blog Configuration": "Blog Configuration",
+ "\\nPlease enter your blog details:": "\\nPlease enter your blog details:",
+ "Title:": "Title:",
+ "Domain:": "Domain:",
+ "Code:": "Code:",
+ "Domain name validation": "Domain name validation",
+ "Backing up $source_directory to $dest_directory": "Backing up $source_directory to $dest_directory",
+ "Backup to $dest_directory complete": "Backup to $dest_directory complete",
+ "Restoring blog installation": "Restoring blog installation",
+ "No content directory found after restoring blog": "No content directory found after restoring blog",
+ "Backing up blog": "Backing up blog",
+ "Backup of blog complete": "Backup of blog complete",
+ "Blog domain specified but not found in $temp_backup_dir": "Blog domain specified but not found in $temp_backup_dir",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "Restoring blog installation $FULLBLOG_DOMAIN_NAME",
+ "Restore of blog complete": "Restore of blog complete",
+ "Your blog username: $MY_USERNAME": "Your blog username: $MY_USERNAME",
+ "Your blog password is: $FULLBLOG_ADMIN_PASSWORD": "Your blog password is: $FULLBLOG_ADMIN_PASSWORD",
+ "Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login": "Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login",
+ "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}": "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}",
+ "Log into your blog at https://${FULLBLOG_ONION_HOSTNAME}/login": "Log into your blog at https://${FULLBLOG_ONION_HOSTNAME}/login"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-blogstatic.json b/locale/en_us/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..a09bc1d2
--- /dev/null
+++ b/locale/en_us/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": "Freedombone Blog"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-cjdns.json b/locale/en_us/freedombone-app-cjdns.json
new file mode 100644
index 00000000..c76edf73
--- /dev/null
+++ b/locale/en_us/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "Restoring cjdns installation",
+ "Mesh Networking (cjdns)": "Mesh Networking (cjdns)",
+ "cjdns IPv6 address: $CJDNS_IPV6": "cjdns IPv6 address: $CJDNS_IPV6",
+ "cjdns public key: $CJDNS_PUBLIC_KEY": "cjdns public key: $CJDNS_PUBLIC_KEY",
+ "cjdns private key: $CJDNS_PRIVATE_KEY": "cjdns private key: $CJDNS_PRIVATE_KEY",
+ "cjdns password: $CJDNS_PASSWORD": "cjdns password: $CJDNS_PASSWORD",
+ "cjdns port: $CJDNS_PORT": "cjdns port: $CJDNS_PORT",
+ "Forward port $CJDNS_PORT from your internet router to the ${PROJECT_NAME}": "Forward port $CJDNS_PORT from your internet router to the ${PROJECT_NAME}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-dlna.json b/locale/en_us/freedombone-app-dlna.json
new file mode 100644
index 00000000..64f2ce5b
--- /dev/null
+++ b/locale/en_us/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Media Menu": "Media Menu",
+ "Choose an operation:": "Choose an operation:",
+ "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",
+ "Restoring DLNA cache": "Restoring DLNA cache",
+ "Backing up DLNA cache": "Backing up DLNA cache",
+ "Backup of DLNA cache complete": "Backup of DLNA cache complete",
+ "Restore of DLNA complete": "Restore of DLNA complete",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-dokuwiki.json b/locale/en_us/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..3974e249
--- /dev/null
+++ b/locale/en_us/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "Restoring Dokuwiki installation",
+ "Restore of Dokuwiki complete": "Restore of Dokuwiki complete",
+ "Backing up dokuwiki": "Backing up dokuwiki",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME",
+ "Dokuwiki password": "Dokuwiki password",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}",
+ "Dokuwiki username: $MY_USERNAME": "Dokuwiki username: $MY_USERNAME",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-emacs.json b/locale/en_us/freedombone-app-emacs.json
new file mode 100644
index 00000000..26d6d67b
--- /dev/null
+++ b/locale/en_us/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "Backing up Emacs config for $USERNAME",
+ "Restoring Emacs config for $USERNAME": "Restoring Emacs config for $USERNAME"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-etherpad.json b/locale/en_us/freedombone-app-etherpad.json
new file mode 100644
index 00000000..105a5736
--- /dev/null
+++ b/locale/en_us/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!",
+ "Etherpad Title": "Etherpad Title",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Title has been set": "Title has been set",
+ "Etherpad Welcome Message": "Etherpad Welcome Message",
+ "Welcome message has been set": "Welcome message has been set",
+ "Etherpad Settings": "Etherpad Settings",
+ "Choose an operation:": "Choose an operation:",
+ "Set Title": "Set Title",
+ "Set a welcome message": "Set a welcome message",
+ "Exit": "Exit",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "etherpad domain specified but not found in ${temp_backup_dir}",
+ "Etherpad administrator": "Etherpad administrator",
+ "Etherpad administrator nickname: $MY_USERNAME": "Etherpad administrator nickname: $MY_USERNAME",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-gnusocial.json b/locale/en_us/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..890af69f
--- /dev/null
+++ b/locale/en_us/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "Freedombone Configuration",
+ "GNU Social Configuration": "GNU Social Configuration",
+ "\\nPlease enter your GNU Social 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:": "\\nPlease enter your GNU Social 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:",
+ "Domain:": "Domain:",
+ "Welcome Message:": "Welcome Message:",
+ "Background image URL:": "Background image URL:",
+ "Code:": "Code:",
+ "Domain name validation": "Domain name validation",
+ "GNU Social": "GNU Social",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Set GNU Social login background": "Set GNU Social login background",
+ "The background image has been set": "The background image has been set",
+ "Set GNU Social welcome message": "Set GNU Social welcome message",
+ "Welcome message has been set": "Welcome message has been set",
+ "Choose an operation:": "Choose an operation:",
+ "Set a login screen background image": "Set a login screen background image",
+ "Set a welcome message": "Set a welcome message",
+ "Exit": "Exit",
+ "Restoring gnusocial": "Restoring gnusocial",
+ "Restore of gnusocial complete": "Restore of gnusocial complete",
+ "Backing up GNU social installation": "Backing up GNU social installation",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "gnusocial domain specified but not found in ${temp_backup_dir}",
+ "Gnusocial administrator": "Gnusocial administrator",
+ "Gnusocial administrator nickname: $MY_USERNAME": "Gnusocial administrator nickname: $MY_USERNAME",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-gogs.json b/locale/en_us/freedombone-app-gogs.json
new file mode 100644
index 00000000..45d278ff
--- /dev/null
+++ b/locale/en_us/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "Backing up gogs",
+ "Gogs backup complete": "Gogs backup complete",
+ "Restoring Gogs settings": "Restoring Gogs settings",
+ "Restoring Gogs repos": "Restoring Gogs repos",
+ "Restoring Gogs authorized_keys": "Restoring Gogs authorized_keys",
+ "Obtaining Gogs settings backup": "Obtaining Gogs settings backup",
+ "Obtaining Gogs repos backup": "Obtaining Gogs repos backup",
+ "Obtaining Gogs authorized_keys backup": "Obtaining Gogs authorized_keys backup",
+ "Restore of Gogs complete": "Restore of Gogs complete"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-htmly.json b/locale/en_us/freedombone-app-htmly.json
new file mode 100644
index 00000000..60186d2c
--- /dev/null
+++ b/locale/en_us/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "Change htmly avatar",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Enter a URL for an image. It should be approximately a square image.": "Enter a URL for an image. It should be approximately a square image.",
+ "Your htmly avatar has been changed": "Your htmly avatar has been changed",
+ "Restoring htmly installation": "Restoring htmly installation",
+ "No content directory found after restoring htmly": "No content directory found after restoring htmly",
+ "Backing up htmly": "Backing up htmly",
+ "Backup of htmly complete": "Backup of htmly complete",
+ "Htmly domain specified but not found in $temp_backup_dir": "Htmly domain specified but not found in $temp_backup_dir",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "Restoring htmly installation $HTMLY_DOMAIN_NAME",
+ "Restore of htmly complete": "Restore of htmly complete",
+ "Your htmly username: $MY_USERNAME": "Your htmly username: $MY_USERNAME",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "Your htmly password is: $HTMLY_ADMIN_PASSWORD",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-hubzilla.json b/locale/en_us/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..ad46e4ab
--- /dev/null
+++ b/locale/en_us/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "Renew SSL certificate",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "\\nThis will renew a letsencrypt certificate. Select 'yes' to continue": "\\nThis will renew a letsencrypt certificate. Select 'yes' to continue",
+ "Hubzilla install directory not found": "Hubzilla install directory not found",
+ "Hubzilla certificate has been renewed": "Hubzilla certificate has been renewed",
+ "Hubzilla channel directory server": "Hubzilla channel directory server",
+ "Hubzilla is not installed on this system": "Hubzilla is not installed on this system",
+ "When you click on 'channel directory' this is where Hubzilla will obtain its list from": "When you click on 'channel directory' this is where Hubzilla will obtain its list from",
+ "Invalid domain - include the https://": "Invalid domain - include the https://",
+ "Domain channel directory server changed to $hubzilla_domain_server": "Domain channel directory server changed to $hubzilla_domain_server",
+ "Hubzilla": "Hubzilla",
+ "Choose an operation:": "Choose an operation:",
+ "Set channel directory server": "Set channel directory server",
+ "Back to main menu": "Back to main menu",
+ "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",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-ipfs.json b/locale/en_us/freedombone-app-ipfs.json
new file mode 100644
index 00000000..a77bd1af
--- /dev/null
+++ b/locale/en_us/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "Restoring IPFS",
+ "Restore of IPFS complete": "Restore of IPFS complete",
+ "Backing up IPFS": "Backing up IPFS",
+ "Backup of IPFS complete": "Backup of IPFS complete",
+ "ipfs was not found in downloaded package": "ipfs was not found in downloaded package"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-irc.json b/locale/en_us/freedombone-app-irc.json
new file mode 100644
index 00000000..83970aab
--- /dev/null
+++ b/locale/en_us/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "IRC Password",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Password for all IRC users, or press Enter for no password": "Password for all IRC users, or press Enter for no password",
+ "The IRC password was changed": "The IRC password was changed",
+ "IRC Menu": "IRC Menu",
+ "No IRC server is installed": "No IRC server is installed",
+ "Choose an operation:": "Choose an operation:",
+ "Set a password for all IRC users": "Set a password for all IRC users",
+ "Show current IRC login password": "Show current IRC login password",
+ "Exit": "Exit",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-jitsi.json b/locale/en_us/freedombone-app-jitsi.json
new file mode 100644
index 00000000..d56cc3bc
--- /dev/null
+++ b/locale/en_us/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-mediagoblin.json b/locale/en_us/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..5cb3462f
--- /dev/null
+++ b/locale/en_us/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "Freedombone Configuration",
+ "Mediagoblin Configuration": "Mediagoblin Configuration",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:",
+ "Domain:": "Domain:",
+ "Code:": "Code:",
+ "Domain name validation": "Domain name validation",
+ "Backing up Mediagoblin": "Backing up Mediagoblin",
+ "Backup of Mediagoblin complete": "Backup of Mediagoblin complete",
+ "Restoring Mediagoblin installation": "Restoring Mediagoblin installation",
+ "Restore of Mediagoblin complete": "Restore of Mediagoblin complete"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-mumble.json b/locale/en_us/freedombone-app-mumble.json
new file mode 100644
index 00000000..53c0bfc8
--- /dev/null
+++ b/locale/en_us/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "Backing up Mumble settings",
+ "Mumble settings backup complete": "Mumble settings backup complete",
+ "Restoring mumble settings": "Restoring mumble settings",
+ "Backing up mumble settings": "Backing up mumble settings",
+ "Backup of mumble settings complete": "Backup of mumble settings complete",
+ "Restoring Mumble settings": "Restoring Mumble settings",
+ "Restore of Mumble complete": "Restore of Mumble complete",
+ "Mumble Server": "Mumble Server",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "Mumble onion domain:$MUMBLE_ONION_HOSTNAME",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": "Mumble server password: $MUMBLE_SERVER_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-pelican.json b/locale/en_us/freedombone-app-pelican.json
new file mode 100644
index 00000000..a09bc1d2
--- /dev/null
+++ b/locale/en_us/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": "Freedombone Blog"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-pihole.json b/locale/en_us/freedombone-app-pihole.json
new file mode 100644
index 00000000..b3754dcb
--- /dev/null
+++ b/locale/en_us/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "Ad Blocker Upstream DNS",
+ "Pick a domain name service (DNS):": "Pick a domain name service (DNS):",
+ "Digital Courage": "Digital Courage",
+ "German Privacy Foundation 1": "German Privacy Foundation 1",
+ "German Privacy Foundation 2": "German Privacy Foundation 2",
+ "Chaos Computer Club": "Chaos Computer Club",
+ "ClaraNet": "ClaraNet",
+ "OpenNIC 1": "OpenNIC 1",
+ "OpenNIC 2": "OpenNIC 2",
+ "OpenNIC 3": "OpenNIC 3",
+ "OpenNIC 4": "OpenNIC 4",
+ "OpenNIC 5": "OpenNIC 5",
+ "OpenNIC 6": "OpenNIC 6",
+ "OpenNIC 7": "OpenNIC 7",
+ "PowerNS": "PowerNS",
+ "ValiDOM": "ValiDOM",
+ "Freie Unzensierte": "Freie Unzensierte",
+ "Google": "Google",
+ "Pause Ad Blocker": "Pause Ad Blocker",
+ "Ad blocking is paused": "Ad blocking is paused",
+ "Resume Ad Blocker": "Resume Ad Blocker",
+ "Ad blocking has resumed": "Ad blocking has resumed",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Ad Blocker": "Ad Blocker",
+ "Choose an operation:": "Choose an operation:",
+ "Edit ads list": "Edit ads list",
+ "Edit blacklisted domain names": "Edit blacklisted domain names",
+ "Edit whitelisted domain names": "Edit whitelisted domain names",
+ "Change upstream DNS servers": "Change upstream DNS servers",
+ "Pause blocker": "Pause blocker",
+ "Resume blocker": "Resume blocker",
+ "Exit": "Exit"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-postactiv.json b/locale/en_us/freedombone-app-postactiv.json
new file mode 100644
index 00000000..3b36bedd
--- /dev/null
+++ b/locale/en_us/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "Freedombone Configuration",
+ "PostActiv Configuration": "PostActiv Configuration",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:",
+ "Domain:": "Domain:",
+ "Code:": "Code:",
+ "Domain name validation": "Domain name validation",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "postactiv domain specified but not found in ${temp_backup_dir}",
+ "postactiv": "postactiv",
+ "Postactiv administrator": "Postactiv administrator",
+ "Postactiv administrator nickname: $MY_USERNAME": "Postactiv administrator nickname: $MY_USERNAME",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-rss.json b/locale/en_us/freedombone-app-rss.json
new file mode 100644
index 00000000..4d0f2adc
--- /dev/null
+++ b/locale/en_us/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "Backing up ttrss",
+ "ttrss backup complete": "ttrss backup complete",
+ "Backing up RSS reader installation": "Backing up RSS reader installation",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "RSS reader domain specified but not found in /etc/share/ttrss}",
+ "Restoring ttrss": "Restoring ttrss",
+ "Restore of ttrss complete": "Restore of ttrss complete",
+ "RSS Reader": "RSS Reader",
+ "RSS reader domain: ${RSS_READER_DOMAIN_NAME}": "RSS reader domain: ${RSS_READER_DOMAIN_NAME}",
+ "RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}": "RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}",
+ "RSS reader admin username: admin": "RSS reader admin username: admin",
+ "RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}": "RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-searx.json b/locale/en_us/freedombone-app-searx.json
new file mode 100644
index 00000000..a4a08735
--- /dev/null
+++ b/locale/en_us/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "Search engine login",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "Search engine onion domain: ${SEARX_ONION_HOSTNAME}",
+ "Your search engine password is: $SEARX_PASSWORD": "Your search engine password is: $SEARX_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-sip.json b/locale/en_us/freedombone-app-sip.json
new file mode 100644
index 00000000..7778de28
--- /dev/null
+++ b/locale/en_us/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "Backing up SIP settings",
+ "SIP settings backup complete": "SIP settings backup complete",
+ "Restoring SIP settings": "Restoring SIP settings",
+ "Restore of SIP settings complete": "Restore of SIP settings complete",
+ "Backup SIP settings complete": "Backup SIP settings complete",
+ "SIP Server": "SIP Server",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "SIP onion_domain: $SIP_ONION_HOSTNAME",
+ "SIP server username: $MY_USERNAME": "SIP server username: $MY_USERNAME",
+ "SIP server extension: 201": "SIP server extension: 201",
+ "SIP server password: $SIP_SERVER_PASSWORD": "SIP server password: $SIP_SERVER_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-syncthing.json b/locale/en_us/freedombone-app-syncthing.json
new file mode 100644
index 00000000..90446a55
--- /dev/null
+++ b/locale/en_us/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID",
+ "Device ID for ${PROJECT_NAME}": "Device ID for ${PROJECT_NAME}",
+ "Freedombone User Control Panel": "Freedombone User Control Panel",
+ "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": "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": "Add a Syncthing device ID",
+ "Paste the device ID for your laptop/desktop/netbook/phone/tablet below": "Paste the device ID for your laptop/desktop/netbook/phone/tablet below",
+ "Device ID:": "Device ID:",
+ "Description (optional):": "Description (optional):",
+ "That doesn't look like a device ID": "That doesn't look like a device ID",
+ "That ID has already been added": "That ID has already been added",
+ "The ID was added": "The ID was added",
+ "Remove a Syncthing device ID": "Remove a Syncthing device ID",
+ "Paste the device ID which is to be removed below": "Paste the device ID which is to be removed below",
+ "That ID wasn't registered anyway": "That ID wasn't registered anyway",
+ "The ID was removed": "The ID was removed",
+ "File Synchronization": "File Synchronization",
+ "Choose an operation:": "Choose an operation:",
+ "Show device ID for ${PROJECT_NAME}": "Show device ID for ${PROJECT_NAME}",
+ "Add an ID for another machine or device": "Add an ID for another machine or device",
+ "Remove an ID for another machine or device": "Remove an ID for another machine or device",
+ "Manually edit device IDs": "Manually edit device IDs",
+ "Back to main menu": "Back to main menu",
+ "Backing up syncthing files for $USERNAME": "Backing up syncthing files for $USERNAME",
+ "Restoring syncthing configuration": "Restoring syncthing configuration",
+ "Restoring syncthing shared files": "Restoring syncthing shared files",
+ "Restoring syncthing files for $USERNAME": "Restoring syncthing files for $USERNAME",
+ "Backing up syncthing configuration": "Backing up syncthing configuration",
+ "Backup of syncthing configuration complete": "Backup of syncthing configuration complete",
+ "Backing up syncthing shared files": "Backing up syncthing shared files",
+ "Backup of syncthing shared files complete": "Backup of syncthing shared files complete",
+ "Restore of syncthing files for $USERNAME complete": "Restore of syncthing files for $USERNAME complete"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-tahoelafs.json b/locale/en_us/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..9cb36149
--- /dev/null
+++ b/locale/en_us/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "Restoring Tahoe-LAFS introducer",
+ "Restore complete": "Restore complete"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-tox.json b/locale/en_us/freedombone-app-tox.json
new file mode 100644
index 00000000..2d1c219f
--- /dev/null
+++ b/locale/en_us/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "Backing up Tox",
+ "Backup of Tox complete": "Backup of Tox complete",
+ "Restoring Tox node settings": "Restoring Tox node settings",
+ "Restore of Tox node complete": "Restore of Tox node complete",
+ "Your Tox node public key is": "Your Tox node public key is",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "tox onion domain: ${TOX_ONION_HOSTNAME}",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "Your Tox node public key is: $TOX_PUBLIC_KEY",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
+ "Account to run Tox's DHT bootstrap daemon": "Account to run Tox's DHT bootstrap daemon",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
+ "Tox client was not installed to $TOXIC_FILE": "Tox client was not installed to $TOXIC_FILE",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-vim.json b/locale/en_us/freedombone-app-vim.json
new file mode 100644
index 00000000..b364730b
--- /dev/null
+++ b/locale/en_us/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "Backing up Vim config for $USERNAME",
+ "Restoring Vim config for $USERNAME": "Restoring Vim config for $USERNAME"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-webmail.json b/locale/en_us/freedombone-app-webmail.json
new file mode 100644
index 00000000..9b3cf376
--- /dev/null
+++ b/locale/en_us/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "Backing up webmail",
+ "Backing up webmail complete": "Backing up webmail complete",
+ "Restoring webmail": "Restoring webmail",
+ "Restore of webmail complete": "Restore of webmail complete",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "To access webmail open http://$WEBMAIL_ONION_HOSTNAME",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-wiki.json b/locale/en_us/freedombone-app-wiki.json
new file mode 100644
index 00000000..a0616bdd
--- /dev/null
+++ b/locale/en_us/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "Freedombone Configuration",
+ "Wiki Configuration": "Wiki Configuration",
+ "\\nPlease enter your wiki details:": "\\nPlease enter your wiki details:",
+ "Title:": "Title:",
+ "Domain:": "Domain:",
+ "Code:": "Code:",
+ "Domain name validation": "Domain name validation",
+ "Backing up $source_directory to $dest_directory": "Backing up $source_directory to $dest_directory",
+ "Backup to $dest_directory complete": "Backup to $dest_directory complete",
+ "Restoring Wiki installation": "Restoring Wiki installation",
+ "Restore of Wiki complete": "Restore of Wiki complete",
+ "Backing up wiki": "Backing up wiki",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "Restoring Wiki installation $WIKI_DOMAIN_NAME",
+ "Wiki password": "Wiki password",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "Wiki onion domain: ${WIKI_ONION_HOSTNAME}",
+ "Wiki username: $MY_USERNAME": "Wiki username: $MY_USERNAME",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": "Wiki password: $WIKI_ADMIN_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-xmpp.json b/locale/en_us/freedombone-app-xmpp.json
new file mode 100644
index 00000000..57beeeea
--- /dev/null
+++ b/locale/en_us/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "Restoring xmpp settings",
+ "Restore of xmpp settings complete": "Restore of xmpp settings complete",
+ "Backing up the xmpp settings": "Backing up the xmpp settings",
+ "Backup of xmpp settings complete": "Backup of xmpp settings complete",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "XMPP onion domain: ${XMPP_ONION_HOSTNAME}",
+ "Your XMPP password is: $XMPP_PASSWORD": "Your XMPP password is: $XMPP_PASSWORD"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-app-zeronet.json b/locale/en_us/freedombone-app-zeronet.json
new file mode 100644
index 00000000..93b0d668
--- /dev/null
+++ b/locale/en_us/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "Address: $ZERONET_BLOG_ADDRESS",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "Public key: $ZERONET_BLOG_PRIVATE_KEY",
+ "Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS": "Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS",
+ "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS": "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS",
+ "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY",
+ "Address: $ZERONET_MAIL_ADDRESS": "Address: $ZERONET_MAIL_ADDRESS",
+ "Public key: $ZERONET_MAIL_PRIVATE_KEY": "Public key: $ZERONET_MAIL_PRIVATE_KEY",
+ "Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS": "Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS",
+ "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS",
+ "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY",
+ "ZeroNet Mail address": "ZeroNet Mail address",
+ "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS",
+ "${MY_USERNAME}'s Forum": "${MY_USERNAME}'s Forum",
+ "Address: $ZERONET_FORUM_ADDRESS": "Address: $ZERONET_FORUM_ADDRESS",
+ "Public key: $ZERONET_FORUM_PRIVATE_KEY": "Public key: $ZERONET_FORUM_PRIVATE_KEY",
+ "Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS": "Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS",
+ "Forum address: $ZERONET_FORUM_ADDRESS": "Forum address: $ZERONET_FORUM_ADDRESS",
+ "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "Forum private key: $ZERONET_FORUM_PRIVATE_KEY",
+ "ZeroNet Forum address": "ZeroNet Forum address",
+ "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS": "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS",
+ "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-backup-local.json b/locale/en_us/freedombone-backup-local.json
index 6041747f..20247ade 100644
--- a/locale/en_us/freedombone-backup-local.json
+++ b/locale/en_us/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "Please attach a USB drive": "Please attach a USB drive",
- "There was a problem mounting the USB drive to $USB_MOUNT": "There was a problem mounting the USB drive to $USB_MOUNT",
- "Unable to unmount the drive. This means that the backup did not work": "Unable to unmount the drive. This means that the backup did not work",
- "Unmount encrypted USB": "Unmount encrypted USB",
- "Backup to USB drive is complete. You can now unplug it.": "Backup to USB drive is complete. You can now unplug it.",
- "No MariaDB password was given": "No MariaDB password was given",
- "Obtaining ${1} database backup": "Obtaining ${1} database backup",
- "${1} database could not be saved": "${1} database could not be saved",
- "WARNING: directory does not exist: ${1}": "WARNING: directory does not exist: ${1}",
- "Backup key could not be found": "Backup key could not be found",
"There was a problem making the directory $USB_MOUNT/backup.": "There was a problem making the directory $USB_MOUNT/backup.",
"Less than 5% of space remaining on backup drive": "Less than 5% of space remaining on backup drive",
"Backing up gpg keys for $USERNAME": "Backing up gpg keys for $USERNAME",
"Backing up personal settings for $USERNAME": "Backing up personal settings for $USERNAME",
"Backing up ssh keys for $USERNAME": "Backing up ssh keys for $USERNAME",
"Backing up fin files for $USERNAME": "Backing up fin files for $USERNAME",
- "Backing up syncthing files for $USERNAME": "Backing up syncthing files for $USERNAME",
+ "Backing up Emacs config for $USERNAME": "Backing up Emacs config for $USERNAME",
"Backing up config files for $USERNAME": "Backing up config files for $USERNAME",
"Backing up monkeysphere files for $USERNAME": "Backing up monkeysphere files for $USERNAME",
"Backing up local files for $USERNAME": "Backing up local files for $USERNAME",
@@ -29,10 +19,6 @@
"Backing up $source_directory to $dest_directory": "Backing up $source_directory to $dest_directory",
"Backing up ${PROJECT_NAME} configuration files": "Backing up ${PROJECT_NAME} configuration files",
"Backing up README": "Backing up README",
- "Backing up VoIP settings": "Backing up VoIP settings",
"Unable to backup mysql settings": "Unable to backup mysql settings",
- "Backing up some additional directories": "Backing up some additional directories",
- "WARNING: The backup directory $destination_dir is already used.": "WARNING: The backup directory $destination_dir is already used.",
- "Choose a different destination name for backing up $backup_dir": "Choose a different destination name for backing up $backup_dir",
- "WARNING: Directory $backup_dir does not exist": "WARNING: Directory $backup_dir does not exist"
+ "Backup to USB drive is complete. You can now unplug it.": "Backup to USB drive is complete. You can now unplug it."
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-backup-remote.json b/locale/en_us/freedombone-backup-remote.json
index 4dc9deb3..922360a1 100644
--- a/locale/en_us/freedombone-backup-remote.json
+++ b/locale/en_us/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"Creating backup key": "Creating backup key",
- "Backup key could not be found": "Backup key could not be found",
- "No MariaDB password was given": "No MariaDB password was given",
- "${1} database could not be saved": "${1} database could not be saved",
- "Unable to export ${1} database": "Unable to export ${1} database",
- "${PROJECT_NAME} backup to friends": "${PROJECT_NAME} backup to friends",
"Backing up ${PROJECT_NAME} configuration files": "Backing up ${PROJECT_NAME} configuration files",
"Backing up personal settings for $USERNAME": "Backing up personal settings for $USERNAME",
"Backing up gpg keys for $USERNAME": "Backing up gpg keys for $USERNAME",
@@ -23,32 +18,10 @@
"Backing up emails for $USERNAME": "Backing up emails for $USERNAME",
"Backing up Lets Encrypt settings": "Backing up Lets Encrypt settings",
"Backing up Tor settings": "Backing up Tor settings",
- "Backing up RSS reader installation": "Backing up RSS reader installation",
- "RSS reader domain specified but not found in /etc/share/ttrss}": "RSS reader domain specified but not found in /etc/share/ttrss}",
- "Backing up GNU social installation": "Backing up GNU social installation",
- "GNU Social domain specified but not found in /var/www/${MICROBLOG_DOMAIN_NAME}": "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}": "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}",
- "Backing up syncthing configuration": "Backing up syncthing configuration",
- "Backing up syncthing shared files": "Backing up syncthing shared files",
- "Backing up Mediagoblin": "Backing up Mediagoblin",
- "Obtaining Gogs settings backup": "Obtaining Gogs settings backup",
- "Obtaining Gogs repos backup": "Obtaining Gogs repos backup",
- "Obtaining Gogs authorized_keys backup": "Obtaining Gogs authorized_keys backup",
- "Backing up wiki": "Backing up wiki",
- "Backing up blog": "Backing up blog",
- "Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}": "Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}",
"Backing up certificates": "Backing up certificates",
"Backing up the public mailing list": "Backing up the public mailing list",
- "Backing up the XMPP settings": "Backing up the XMPP settings",
"Backing up web settings": "Backing up web settings",
"Backing up README": "Backing up README",
- "Backing up IPFS": "Backing up IPFS",
- "Backing up DLNA cache": "Backing up DLNA cache",
- "Backing up VoIP settings": "Backing up VoIP settings",
"Unable to backup MariaDB settings": "Unable to backup MariaDB settings",
- "Unable to export database settings": "Unable to export database settings",
- "Backing up some additional directories": "Backing up some additional directories",
- "WARNING: The backup directory $destination_dir is already used.": "WARNING: The backup directory $destination_dir is already used.",
- "Choose a different destination name for backing up $backup_dir": "Choose a different destination name for backing up $backup_dir",
- "WARNING: Directory $backup_dir does not exist": "WARNING: Directory $backup_dir does not exist"
+ "Unable to export database settings": "Unable to export database settings"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-base-chaoskey.json b/locale/en_us/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..546ff793
--- /dev/null
+++ b/locale/en_us/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "chaoskey tarball: $CHAOSKEY_TARBALL",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "Hash does not match. This could indicate that the tarball has been tampered with.",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "chaoskey expected tarball hash: $CHAOSKEY_HASH",
+ "chaoskey actual hash: $hash": "chaoskey actual hash: $hash"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-base-email.json b/locale/en_us/freedombone-base-email.json
new file mode 100644
index 00000000..3d65da8c
--- /dev/null
+++ b/locale/en_us/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "If you have imported legacy email which is not encrypted": "If you have imported legacy email which is not encrypted",
+ "ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE": "ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE",
+ "Creating the $PUBLIC_MAILING_LIST mailing list": "Creating the $PUBLIC_MAILING_LIST mailing list",
+ "$PUBLIC_MAILING_LIST mailing list": "$PUBLIC_MAILING_LIST mailing list",
+ "To subscribe to the $PUBLIC_MAILING_LIST mailing list send a": "To subscribe to the $PUBLIC_MAILING_LIST mailing list send a",
+ "cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME": "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": "\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",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "No Tor installation found. ${onion_service_name} onion site cannot be configured.",
+ "Added onion site for ${onion_service_name}": "Added onion site for ${onion_service_name}",
+ "${onion_service_name} onion site hostname not found": "${onion_service_name} onion site hostname not found",
+ "# Tripwire reports which have no violations don't need to be logged": "# Tripwire reports which have no violations don't need to be logged",
+ "ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE": "ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE",
+ "Unknown subkey usage: $GPG_KEY_USAGE": "Unknown subkey usage: $GPG_KEY_USAGE",
+ "Public key: $MY_GPG_PUBLIC_KEY": "Public key: $MY_GPG_PUBLIC_KEY",
+ "Private key: $MY_GPG_PRIVATE_KEY": "Private key: $MY_GPG_PRIVATE_KEY",
+ "GPG public key file $MY_GPG_PUBLIC_KEY was not found": "GPG public key file $MY_GPG_PUBLIC_KEY was not found",
+ "GPG private key file $MY_GPG_PRIVATE_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": "The GPG key for $MY_EMAIL_ADDRESS could not be imported",
+ "A GPG key for $MY_EMAIL_ADDRESS could not be created": "A GPG key for $MY_EMAIL_ADDRESS could not be created",
+ "Change your GPG password": "Change your GPG password",
+ "It's very important to add a password to your GPG key so that": "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": "if anyone does get access to your email they still won't be able",
+ "Publish your GPG public key": "Publish your GPG public key"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-config.json b/locale/en_us/freedombone-config.json
index 42583c0c..fb8bd29b 100644
--- a/locale/en_us/freedombone-config.json
+++ b/locale/en_us/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "${PROJECT_NAME}-config -f [config filename] -m [min password length]",
+ "Freedombone Configuration": "Freedombone Configuration",
+ "Your email address": "Your email address",
+ "Your main domain name": "Your main domain name",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?",
+ "Domain:": "Domain:",
+ "Code:": "Code:",
+ "mail subdomain Code:": "mail subdomain Code:",
+ "XMPP subdomain Code:": "XMPP subdomain Code:",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "Which domain name should your email/XMPP/IRC/Mumble be associated with?",
+ "Domain name validation": "Domain name validation",
+ "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.",
+ "Pick a domain name service (DNS):": "Pick a domain name service (DNS):",
+ "Digital Courage": "Digital Courage",
+ "German Privacy Foundation 1": "German Privacy Foundation 1",
+ "German Privacy Foundation 2": "German Privacy Foundation 2",
+ "Chaos Computer Club": "Chaos Computer Club",
+ "ClaraNet": "ClaraNet",
+ "OpenNIC 1": "OpenNIC 1",
+ "OpenNIC 2": "OpenNIC 2",
+ "OpenNIC 3": "OpenNIC 3",
+ "OpenNIC 4": "OpenNIC 4",
+ "OpenNIC 5": "OpenNIC 5",
+ "OpenNIC 6": "OpenNIC 6",
+ "OpenNIC 7": "OpenNIC 7",
+ "PowerNS": "PowerNS",
+ "ValiDOM": "ValiDOM",
+ "Freie Unzensierte": "Freie Unzensierte",
+ "Google": "Google",
+ "Where to download Debian packages from:": "Where to download Debian packages from:",
+ "Australia": "Australia",
+ "Austria": "Austria",
+ "Belarus": "Belarus",
+ "Belgium": "Belgium",
+ "Bosnia and Herzegovina": "Bosnia and Herzegovina",
+ "Brazil": "Brazil",
+ "Bulgaria": "Bulgaria",
+ "Canada": "Canada",
+ "Chile": "Chile",
+ "China": "China",
+ "Croatia": "Croatia",
+ "Czech Republic": "Czech Republic",
+ "Denmark": "Denmark",
+ "El Salvador": "El Salvador",
+ "Estonia": "Estonia",
+ "Finland": "Finland",
+ "France 1": "France 1",
+ "France 2": "France 2",
+ "Germany 1": "Germany 1",
+ "Germany 2": "Germany 2",
+ "Greece": "Greece",
+ "Hungary": "Hungary",
+ "Iceland": "Iceland",
+ "Iran": "Iran",
+ "Ireland": "Ireland",
+ "Italy": "Italy",
+ "Japan": "Japan",
+ "Korea": "Korea",
+ "Lithuania": "Lithuania",
+ "Mexico": "Mexico",
+ "Netherlands": "Netherlands",
+ "New Caledonia": "New Caledonia",
+ "New Zealand": "New Zealand",
+ "Norway": "Norway",
+ "Poland": "Poland",
+ "Portugal": "Portugal",
+ "Romania": "Romania",
+ "Russia": "Russia",
+ "Slovakia": "Slovakia",
+ "Slovenia": "Slovenia",
+ "Spain": "Spain",
+ "Sweden": "Sweden",
+ "Switzerland": "Switzerland",
+ "Taiwan": "Taiwan",
+ "Thailand": "Thailand",
+ "Turkey": "Turkey",
+ "Ukraine": "Ukraine",
+ "United Kingdom": "United Kingdom",
+ "United States": "United States",
+ "Type of Random Number Generator:": "Type of Random Number Generator:",
+ "OneRNG Device": "OneRNG Device",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation",
+ "\\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.",
+ "Social Key Management": "Social Key Management",
+ "Username": "Username",
+ "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)",
+ "Type of Installation": "Type of Installation",
"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.": "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": "Invalid FreeDNS Code",
- "Encryption keys": "Encryption keys",
- "There was a problem mounting the USB drive to $GPG_USB_MOUNT": "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": "The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found",
- "GPG Keyring loaded to $HOME_DIR": "GPG Keyring loaded to $HOME_DIR",
- "ssh keys imported": "ssh keys imported",
- "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish",
- "Freedombone Configuration": "Freedombone Configuration",
- "GPG/PGP keys for your system:": "GPG/PGP keys for your system:",
- "Generate new keys (new user)": "Generate new keys (new user)",
- "Import keys from USB drive/s": "Import keys from USB drive/s",
- "Retrieve keys from friends servers": "Retrieve keys from friends servers",
"Freedombone Control Panel": "Freedombone Control Panel",
"Main Repository (Mirrors)": "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.": "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.",
@@ -96,135 +178,5 @@
"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\\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.": "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": "Freedombone",
- "Type of Installation:": "Type of Installation:",
- "Full": "Full",
- "Writer": "Writer",
- "Cloud": "Cloud",
- "Chat": "Chat",
- "Mailbox": "Mailbox",
- "Non-Mailbox": "Non-Mailbox",
- "Social": "Social",
- "Media": "Media",
- "Developer": "Developer",
- "Mesh (router)": "Mesh (router)",
- "Mesh (user device)": "Mesh (user device)",
- "Wireless Mesh ESSID\\n\\nIf you press enter the default will be '$WIFI_SSID'": "Wireless Mesh ESSID\\n\\nIf you press enter the default will be '$WIFI_SSID'",
- "Give your mesh peer a name": "Give your mesh peer a name",
- "Wifi Channel (spaced to be non-overlapping):": "Wifi Channel (spaced to be non-overlapping):",
- "Username": "Username",
- "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.",
- "Social Key Management": "Social Key Management",
- "Type of Random Number Generator:": "Type of Random Number Generator:",
- "OneRNG Device": "OneRNG Device",
- "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation",
- "Where to download Debian packages from:": "Where to download Debian packages from:",
- "Australia": "Australia",
- "Austria": "Austria",
- "Belarus": "Belarus",
- "Belgium": "Belgium",
- "Bosnia and Herzegovina": "Bosnia and Herzegovina",
- "Brazil": "Brazil",
- "Bulgaria": "Bulgaria",
- "Canada": "Canada",
- "Chile": "Chile",
- "China": "China",
- "Croatia": "Croatia",
- "Czech Republic": "Czech Republic",
- "Denmark": "Denmark",
- "El Salvador": "El Salvador",
- "Estonia": "Estonia",
- "Finland": "Finland",
- "France 1": "France 1",
- "France 2": "France 2",
- "Germany 1": "Germany 1",
- "Germany 2": "Germany 2",
- "Greece": "Greece",
- "Hungary": "Hungary",
- "Iceland": "Iceland",
- "Iran": "Iran",
- "Ireland": "Ireland",
- "Italy": "Italy",
- "Japan": "Japan",
- "Korea": "Korea",
- "Lithuania": "Lithuania",
- "Mexico": "Mexico",
- "Netherlands": "Netherlands",
- "New Caledonia": "New Caledonia",
- "New Zealand": "New Zealand",
- "Norway": "Norway",
- "Poland": "Poland",
- "Portugal": "Portugal",
- "Romania": "Romania",
- "Russia": "Russia",
- "Slovakia": "Slovakia",
- "Slovenia": "Slovenia",
- "Spain": "Spain",
- "Sweden": "Sweden",
- "Switzerland": "Switzerland",
- "Taiwan": "Taiwan",
- "Thailand": "Thailand",
- "Turkey": "Turkey",
- "Ukraine": "Ukraine",
- "United Kingdom": "United Kingdom",
- "United States": "United States",
- "Pick a domain name service (DNS):": "Pick a domain name service (DNS):",
- "Digital Courage": "Digital Courage",
- "German Privacy Foundation 1": "German Privacy Foundation 1",
- "German Privacy Foundation 2": "German Privacy Foundation 2",
- "Chaos Computer Club": "Chaos Computer Club",
- "ClaraNet": "ClaraNet",
- "OpenNIC 1": "OpenNIC 1",
- "OpenNIC 2": "OpenNIC 2",
- "OpenNIC 3": "OpenNIC 3",
- "OpenNIC 4": "OpenNIC 4",
- "OpenNIC 5": "OpenNIC 5",
- "OpenNIC 6": "OpenNIC 6",
- "OpenNIC 7": "OpenNIC 7",
- "PowerNS": "PowerNS",
- "ValiDOM": "ValiDOM",
- "Freie Unzensierte": "Freie Unzensierte",
- "Google": "Google",
- "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.",
- "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",
- "\\nPlease enter the IP addresses:": "\\nPlease enter the IP addresses:",
- "This system:": "This system:",
- "Internet router:": "Internet router:",
- "Wiki Configuration": "Wiki Configuration",
- "\\nPlease enter your wiki details:": "\\nPlease enter your wiki details:",
- "Title:": "Title:",
- "Domain:": "Domain:",
- "Code:": "Code:",
- "Domain name validation": "Domain name validation",
- "Blog Configuration": "Blog Configuration",
- "\\nPlease enter your blog details:": "\\nPlease enter your blog details:",
- "Mediagoblin Configuration": "Mediagoblin Configuration",
- "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:",
- "Media Server Configuration": "Media Server Configuration",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server site:": "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server site:",
- "Hubzilla Configuration": "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:",
- "\\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": "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:": "\\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:": "Welcome Message:",
- "Background image URL:": "Background image URL:",
- "Developer Configuration": "Developer Configuration",
- "\\nPlease enter your Git hosting site details.\\nIf You don't need developer tools then just select Ok": "\\nPlease enter your Git hosting site details.\\nIf You don't need developer tools then just select Ok",
- "Your main domain name": "Your main domain name",
- "\\nWhich domain name should your email/XMPP/IRC/VoIP be associated with?": "\\nWhich domain name should your email/XMPP/IRC/VoIP be associated with?",
- "Which 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": "Your email address",
"Configuration filename:": "Configuration filename:"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-controlpanel-user.json b/locale/en_us/freedombone-controlpanel-user.json
index c698765c..a213a379 100644
--- a/locale/en_us/freedombone-controlpanel-user.json
+++ b/locale/en_us/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "No email address was given",
"No folder name was given": "No folder name was given",
"Email rule for $RULE_EMAIL was added": "Email rule for $RULE_EMAIL was added",
+ "Trust a PGP/GPG key or website domain": "Trust a PGP/GPG key or website domain",
+ "Set the trust level for $TRUST_ADDRESS:": "Set the trust level for $TRUST_ADDRESS:",
+ "I don't know or won't say": "I don't know or won't say",
+ "I do NOT trust": "I do NOT trust",
+ "I trust marginally": "I trust marginally",
+ "I trust fully": "I trust fully",
+ "I trust ultimately": "I trust ultimately",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}",
"When email arrives with subject containing:": "When email arrives with subject containing:",
"No subject text was given": "No subject text was given",
"Email rule for subject '$RULE_SUBJECT' was added": "Email rule for subject '$RULE_SUBJECT' was added",
@@ -71,33 +79,11 @@
"Port:": "Port:",
"Username:": "Username:",
"Password:": "Password:",
- "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID",
- "Device ID for ${PROJECT_NAME}": "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": "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": "Add a Syncthing device ID",
- "Paste the device ID for your laptop/desktop/netbook/phone/tablet below": "Paste the device ID for your laptop/desktop/netbook/phone/tablet below",
- "Device ID:": "Device ID:",
- "Description (optional):": "Description (optional):",
- "That doesn't look like a device ID": "That doesn't look like a device ID",
- "That ID has already been added": "That ID has already been added",
- "The ID was added": "The ID was added",
- "Remove a Syncthing device ID": "Remove a Syncthing device ID",
- "Paste the device ID which is to be removed below": "Paste the device ID which is to be removed below",
- "That ID wasn't registered anyway": "That ID wasn't registered anyway",
- "The ID was removed": "The ID was removed",
"Sign a PGP/GPG key or website domain": "Sign a PGP/GPG key or website domain",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.",
"Sign a PGP/GPG key": "Sign a PGP/GPG key",
"$SIGN_ADDRESS was signed": "$SIGN_ADDRESS was signed",
- "Trust a PGP/GPG key or website domain": "Trust a PGP/GPG key or website domain",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.",
- "Set the trust level for $TRUST_ADDRESS:": "Set the trust level for $TRUST_ADDRESS:",
- "I don't know or won't say": "I don't know or won't say",
- "I do NOT trust": "I do NOT trust",
- "I trust marginally": "I trust marginally",
- "I trust fully": "I trust fully",
- "I trust ultimately": "I trust ultimately",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}",
"My Encryption Keys": "My Encryption Keys",
"Choose an operation:": "Choose an operation:",
"Show your PGP/GPG key": "Show your PGP/GPG key",
@@ -111,19 +97,13 @@
"Add an email rule for a subject": "Add an email rule for a subject",
"Block or unblock an email address": "Block or unblock an email address",
"Block or unblock email with subject text": "Block or unblock email with subject text",
- "File Synchronization": "File Synchronization",
- "Show device ID for ${PROJECT_NAME}": "Show device ID for ${PROJECT_NAME}",
- "Add an ID for another machine or device": "Add an ID for another machine or device",
- "Remove an ID for another machine or device": "Remove an ID for another machine or device",
- "Manually edit device IDs": "Manually edit device IDs",
"Monkeysphere sign server keys": "Monkeysphere sign server keys",
"Freedombone Security Configuration": "Freedombone Security Configuration",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?",
+ "Freedombone": "Freedombone",
+ "Run an App": "Run an App",
"User Control Panel": "User Control Panel",
"Use Email": "Use Email",
- "Use Tox Chat": "Use Tox Chat",
- "Use XMPP Chat": "Use XMPP Chat",
- "Use IRC": "Use IRC",
"Browse the Web": "Browse the Web",
"Set an outgoing email proxy": "Set an outgoing email proxy",
"Administrator controls": "Administrator controls",
diff --git a/locale/en_us/freedombone-controlpanel.json b/locale/en_us/freedombone-controlpanel.json
index cdc92185..65bf0473 100644
--- a/locale/en_us/freedombone-controlpanel.json
+++ b/locale/en_us/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"This does not look like an ssh public key": "This does not look like an ssh public key",
"Select User": "Select User",
"Select one of the following:": "Select one of the following:",
- "SMTP Proxy for $ADMIN_USER": "SMTP Proxy for $ADMIN_USER",
- "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.": "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.",
- "Enable proxy:": "Enable proxy:",
- "Protocol (smtp/smtps):": "Protocol (smtp/smtps):",
- "ISP mail server:": "ISP mail server:",
- "Port:": "Port:",
"Administrator user": "Administrator user",
"You can't delete the administrator user": "You can't delete the administrator user",
"No Administrator user found. Check $COMPLETION_FILE": "No Administrator user found. Check $COMPLETION_FILE",
@@ -36,12 +30,6 @@
"New password for user $SELECTED_USERNAME": "New password for user $SELECTED_USERNAME",
"The password should be ${MINIMUM_PASSWORD_LENGTH} or more characters": "The password should be ${MINIMUM_PASSWORD_LENGTH} or more characters",
"Password for $SELECTED_USERNAME was changed": "Password for $SELECTED_USERNAME was changed",
- "IRC Password": "IRC Password",
- "Password for all IRC users, or press Enter for no password": "Password for all IRC users, or press Enter for no password",
- "The IRC password was changed": "The IRC password was changed",
- "Change blog avatar": "Change blog avatar",
- "Enter a URL for an image. It should be approximately a square image.": "Enter a URL for an image. It should be approximately a square image.",
- "Your blog avatar has been changed": "Your blog avatar has been changed",
"Change ssh public key": "Change ssh public key",
"\\nThis is the administrator user.\\n\\nAre you sure you want to change the ssh public key for the administrator?": "\\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": "Change ssh public key for $SELECTED_USERNAME",
@@ -82,41 +70,19 @@
"Plug in a LUKS encrypted USB drive": "Plug in a LUKS encrypted USB drive",
"USB Fragment Keydrive": "USB Fragment Keydrive",
"Backup data to USB": "Backup data to USB",
- "Restore from USB backup": "Restore from USB backup",
- "Choose an application to restore:": "Choose an application to restore:",
- "Everything": "Everything",
- "Return to the backup and restore menu": "Return to the backup and restore menu",
- "Configuration files": "Configuration files",
- "MariaDB settings": "MariaDB settings",
- "Let's Encrypt account": "Let's Encrypt account",
- "Mutt email client settings": "Mutt email client settings",
- "GPG keys": "GPG keys",
- "Email processing rules": "Email processing rules",
- "Spam filtering rules": "Spam filtering rules",
- "Administrator's README file": "Administrator's README file",
- "IPFS": "IPFS",
- "SSH keys": "SSH keys",
- "User configuration files": "User configuration files",
- "User local files": "User local files",
- "User fin files": "User fin files",
- "SSL/TLS certificates": "SSL/TLS certificates",
- "Personal settings": "Personal settings",
- "Mailing List": "Mailing List",
- "XMPP chat": "XMPP chat",
- "GNU Social": "GNU Social",
- "Hubzilla": "Hubzilla",
- "Syncthing": "Syncthing",
- "Gogs": "Gogs",
- "Wiki": "Wiki",
- "Blog": "Blog",
- "CJDNS": "CJDNS",
- "Email": "Email",
- "DLNA": "DLNA",
- "VoIP": "VoIP",
- "RSS reader": "RSS reader",
- "Tox": "Tox",
- "Mediagoblin": "Mediagoblin",
- "Restore from ${remote_domain_name}": "Restore from ${remote_domain_name}",
+ "Detected USB drive $USB_DRIVE": "Detected USB drive $USB_DRIVE",
+ "all": "all",
+ "Exit": "Exit",
+ "Restore apps": "Restore apps",
+ "Restore apps from USB drive $USB_DRIVE": "Restore apps from USB drive $USB_DRIVE",
+ "Freedombone": "Freedombone",
+ "Restore all apps from USB": "Restore all apps from USB",
+ "Restore failed with code $retcode": "Restore failed with code $retcode",
+ "Restore all apps from $1": "Restore all apps from $1",
+ "Restore complete": "Restore complete",
+ "Restore apps from USB": "Restore apps from USB",
+ "Restore of ${app_name} failed with code $retcode": "Restore of ${app_name} failed with code $retcode",
+ "Restore apps from $1": "Restore apps from $1",
"Restore data from USB": "Restore data from USB",
"Plug in your backup USB drive": "Plug in your backup USB drive",
"Restore data from remote server": "Restore data from remote server",
@@ -131,25 +97,10 @@
"\\nDo you want to turn logging on?": "\\nDo you want to turn logging on?",
"Restore GPG key for user": "Restore GPG key for user",
"Plug in your USB keydrive": "Plug in your USB keydrive",
- "Renew SSL certificate": "Renew SSL certificate",
- "\\nThis will renew a letsencrypt certificate. Select 'yes' to continue": "\\nThis will renew a letsencrypt certificate. Select 'yes' to continue",
- "Hubzilla install directory not found": "Hubzilla install directory not found",
- "Hubzilla certificate has been renewed": "Hubzilla certificate has been renewed",
- "Hubzilla channel directory server": "Hubzilla channel directory server",
- "Hubzilla is not installed on this system": "Hubzilla is not installed on this system",
- "When you click on 'channel directory' this is where Hubzilla will obtain its list from": "When you click on 'channel directory' this is where Hubzilla will obtain its list from",
- "Invalid domain - include the https://": "Invalid domain - include the https://",
- "Domain channel directory server changed to $hubzilla_domain_server": "Domain channel directory server changed to $hubzilla_domain_server",
- "Format a USB drive (LUKS encrypted)": "Format a USB drive (LUKS encrypted)",
- "Choose a drive:": "Choose a drive:",
- "sda (Beaglebone Black)": "sda (Beaglebone Black)",
- "sdb": "sdb",
- "sdc": "sdc",
- "sdd": "sdd",
- "Back to Backup and Restore menu": "Back to Backup and Restore menu",
- "Format USB drive": "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!": "\\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": "Remove backups from a USB drive",
+ "Format USB drive $USB_DRIVE": "Format USB drive $USB_DRIVE",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.",
+ "Remove backups from a USB drive $USB_DRIVE": "Remove backups from a USB drive $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.": "\\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": "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.": "\\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.",
@@ -158,16 +109,19 @@
"Change the name of this system": "Change the name of this system",
"New local network name": "New local network name",
"The name of this system on your local network was changed successfully": "The name of this system on your local network was changed successfully",
- "Set the TLS date/time source": "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).": "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'": "Don't include the 'https'",
- "That doesn't look like a domain name": "That doesn't look like a domain name",
+ "Return to using a dynamic IP address": "Return to using a dynamic IP address",
+ "\\nDo you wish to go back to using a dynamic IP address?": "\\nDo you wish to go back to using a dynamic IP address?",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "System is rebooting. You may need to close this terminal and log in from a new one.",
"Set a static local IP address": "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": "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",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic 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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.",
"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",
+ "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "Set the local IP address for your internet router or ADSL modem.\\n\\nIt will typically be ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar",
+ "Static local IP address": "Static local IP address",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "\\nFor the change to take effect your system will now need to reboot. Do this now?",
"Wifi Settings": "Wifi Settings",
- "Wifi settings were changed": "Wifi settings were changed",
+ "Wifi settings were changed.": "Wifi settings were changed.",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.",
"Hotspot Settings": "Hotspot Settings",
"Enabled (yes/no):": "Enabled (yes/no):",
"SSID:": "SSID:",
@@ -176,54 +130,67 @@
"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",
+ "Reinstall MariaDB": "Reinstall MariaDB",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?",
+ "MariaDB has been reinstalled": "MariaDB has been reinstalled",
+ "Firewall Settings": "Firewall Settings",
+ "Email Domains": "Email Domains",
+ "Enter the list of email domains to use, separated by semicolons": "Enter the list of email domains to use, separated by semicolons",
+ "Email domains were changed": "Email domains were changed",
+ "Email Domains not set": "Email Domains not set",
+ "There should be no spaces in the list": "There should be no spaces in the list",
+ "SMTP Proxy for $ADMIN_USER": "SMTP Proxy for $ADMIN_USER",
+ "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.": "You may need to proxy outgoing email via your ISP's mail server. If so enter the details below.",
+ "Enable proxy:": "Enable proxy:",
+ "Protocol (smtp/smtps):": "Protocol (smtp/smtps):",
+ "ISP mail server:": "ISP mail server:",
+ "Port:": "Port:",
"Backup and Restore": "Backup and Restore",
"Choose an operation:": "Choose an operation:",
"Backup data to USB drive": "Backup data to USB drive",
"Restore GPG key from USB keydrive": "Restore GPG key from USB keydrive",
"Restore data from USB drive": "Restore data from USB drive",
+ "Reinstall mariadb": "Reinstall mariadb",
"Configure remote backups": "Configure remote backups",
"Restore from remote backup": "Restore from remote backup",
"Backup GPG key to USB (master keydrive)": "Backup GPG key to USB (master keydrive)",
"Backup GPG key to USB (fragment keydrive)": "Backup GPG key to USB (fragment keydrive)",
+ "Format a USB drive (LUKS encrypted)": "Format a USB drive (LUKS encrypted)",
+ "Remove backups from a USB drive": "Remove backups from a USB drive",
"Back to main menu": "Back to main menu",
- "Email Filtering Rules": "Email Filtering Rules",
+ "Email Menu": "Email Menu",
"Add a user to a mailing list": "Add a user to a mailing list",
"Remove a user from a mailing list": "Remove a user from a mailing list",
"Add an email rule": "Add an email rule",
"Block/Unblock an email address": "Block/Unblock an email address",
"Block/Unblock email with subject text": "Block/Unblock email with subject text",
+ "Outgoing Email Proxy": "Outgoing Email Proxy",
+ "Extra email domains": "Extra email domains",
"Manage Users": "Manage Users",
"Add a user": "Add a user",
"Delete a user": "Delete a user",
"Change user password": "Change user password",
"Change user ssh public key": "Change user ssh public key",
- "Set channel directory server": "Set channel directory server",
- "Media Menu": "Media Menu",
- "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": "Wifi",
+ "No wifi adaptors were detected": "No wifi adaptors were detected",
"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",
- "Show current IRC login password": "Show current IRC login password",
+ "Change Settings for an App": "Change Settings for an App",
"Control Panel": "Control Panel",
"About this system": "About this system",
+ "Show Firewall": "Show Firewall",
"Reset Tripwire": "Reset Tripwire",
+ "App Settings": "App Settings",
+ "Add/Remove Apps": "Add/Remove Apps",
"Logging on/off": "Logging on/off",
"Ping enable/disable": "Ping enable/disable",
- "Outgoing Email Proxy": "Outgoing Email Proxy",
"Security Settings": "Security Settings",
"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",
"Wifi menu": "Wifi menu"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-image-customise.json b/locale/en_us/freedombone-image-customise.json
index d3018a80..d7e79d3b 100644
--- a/locale/en_us/freedombone-image-customise.json
+++ b/locale/en_us/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "Freedombone Mesh",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.",
"info: Adding apt config to call dpkg via eatmydata": "info: Adding apt config to call dpkg via eatmydata",
"error: unable to find /usr/bin/eatmydata after installing the eatmydata package": "error: unable to find /usr/bin/eatmydata after installing the eatmydata package",
"info: Removing apt config to call dpkg via eatmydata": "info: Removing apt config to call dpkg via eatmydata",
"warning: missing $rootdir$override": "warning: missing $rootdir$override",
- "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n",
+ "\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": "\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",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n",
"Using ssh public key:": "Using ssh public key:",
"Install failed. Press x to continue...": "Install failed. Press x to continue...",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
- "File not found /usr/local/bin/tox-bootstrapd": "File not found /usr/local/bin/tox-bootstrapd",
- "Account to run Tox's DHT bootstrap daemon": "Account to run Tox's DHT bootstrap daemon",
- "Unable to install toxid, returned $?": "Unable to install toxid, returned $?",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
- "Tox client was not installed to $TOXIC_FILE": "Tox client was not installed to $TOXIC_FILE",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.",
"warning: creating initial user $username with well known password!": "warning: creating initial user $username with well known password!",
"info: killing leftover processes in chroot": "info: killing leftover processes in chroot"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-image-mesh.json b/locale/en_us/freedombone-image-mesh.json
index 6c2b8fd5..c08d1917 100644
--- a/locale/en_us/freedombone-image-mesh.json
+++ b/locale/en_us/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "avahi name changed to P${PEER_ID}.local",
- "Regenerating ssh host keys": "Regenerating ssh host keys",
- "zeronet daemon updated to P${PEER_ID}.local": "zeronet daemon updated to P${PEER_ID}.local",
- "Address: $ZERONET_BLOG_ADDRESS": "Address: $ZERONET_BLOG_ADDRESS",
- "Public key: $ZERONET_BLOG_PRIVATE_KEY": "Public key: $ZERONET_BLOG_PRIVATE_KEY",
- "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS": "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS",
- "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS": "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS",
- "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY",
- "Address: $ZERONET_MAIL_ADDRESS": "Address: $ZERONET_MAIL_ADDRESS",
- "Public key: $ZERONET_MAIL_PRIVATE_KEY": "Public key: $ZERONET_MAIL_PRIVATE_KEY",
- "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS",
- "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS",
- "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY",
- "Address: $ZERONET_FORUM_ADDRESS": "Address: $ZERONET_FORUM_ADDRESS",
- "Public key: $ZERONET_FORUM_PRIVATE_KEY": "Public key: $ZERONET_FORUM_PRIVATE_KEY",
- "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS": "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS",
- "Forum address: $ZERONET_FORUM_ADDRESS": "Forum address: $ZERONET_FORUM_ADDRESS",
- "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "Forum private key: $ZERONET_FORUM_PRIVATE_KEY",
- "Home directory for $DEFAULT_USERNAME not found": "Home directory for $DEFAULT_USERNAME not found"
+ "new": "new",
+ "amnesic": "amnesic"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-image.json b/locale/en_us/freedombone-image.json
index 2ac6ecef..00601b9d 100644
--- a/locale/en_us/freedombone-image.json
+++ b/locale/en_us/freedombone-image.json
@@ -6,5 +6,6 @@
" 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",
+ "\nImage was created.\n": "\nImage was created.\n",
"Username: $USERNAME\nPassword: $PASSWORD": "Username: $USERNAME\nPassword: $PASSWORD"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-keydrive.json b/locale/en_us/freedombone-keydrive.json
index df0055a9..50e9a358 100644
--- a/locale/en_us/freedombone-keydrive.json
+++ b/locale/en_us/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"Home directory for $MY_USERNAME not found. This user may not exist on the system": "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": "There was a problem mounting the USB drive to $USB_MOUNT",
"No .gnupg directory was found for $MY_USERNAME": "No .gnupg directory was found for $MY_USERNAME",
+ "LetsEncrypt keys copied to $USB_DRIVE": "LetsEncrypt keys copied to $USB_DRIVE",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "GPG Keyring copied to $USB_DRIVE. You may now remove the drive.",
"Unable to copy gpg keyring to $USB_DRIVE": "Unable to copy gpg keyring to $USB_DRIVE",
"Made directory $FRAGMENTS_DIR": "Made directory $FRAGMENTS_DIR",
diff --git a/locale/en_us/freedombone-mesh-batman.json b/locale/en_us/freedombone-mesh-batman.json
new file mode 100644
index 00000000..32d49b46
--- /dev/null
+++ b/locale/en_us/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": "${WIFI_SSID}-hotspot"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-mesh-blog.json b/locale/en_us/freedombone-mesh-blog.json
new file mode 100644
index 00000000..edefc291
--- /dev/null
+++ b/locale/en_us/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "Freedombone Blog",
+ "${TOX_NICK}'s Blog": "${TOX_NICK}'s Blog",
+ "Date: ${DATESTR}": "Date: ${DATESTR}",
+ "Author: $(toxid --showuser)": "Author: $(toxid --showuser)",
+ "Add your text here": "Add your text here",
+ "Blog Post Title": "Blog Post Title",
+ "Delete the previous blog entry": "Delete the previous blog entry",
+ "Freedombone Mesh": "Freedombone Mesh",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "\\nAre you sure that you wish to delete the previous blog entry?",
+ "Select Blog Theme": "Select Blog Theme",
+ "Blogging": "Blogging",
+ "Choose an operation:": "Choose an operation:",
+ "View a blog": "View a blog",
+ "New blog entry": "New blog entry",
+ "Edit the previous blog entry": "Edit the previous blog entry",
+ "Change theme": "Change theme",
+ "Exit": "Exit"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-mesh-install.json b/locale/en_us/freedombone-mesh-install.json
index 5c962c63..56d4e2ae 100644
--- a/locale/en_us/freedombone-mesh-install.json
+++ b/locale/en_us/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]",
- "File not found /usr/local/bin/tox-bootstrapd": "File not found /usr/local/bin/tox-bootstrapd",
- "Account to run Tox's DHT bootstrap daemon": "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.conf",
- "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service": "File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service"
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-mesh-reset.json b/locale/en_us/freedombone-mesh-reset.json
new file mode 100644
index 00000000..5ac05cb6
--- /dev/null
+++ b/locale/en_us/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "New Identity",
+ "Freedombone Mesh": "Freedombone Mesh",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.",
+ "You now have a new identity": "You now have a new identity"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-mesh-visit-site.json b/locale/en_us/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..3ad5932a
--- /dev/null
+++ b/locale/en_us/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "Visit IPFS site",
+ "Freedombone mesh": "Freedombone mesh",
+ "Enter the username or Tox ID for the site you wish to visit": "Enter the username or Tox ID for the site you wish to visit",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-mirrors.json b/locale/en_us/freedombone-mirrors.json
index 9b67d82a..d5daccd0 100644
--- a/locale/en_us/freedombone-mirrors.json
+++ b/locale/en_us/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -m|--mypassword [password] Local mirrors user password": " -m|--mypassword [password] Local mirrors user password",
" --port [number] Friend's server ssh port number": " --port [number] Friend's server ssh port number",
" -s|--sync [domain] Friend's server domain to sync with": " -s|--sync [domain] Friend's server domain to sync with",
+ "The app $SYNC_SINGLE_APP was not found": "The app $SYNC_SINGLE_APP was not found",
"WARNING: failed to mirror repo ${repo_url}": "WARNING: failed to mirror repo ${repo_url}"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-pin-cert.json b/locale/en_us/freedombone-pin-cert.json
index 3455e0d9..146782b0 100644
--- a/locale/en_us/freedombone-pin-cert.json
+++ b/locale/en_us/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": "No certificate found for $DOMAIN_NAME"
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH",
+ "Removed pinning for ${DOMAIN_NAME}": "Removed pinning for ${DOMAIN_NAME}",
+ "No private key certificate found for $DOMAIN_NAME": "No private key certificate found for $DOMAIN_NAME",
+ "No fullchain certificate found for $DOMAIN_NAME": "No fullchain certificate found for $DOMAIN_NAME"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-recoverkey.json b/locale/en_us/freedombone-recoverkey.json
index 0d4cbcca..31d59530 100644
--- a/locale/en_us/freedombone-recoverkey.json
+++ b/locale/en_us/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${PROJECT_NAME}-recoverkey -u [username] -d [drive]": "${PROJECT_NAME}-recoverkey -u [username] -d [drive]",
"User $MY_USERNAME does not exist on the system": "User $MY_USERNAME does not exist on the system",
- "Encryption keys": "Encryption keys",
- "There was a problem mounting the USB drive to $GPG_USB_MOUNT": "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": "The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found",
- "GPG Keyring loaded to $HOME_DIR": "GPG Keyring loaded to $HOME_DIR",
- "ssh keys imported": "ssh keys imported",
- "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish",
"Starting key retrieval from $REMOTE_SERVER...": "Starting key retrieval from $REMOTE_SERVER..."
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-restore-local.json b/locale/en_us/freedombone-restore-local.json
index 250bcc42..63b3742c 100644
--- a/locale/en_us/freedombone-restore-local.json
+++ b/locale/en_us/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "Please attach a USB drive": "Please attach a USB drive",
- "There was a problem mounting the USB drive to $USB_MOUNT": "There was a problem mounting the USB drive to $USB_MOUNT",
- "Unable to unmount the drive. This means that the backup did not work": "Unable to unmount the drive. This means that the backup did not work",
- "Setting permissions": "Setting permissions",
- "Unmount encrypted USB": "Unmount encrypted USB",
"No backup directory found on the USB drive.": "No backup directory found on the USB drive.",
"Checking that admin user exists": "Checking that admin user exists",
"Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username.": "Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username.",
"Copying GPG keys from admin user to root": "Copying GPG keys from admin user to root",
- "Restoring ${1} database": "Restoring ${1} database",
- "Unable to restore ${1} database": "Unable to restore ${1} database",
- "Restoring ${1} installation": "Restoring ${1} installation",
"Restoring configuration files": "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": "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": "Restoring mysql settings",
@@ -27,7 +19,6 @@
"Restoring procmail settings for $USERNAME": "Restoring procmail settings for $USERNAME",
"Restoring spamassassin settings for $USERNAME": "Restoring spamassassin settings for $USERNAME",
"Restoring admin user README": "Restoring admin user README",
- "Restoring IPFS": "Restoring IPFS",
"Restoring ssh keys for $USERNAME": "Restoring ssh keys for $USERNAME",
"Restoring config files for $USERNAME": "Restoring config files for $USERNAME",
"Restoring monkeysphere ids for $USERNAME": "Restoring monkeysphere ids for $USERNAME",
@@ -36,21 +27,7 @@
"Restoring certificates": "Restoring certificates",
"Restoring personal settings for $USERNAME": "Restoring personal settings for $USERNAME",
"Restoring public mailing list": "Restoring public mailing list",
- "Restoring XMPP settings": "Restoring XMPP settings",
- "Restoring syncthing configuration": "Restoring syncthing configuration",
- "Restoring syncthing shared files": "Restoring syncthing shared files",
- "Restoring syncthing files for $USERNAME": "Restoring syncthing files for $USERNAME",
- "Restoring Gogs settings": "Restoring Gogs settings",
- "Restoring Gogs repos": "Restoring Gogs repos",
- "Restoring Gogs authorized_keys": "Restoring Gogs authorized_keys",
- "Restoring Wiki installation ${WIKI_DOMAIN_NAME}": "Restoring Wiki installation ${WIKI_DOMAIN_NAME}",
- "Restoring blog installation": "Restoring blog installation",
- "No content directory found after restoring blog": "No content directory found after restoring blog",
- "Restoring cjdns installation": "Restoring cjdns installation",
"Restoring emails for $USERNAME": "Restoring emails for $USERNAME",
- "Restoring DLNA cache": "Restoring DLNA cache",
- "Restoring VoIP settings": "Restoring VoIP settings",
- "Restoring Tox node settings": "Restoring Tox node settings",
"Restore $RESTORE_APP": "Restore $RESTORE_APP",
"Restore from USB drive is complete. You can now unplug it.": "Restore from USB drive is complete. You can now unplug it."
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-restore-remote.json b/locale/en_us/freedombone-restore-remote.json
index fa734d63..9bdaadf1 100644
--- a/locale/en_us/freedombone-restore-remote.json
+++ b/locale/en_us/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"No friends list found at $BACKUP_LIST": "No friends list found at $BACKUP_LIST",
"Server not found within the friends list": "Server not found within the friends list",
"Copying GPG keys from admin user to root": "Copying GPG keys from admin user to root",
- "Restoring ${1} database": "Restoring ${1} database",
- "Unable to restore ${1} database": "Unable to restore ${1} database",
- "Restoring ${1} installation": "Restoring ${1} installation",
"Restoring configuration files": "Restoring configuration files",
"Restoring MariaDB settings": "Restoring MariaDB settings",
"Get the MariaDB password from the backup": "Get the MariaDB password from the backup",
@@ -20,7 +17,6 @@
"Restoring procmail settings for $USERNAME": "Restoring procmail settings for $USERNAME",
"Restoring spamassassin settings for $USERNAME": "Restoring spamassassin settings for $USERNAME",
"Restoring README": "Restoring README",
- "Restoring IPFS": "Restoring IPFS",
"Restoring ssh keys for $USERNAME": "Restoring ssh keys for $USERNAME",
"Restoring config files for $USERNAME": "Restoring config files for $USERNAME",
"Restoring monkeysphere ids for $USERNAME": "Restoring monkeysphere ids for $USERNAME",
@@ -29,14 +25,6 @@
"Restoring certificates": "Restoring certificates",
"Restoring personal settings for $USERNAME": "Restoring personal settings for $USERNAME",
"Restoring public mailing list": "Restoring public mailing list",
- "Restoring XMPP settings": "Restoring XMPP settings",
- "Restoring syncthing configuration": "Restoring syncthing configuration",
- "Restoring syncthing shared files": "Restoring syncthing shared files",
- "Restoring syncthing files for $USERNAME": "Restoring syncthing files for $USERNAME",
- "Restoring Mediagoblin installation": "Restoring Mediagoblin installation",
- "Restoring Gogs repos": "Restoring Gogs repos",
- "Restoring Gogs authorized_keys": "Restoring Gogs authorized_keys",
- "Restoring Wiki installation $WIKI_DOMAIN_NAME": "Restoring Wiki installation $WIKI_DOMAIN_NAME",
- "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "Restoring blog installation $FULLBLOG_DOMAIN_NAME",
- "No content directory found after restoring blog": "No content directory found after restoring blog"
+ "Restoring emails for $USERNAME": "Restoring emails for $USERNAME",
+ "*** Remote restore was successful ***": "*** Remote restore was successful ***"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-rmuser.json b/locale/en_us/freedombone-rmuser.json
index de4e9cab..210e7e7e 100644
--- a/locale/en_us/freedombone-rmuser.json
+++ b/locale/en_us/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "Home directory does not exist for $MY_USERNAME",
+ "Home directory does not exist for $REMOVE_USERNAME": "Home directory does not exist for $REMOVE_USERNAME",
"$COMPLETION_FILE not found": "$COMPLETION_FILE not found",
"No admin user specified in $COMPLETION_FILE": "No admin user specified in $COMPLETION_FILE",
"No admin username specified in $COMPLETION_FILE": "No admin username specified in $COMPLETION_FILE",
"The administrator user cannot be removed": "The administrator user cannot be removed",
- "Do you really wish to remove the user '$MY_USERNAME' (y/n) ?": "Do you really wish to remove the user '$MY_USERNAME' (y/n) ?",
- "User $MY_USERNAME was not removed": "User $MY_USERNAME was not removed",
- "User $MY_USERNAME was removed": "User $MY_USERNAME was removed"
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?",
+ "User $REMOVE_USERNAME was not removed": "User $REMOVE_USERNAME was not removed",
+ "Removing user from ${app_name}": "Removing user from ${app_name}",
+ "User $REMOVE_USERNAME was removed": "User $REMOVE_USERNAME was removed"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-sec.json b/locale/en_us/freedombone-sec.json
index 1e18ad58..d821790a 100644
--- a/locale/en_us/freedombone-sec.json
+++ b/locale/en_us/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "SSH Passwords",
"Freedombone Security Configuration": "Freedombone Security Configuration",
+ "\\nAllow SSH login using passwords?": "\\nAllow SSH login using passwords?",
"\\nWeb/IMAP Ciphers:": "\\nWeb/IMAP Ciphers:",
"Protocols:": "Protocols:",
"Ciphers:": "Ciphers:",
@@ -7,8 +9,6 @@
"MACs:": "MACs:",
"KEX:": "KEX:",
"Host key algorithms:": "Host key algorithms:",
- "SSH Passwords": "SSH Passwords",
- "\\nAllow SSH login using passwords?": "\\nAllow SSH login using passwords?",
"\\nXMPP Ciphers:": "\\nXMPP Ciphers:",
"ECC Curve:": "ECC Curve:",
"Final Confirmation": "Final Confirmation",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "Register a website with monkeysphere",
"Enter the website domain name (without https://)": "Enter the website domain name (without https://)",
"$domain has been registered": "$domain has been registered",
+ "Remove pinning for a domain": "Remove pinning for a domain",
+ "Removed pinning from $domain": "Removed pinning from $domain",
+ "Freedombone Control Panel": "Freedombone Control Panel",
+ "Security Settings": "Security Settings",
+ "Choose an operation:": "Choose an operation:",
+ "Regenerate ssh host keys": "Regenerate ssh host keys",
+ "Regenerate Diffie-Hellman keys": "Regenerate Diffie-Hellman keys",
+ "Update cipersuite": "Update cipersuite",
+ "Renew Let's Encrypt certificate": "Renew Let's Encrypt certificate",
+ "Enable GPG based authentication (monkeysphere)": "Enable GPG based authentication (monkeysphere)",
+ "Allow ssh login with passwords": "Allow ssh login with passwords",
+ "Go Back/Exit": "Go Back/Exit",
"Import file $IMPORT_FILE not found": "Import file $IMPORT_FILE not found",
"Security settings exported to $EXPORT_FILE": "Security settings exported to $EXPORT_FILE"
}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-tests.json b/locale/en_us/freedombone-tests.json
new file mode 100644
index 00000000..5822351e
--- /dev/null
+++ b/locale/en_us/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "${PROJECT_NAME}-tests",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-update-date.json b/locale/en_us/freedombone-update-date.json
deleted file mode 100644
index a7a69877..00000000
--- a/locale/en_us/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "Date went backwards between tlsdate updates. ",
- "tlsdate anomaly": "tlsdate anomaly",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": "Incorrect date: $DATE_BEFORE -> $DATE_AFTER"
-}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-update-date.mo b/locale/en_us/freedombone-update-date.mo
deleted file mode 100644
index 4d280c16..00000000
Binary files a/locale/en_us/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/en_us/freedombone-utils-backup.json b/locale/en_us/freedombone-utils-backup.json
new file mode 100644
index 00000000..606c768f
--- /dev/null
+++ b/locale/en_us/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "Please attach a USB drive",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "There was a problem mounting the USB drive to $USB_MOUNT",
+ "Unable to unmount the drive.": "Unable to unmount the drive.",
+ "Unmount encrypted USB": "Unmount encrypted USB",
+ "No MariaDB password was given": "No MariaDB password was given",
+ "Obtaining ${1} database backup": "Obtaining ${1} database backup",
+ "${1} database could not be saved": "${1} database could not be saved",
+ "${1} database could not be dumped": "${1} database could not be dumped",
+ "Database dump was created for ${1}": "Database dump was created for ${1}",
+ "WARNING: directory does not exist: ${1}": "WARNING: directory does not exist: ${1}",
+ "Backup key could not be found": "Backup key could not be found",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "Error backing up ${1} database to ${local_database_dir}/${1}.sql",
+ "Setting permissions": "Setting permissions",
+ "Unable to export ${1} database": "Unable to export ${1} database",
+ "${PROJECT_NAME} backup to friends": "${PROJECT_NAME} backup to friends",
+ "Unable to dump ${1} database": "Unable to dump ${1} database",
+ "Backup ${app_name}": "Backup ${app_name}",
+ "Backup ${app_name} completed": "Backup ${app_name} completed",
+ "Restoring ${app_name}": "Restoring ${app_name}",
+ "Restored ${app_name}": "Restored ${app_name}",
+ "Restoring ${1} database": "Restoring ${1} database",
+ "Unable to restore ${1} database": "Unable to restore ${1} database",
+ "Restoring ${1} installation": "Restoring ${1} installation",
+ "Backing up some additional directories": "Backing up some additional directories",
+ "WARNING: The backup directory $destination_dir is already used.": "WARNING: The backup directory $destination_dir is already used.",
+ "Choose a different destination name for backing up $backup_dir": "Choose a different destination name for backing up $backup_dir",
+ "WARNING: Directory $backup_dir does not exist": "WARNING: Directory $backup_dir does not exist"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-config.json b/locale/en_us/freedombone-utils-config.json
new file mode 100644
index 00000000..d3c4de8e
--- /dev/null
+++ b/locale/en_us/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "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.",
+ "The configuration file $CONFIGURATION_FILE was not found": "The configuration file $CONFIGURATION_FILE was not found",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": "Domain ${domain_value} collides with another app. The domain for each app should be unique."
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-database.json b/locale/en_us/freedombone-utils-database.json
new file mode 100644
index 00000000..3a5dc0b4
--- /dev/null
+++ b/locale/en_us/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "Your MariaDB password is: $MARIADB_PASSWORD",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-depends.json b/locale/en_us/freedombone-utils-depends.json
new file mode 100644
index 00000000..c16d9259
--- /dev/null
+++ b/locale/en_us/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": "Dependency error: The function ${1} has not been defined"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-final.json b/locale/en_us/freedombone-utils-final.json
new file mode 100644
index 00000000..9ea02f98
--- /dev/null
+++ b/locale/en_us/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": "See /home/$MY_USERNAME/README for post-installation instructions."
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-git.json b/locale/en_us/freedombone-utils-git.json
new file mode 100644
index 00000000..921ecfc5
--- /dev/null
+++ b/locale/en_us/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": "Unable to checkout $1 $2"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-help.json b/locale/en_us/freedombone-utils-help.json
new file mode 100644
index 00000000..d7bbc7e3
--- /dev/null
+++ b/locale/en_us/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": "${PROJECT_NAME} -c [configuration file]"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-interactive.json b/locale/en_us/freedombone-utils-interactive.json
new file mode 100644
index 00000000..0a2793fe
--- /dev/null
+++ b/locale/en_us/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "The command ${PROJECT_NAME}-remote was not found": "The command ${PROJECT_NAME}-remote was not found",
+ " ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes": " ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes",
+ "The command ${PROJECT_NAME}-config was not found": "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]": " ${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": "Encrypted backup to other servers",
+ "${PROJECT_NAME} Configuration": "${PROJECT_NAME} Configuration",
+ "\\nDo you wish to configure some remote backup locations?": "\\nDo you wish to configure some remote backup locations?",
+ "Freedombone Configuration": "Freedombone Configuration",
+ "${site_name^} Configuration": "${site_name^} Configuration",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:",
+ "Domain:": "Domain:",
+ "Code:": "Code:",
+ "Domain name validation": "Domain name validation",
+ "Title:": "Title:"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-keys.json b/locale/en_us/freedombone-utils-keys.json
new file mode 100644
index 00000000..6c078d30
--- /dev/null
+++ b/locale/en_us/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "Recover Encryption Keys",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT",
+ "The directory $USB_MOUNT/.gnupg or $USB_MOUNT/.gnupg_fragments was not found": "The directory $USB_MOUNT/.gnupg or $USB_MOUNT/.gnupg_fragments was not found",
+ "GPG Keyring loaded to $HOME_DIR": "GPG Keyring loaded to $HOME_DIR",
+ "ssh keys imported": "ssh keys imported",
+ "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish": "Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish",
+ "Encryption Keys Recovery": "Encryption Keys Recovery",
+ "Freedombone Configuration": "Freedombone Configuration",
+ "GPG/PGP keys for your system:": "GPG/PGP keys for your system:",
+ "Generate new keys (new user)": "Generate new keys (new user)",
+ "Import keys from USB drive/s": "Import keys from USB drive/s",
+ "Retrieve keys from friends servers": "Retrieve keys from friends servers",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": "Do you wish to recover your previous encryption keys from a USB master keydrive?"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-onion.json b/locale/en_us/freedombone-utils-onion.json
new file mode 100644
index 00000000..15a2c793
--- /dev/null
+++ b/locale/en_us/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "No Tor installation found. ${onion_service_name} onion site cannot be configured.",
+ "${onion_service_name} onion site hostname not found": "${onion_service_name} onion site hostname not found"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-rng.json b/locale/en_us/freedombone-utils-rng.json
new file mode 100644
index 00000000..4ce8b492
--- /dev/null
+++ b/locale/en_us/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "OneRNG package could not be downloaded": "OneRNG package could not be downloaded",
+ "OneRNG package: $ONERNG_PACKAGE": "OneRNG package: $ONERNG_PACKAGE",
+ "Hash does not match. This could indicate that the package has been tampered with.": "Hash does not match. This could indicate that the package has been tampered with.",
+ "OneRNG expected package hash: $ONERNG_PACKAGE_HASH": "OneRNG expected package hash: $ONERNG_PACKAGE_HASH",
+ "OneRNG actual hash: $hash": "OneRNG actual hash: $hash",
+ "OneRNG Device": "OneRNG Device",
+ "Please plug in the OneRNG device": "Please plug in the OneRNG device"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-selector.json b/locale/en_us/freedombone-utils-selector.json
new file mode 100644
index 00000000..934042a8
--- /dev/null
+++ b/locale/en_us/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "${app_name}_variables was not found",
+ "No variant name for choosing apps": "No variant name for choosing apps",
+ "${app_name} chosen": "${app_name} chosen",
+ "${a}": "${a}",
+ "Removing users for application: ${a}": "Removing users for application: ${a}",
+ "Removing application: ${a}": "Removing application: ${a}",
+ "${a} was removed": "${a} was removed",
+ "Interactive installer": "Interactive installer",
+ "Interactive settings complete": "Interactive settings complete",
+ "Login for user ${USERNAME}=": "Login for user ${USERNAME}=",
+ "Upgrading application from interactive: ${a}": "Upgrading application from interactive: ${a}",
+ "${a} was upgraded from interactive": "${a} was upgraded from interactive",
+ "Installing application from interactive: ${a}": "Installing application from interactive: ${a}",
+ "${a} was installed from interactive": "${a} was installed from interactive",
+ "${a} was not installed from interactive": "${a} was not installed from interactive",
+ "Upgrading application: ${a}": "Upgrading application: ${a}",
+ "${a} was upgraded": "${a} was upgraded",
+ "Installing application: ${a}": "Installing application: ${a}",
+ "${a} was installed": "${a} was installed",
+ "${a} was not installed": "${a} was not installed",
+ "${a} has been removed and so will not be reinstalled": "${a} has been removed and so will not be reinstalled"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-setup.json b/locale/en_us/freedombone-utils-setup.json
new file mode 100644
index 00000000..f426c584
--- /dev/null
+++ b/locale/en_us/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": "System variant: $SYSTEM_TYPE"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-validation.json b/locale/en_us/freedombone-utils-validation.json
new file mode 100644
index 00000000..60afb434
--- /dev/null
+++ b/locale/en_us/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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.": "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": "Invalid FreeDNS Code"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-web.json b/locale/en_us/freedombone-utils-web.json
new file mode 100644
index 00000000..fad7d932
--- /dev/null
+++ b/locale/en_us/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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 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 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",
+ "Private certificate for ${CHECK_HOSTNAME} was not created": "Private certificate for ${CHECK_HOSTNAME} was not created",
+ "Public certificate for ${CHECK_HOSTNAME} was not created": "Public certificate for ${CHECK_HOSTNAME} was not created",
+ "Diffie–Hellman parameters for ${CHECK_HOSTNAME} were 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}, so try making a self-signed cert",
+ "Lets Encrypt failed for $SITE_DOMAIN_NAME": "Lets Encrypt failed for $SITE_DOMAIN_NAME",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-utils-wifi.json b/locale/en_us/freedombone-utils-wifi.json
new file mode 100644
index 00000000..d57a1710
--- /dev/null
+++ b/locale/en_us/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "Freedombone Configuration",
+ "Wifi Settings ${wifi_ctr}": "Wifi Settings ${wifi_ctr}",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:",
+ "SSID (can be 'any'):": "SSID (can be 'any'):",
+ "Type (open/wpa2-psk):": "Type (open/wpa2-psk):",
+ "Passphrase:": "Passphrase:"
+}
\ No newline at end of file
diff --git a/locale/en_us/freedombone-wifi.json b/locale/en_us/freedombone-wifi.json
index 75a60ca7..fdcf638e 100644
--- a/locale/en_us/freedombone-wifi.json
+++ b/locale/en_us/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 99690238..df7c0b9a 100644
--- a/locale/en_us/freedombone.json
+++ b/locale/en_us/freedombone.json
@@ -1,147 +1,4 @@
{
- "Search engine login": "Search engine login",
- "${PROJECT_NAME} -c [configuration file]": "${PROJECT_NAME} -c [configuration file]",
- "or for more specialised variants you can specify '$VARIANT_MAILBOX', '$VARIANT_CLOUD',": "or for more specialised variants you can specify '$VARIANT_MAILBOX', '$VARIANT_CLOUD',",
- "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_WRITER', '$VARIANT_DEVELOPER'": "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_WRITER', '$VARIANT_DEVELOPER'",
- "or '$VARIANT_MESH'.": "or '$VARIANT_MESH'.",
- "If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint.": "If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint.",
- "Unable to checkout $1 $2": "Unable to checkout $1 $2",
- "The command ${PROJECT_NAME}-remote was not found": "The command ${PROJECT_NAME}-remote was not found",
- " ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes": " ${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 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 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": "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]": " ${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": "Encrypted backup to other servers",
- "${PROJECT_NAME} Configuration": "${PROJECT_NAME} Configuration",
- "\\nDo you wish to configure some remote backup locations?": "\\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.": "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.": "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant.",
- "The configuration file $CONFIGURATION_FILE was not found": "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.": "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.": "No Tor installation found. ${onion_service_name} onion site cannot be configured.",
- "${onion_service_name} onion site hostname not found": "${onion_service_name} onion site hostname not found",
- "Private certificate for $CHECK_HOSTNAME was not created": "Private certificate for $CHECK_HOSTNAME was not created",
- "Public certificate for $CHECK_HOSTNAME was not created": "Public certificate for $CHECK_HOSTNAME was not created",
- "Diffie–Hellman parameters for $CHECK_HOSTNAME were 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, so try making a self-signed cert",
- "Lets Encrypt failed for $SITE_DOMAIN_NAME": "Lets Encrypt failed for $SITE_DOMAIN_NAME",
- "Mesh Networking (cjdns)": "Mesh Networking (cjdns)",
- "cjdns IPv6 address: $CJDNS_IPV6": "cjdns IPv6 address: $CJDNS_IPV6",
- "cjdns public key: $CJDNS_PUBLIC_KEY": "cjdns public key: $CJDNS_PUBLIC_KEY",
- "cjdns private key: $CJDNS_PRIVATE_KEY": "cjdns private key: $CJDNS_PRIVATE_KEY",
- "cjdns password: $CJDNS_PASSWORD": "cjdns password: $CJDNS_PASSWORD",
- "cjdns port: $CJDNS_PORT": "cjdns port: $CJDNS_PORT",
- "Forward port $CJDNS_PORT from your internet router to the ${PROJECT_NAME}": "Forward port $CJDNS_PORT from your internet router to the ${PROJECT_NAME}",
- "Address: $ZERONET_BLOG_ADDRESS": "Address: $ZERONET_BLOG_ADDRESS",
- "Public key: $ZERONET_BLOG_PRIVATE_KEY": "Public key: $ZERONET_BLOG_PRIVATE_KEY",
- "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS": "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS",
- "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS": "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS",
- "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY": "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY",
- "Address: $ZERONET_MAIL_ADDRESS": "Address: $ZERONET_MAIL_ADDRESS",
- "Public key: $ZERONET_MAIL_PRIVATE_KEY": "Public key: $ZERONET_MAIL_PRIVATE_KEY",
- "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS": "Unable to find site directory: /opt/zeronet/data/$ZERONET_MAIL_ADDRESS",
- "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS",
- "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY": "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY",
- "ZeroNet Mail address": "ZeroNet Mail address",
- "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS": "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS",
- "${MY_USERNAME}'s Forum": "${MY_USERNAME}'s Forum",
- "Address: $ZERONET_FORUM_ADDRESS": "Address: $ZERONET_FORUM_ADDRESS",
- "Public key: $ZERONET_FORUM_PRIVATE_KEY": "Public key: $ZERONET_FORUM_PRIVATE_KEY",
- "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS": "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS",
- "Forum address: $ZERONET_FORUM_ADDRESS": "Forum address: $ZERONET_FORUM_ADDRESS",
- "Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "Forum private key: $ZERONET_FORUM_PRIVATE_KEY",
- "ZeroNet Forum address": "ZeroNet Forum address",
- "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS": "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS",
- "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY": "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY",
- "OneRNG package could not be downloaded": "OneRNG package could not be downloaded",
- "OneRNG package: $ONERNG_PACKAGE": "OneRNG package: $ONERNG_PACKAGE",
- "Hash does not match. This could indicate that the package has been tampered with.": "Hash does not match. This could indicate that the package has been tampered with.",
- "OneRNG expected package hash: $ONERNG_PACKAGE_HASH": "OneRNG expected package hash: $ONERNG_PACKAGE_HASH",
- "OneRNG actual hash: $hash": "OneRNG actual hash: $hash",
- "OneRNG Device": "OneRNG Device",
- "Please plug in the OneRNG device": "Please plug in the OneRNG device",
- "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE",
- "Added onion site for ${onion_service_name}": "Added onion site for ${onion_service_name}",
- "# Tripwire reports which have no violations don't need to be logged": "# Tripwire reports which have no violations don't need to be logged",
- "ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE": "ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE",
- "Unknown subkey usage: $GPG_KEY_USAGE": "Unknown subkey usage: $GPG_KEY_USAGE",
- "Public key: $MY_GPG_PUBLIC_KEY": "Public key: $MY_GPG_PUBLIC_KEY",
- "Private key: $MY_GPG_PRIVATE_KEY": "Private key: $MY_GPG_PRIVATE_KEY",
- "GPG public key file $MY_GPG_PUBLIC_KEY was not found": "GPG public key file $MY_GPG_PUBLIC_KEY was not found",
- "GPG private key file $MY_GPG_PRIVATE_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": "The GPG key for $MY_EMAIL_ADDRESS could not be imported",
- "A GPG key for $MY_EMAIL_ADDRESS could not be created": "A GPG key for $MY_EMAIL_ADDRESS could not be created",
- "Change your GPG password": "Change your GPG password",
- "It's very important to add a password to your GPG key so that": "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": "if anyone does get access to your email they still won't be able",
- "Publish your GPG public key": "Publish your GPG public key",
- "If you have imported legacy email which is not encrypted": "If you have imported legacy email which is not encrypted",
- "ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE": "ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE",
- "Creating the $PUBLIC_MAILING_LIST mailing list": "Creating the $PUBLIC_MAILING_LIST mailing list",
- "$PUBLIC_MAILING_LIST mailing list": "$PUBLIC_MAILING_LIST mailing list",
- "To subscribe to the $PUBLIC_MAILING_LIST mailing list send a": "To subscribe to the $PUBLIC_MAILING_LIST mailing list send a",
- "cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME": "cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME",
- "\n *** ${PROJECT_NAME} mailbox installation is complete ***\n\n\t Now on your internet router forward ports\n\t 25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}\n": "\n *** ${PROJECT_NAME} mailbox installation is complete ***\n\n\t Now on your internet router forward ports\n\t 25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}\n",
- "Email import directory $IMPORT_MAILDIR not found": "Email import directory $IMPORT_MAILDIR not found",
- "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE",
- "Your MariaDB password is: $MARIADB_PASSWORD": "Your MariaDB password is: $MARIADB_PASSWORD",
- "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE",
- "Unable to clone repo $GOPATH/src/github.com/gogits/gogs": "Unable to clone repo $GOPATH/src/github.com/gogits/gogs",
- "Gogs admin user password": "Gogs admin user password",
- "Note that there's a usability/security trade-off made here.": "Note that there's a usability/security trade-off made here.",
- "In order to allow git clone via http we don't redirect everything": "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.": "should change /etc/nginx/sites-available/$GIT_DOMAIN_NAME to redirect everything over https.",
- "Your Tox node public key is": "Your Tox node public key is",
- "tox onion domain: ${TOX_ONION_HOSTNAME}": "tox onion domain: ${TOX_ONION_HOSTNAME}",
- "Your Tox node public key is: $TOX_PUBLIC_KEY": "Your Tox node public key is: $TOX_PUBLIC_KEY",
- "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE",
- "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "XMPP onion domain: ${XMPP_ONION_HOSTNAME}",
- "Your XMPP password is: $XMPP_PASSWORD": "Your XMPP password is: $XMPP_PASSWORD",
- "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE",
- "IRC onion domain": "IRC onion domain",
- "IRC Server": "IRC Server",
- "Wiki password": "Wiki password",
- "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "Wiki onion domain: ${WIKI_ONION_HOSTNAME}",
- "Wiki username: $MY_USERNAME": "Wiki username: $MY_USERNAME",
- "Wiki password: $WIKI_ADMIN_PASSWORD": "Wiki password: $WIKI_ADMIN_PASSWORD",
- "Your blog username: $MY_USERNAME": "Your blog username: $MY_USERNAME",
- "Your blog password is: $FULLBLOG_ADMIN_PASSWORD": "Your blog password is: $FULLBLOG_ADMIN_PASSWORD",
- "Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login": "Log into your blog at https://$FULLBLOG_DOMAIN_NAME/login",
- "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}": "Blog onion domain: ${FULLBLOG_ONION_HOSTNAME}",
- "Log into your blog at https://${FULLBLOG_ONION_HOSTNAME}/login": "Log into your blog at https://${FULLBLOG_ONION_HOSTNAME}/login",
- "RSS Reader": "RSS Reader",
- "RSS reader domain: ${RSS_READER_DOMAIN_NAME}": "RSS reader domain: ${RSS_READER_DOMAIN_NAME}",
- "RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}": "RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}",
- "RSS reader admin username: admin": "RSS reader admin username: admin",
- "RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}": "RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}",
- "GNU Social": "GNU Social",
- "Microblog administrator": "Microblog administrator",
- "Microblog administrator nickname: $MY_USERNAME": "Microblog administrator nickname: $MY_USERNAME",
- "Microblog administrator password: $MICROBLOG_ADMIN_PASSWORD": "Microblog administrator password: $MICROBLOG_ADMIN_PASSWORD",
- "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",
- "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE",
- "Media Server": "Media Server",
- "Media server administrator nickname: mediadropadmin": "Media server administrator nickname: mediadropadmin",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD",
- "VoIP onion domain": "VoIP onion domain",
- "VoIP Server": "VoIP Server",
- "VoIP onion domain:$VOIP_ONION_HOSTNAME": "VoIP onion domain:$VOIP_ONION_HOSTNAME",
- "VoIP server password: $VOIP_SERVER_PASSWORD": "VoIP server password: $VOIP_SERVER_PASSWORD",
- "SIP onion domain": "SIP onion domain",
- "SIP Server": "SIP Server",
- "SIP onion_domain: $SIP_ONION_HOSTNAME": "SIP onion_domain: $SIP_ONION_HOSTNAME",
- "SIP server username: $MY_USERNAME": "SIP server username: $MY_USERNAME",
- "SIP server extension: 201": "SIP server extension: 201",
- "SIP server password: $SIP_SERVER_PASSWORD": "SIP server password: $SIP_SERVER_PASSWORD",
- "\n\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "\n\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t",
- "See /home/$MY_USERNAME/README for post-installation instructions.": "See /home/$MY_USERNAME/README for post-installation instructions."
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:"
}
\ No newline at end of file
diff --git a/locale/es/freedombone-addremove.json b/locale/es/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/es/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-adduser.json b/locale/es/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/es/freedombone-adduser.json
+++ b/locale/es/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/es/freedombone-app-blog.json b/locale/es/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/es/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-blogstatic.json b/locale/es/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/es/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-cjdns.json b/locale/es/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/es/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-dlna.json b/locale/es/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/es/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-dokuwiki.json b/locale/es/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/es/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-emacs.json b/locale/es/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/es/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-etherpad.json b/locale/es/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/es/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-gnusocial.json b/locale/es/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/es/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-gogs.json b/locale/es/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/es/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-htmly.json b/locale/es/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/es/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-hubzilla.json b/locale/es/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/es/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-ipfs.json b/locale/es/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/es/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-irc.json b/locale/es/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/es/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-jitsi.json b/locale/es/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/es/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-mediagoblin.json b/locale/es/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/es/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-mumble.json b/locale/es/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/es/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-pelican.json b/locale/es/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/es/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-pihole.json b/locale/es/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/es/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-postactiv.json b/locale/es/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/es/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-rss.json b/locale/es/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/es/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-searx.json b/locale/es/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/es/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-sip.json b/locale/es/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/es/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-syncthing.json b/locale/es/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/es/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-tahoelafs.json b/locale/es/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/es/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-tox.json b/locale/es/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/es/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-vim.json b/locale/es/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/es/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-webmail.json b/locale/es/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/es/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-wiki.json b/locale/es/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/es/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-xmpp.json b/locale/es/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/es/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-app-zeronet.json b/locale/es/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/es/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-backup-local.json b/locale/es/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/es/freedombone-backup-local.json
+++ b/locale/es/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-backup-remote.json b/locale/es/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/es/freedombone-backup-remote.json
+++ b/locale/es/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-base-chaoskey.json b/locale/es/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/es/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-base-email.json b/locale/es/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/es/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-config.json b/locale/es/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/es/freedombone-config.json
+++ b/locale/es/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/es/freedombone-controlpanel-user.json b/locale/es/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/es/freedombone-controlpanel-user.json
+++ b/locale/es/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/es/freedombone-controlpanel.json b/locale/es/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/es/freedombone-controlpanel.json
+++ b/locale/es/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/es/freedombone-image-customise.json b/locale/es/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/es/freedombone-image-customise.json
+++ b/locale/es/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/es/freedombone-image-mesh.json b/locale/es/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/es/freedombone-image-mesh.json
+++ b/locale/es/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-image.json b/locale/es/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/es/freedombone-image.json
+++ b/locale/es/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-keydrive.json b/locale/es/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/es/freedombone-keydrive.json
+++ b/locale/es/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/es/freedombone-mesh-batman.json b/locale/es/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/es/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-mesh-blog.json b/locale/es/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/es/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-mesh-install.json b/locale/es/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/es/freedombone-mesh-install.json
+++ b/locale/es/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-mesh-reset.json b/locale/es/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/es/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-mesh-visit-site.json b/locale/es/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/es/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-mirrors.json b/locale/es/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/es/freedombone-mirrors.json
+++ b/locale/es/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-pin-cert.json b/locale/es/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/es/freedombone-pin-cert.json
+++ b/locale/es/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-recoverkey.json b/locale/es/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/es/freedombone-recoverkey.json
+++ b/locale/es/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/es/freedombone-restore-local.json b/locale/es/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/es/freedombone-restore-local.json
+++ b/locale/es/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/es/freedombone-restore-remote.json b/locale/es/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/es/freedombone-restore-remote.json
+++ b/locale/es/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-rmuser.json b/locale/es/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/es/freedombone-rmuser.json
+++ b/locale/es/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-sec.json b/locale/es/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/es/freedombone-sec.json
+++ b/locale/es/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/es/freedombone-tests.json b/locale/es/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/es/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-update-date.json b/locale/es/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/es/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/es/freedombone-update-date.mo b/locale/es/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/es/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/es/freedombone-utils-backup.json b/locale/es/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/es/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/es/freedombone-utils-config.json b/locale/es/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/es/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-database.json b/locale/es/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/es/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-depends.json b/locale/es/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/es/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-final.json b/locale/es/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/es/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-git.json b/locale/es/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/es/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-help.json b/locale/es/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/es/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-interactive.json b/locale/es/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/es/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-keys.json b/locale/es/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/es/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-onion.json b/locale/es/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/es/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-rng.json b/locale/es/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/es/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-selector.json b/locale/es/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/es/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-setup.json b/locale/es/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/es/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-validation.json b/locale/es/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/es/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-web.json b/locale/es/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/es/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-utils-wifi.json b/locale/es/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/es/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/es/freedombone-wifi.json b/locale/es/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/es/freedombone-wifi.json
+++ b/locale/es/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/es/freedombone.json
+++ b/locale/es/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-addremove.json b/locale/et/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/et/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-adduser.json b/locale/et/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/et/freedombone-adduser.json
+++ b/locale/et/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/et/freedombone-app-blog.json b/locale/et/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/et/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-blogstatic.json b/locale/et/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/et/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-cjdns.json b/locale/et/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/et/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-dlna.json b/locale/et/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/et/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-dokuwiki.json b/locale/et/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/et/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-emacs.json b/locale/et/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/et/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-etherpad.json b/locale/et/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/et/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-gnusocial.json b/locale/et/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/et/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-gogs.json b/locale/et/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/et/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-htmly.json b/locale/et/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/et/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-hubzilla.json b/locale/et/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/et/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-ipfs.json b/locale/et/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/et/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-irc.json b/locale/et/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/et/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-jitsi.json b/locale/et/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/et/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-mediagoblin.json b/locale/et/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/et/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-mumble.json b/locale/et/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/et/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-pelican.json b/locale/et/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/et/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-pihole.json b/locale/et/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/et/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-postactiv.json b/locale/et/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/et/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-rss.json b/locale/et/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/et/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-searx.json b/locale/et/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/et/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-sip.json b/locale/et/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/et/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-syncthing.json b/locale/et/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/et/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-tahoelafs.json b/locale/et/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/et/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-tox.json b/locale/et/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/et/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-vim.json b/locale/et/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/et/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-webmail.json b/locale/et/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/et/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-wiki.json b/locale/et/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/et/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-xmpp.json b/locale/et/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/et/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-app-zeronet.json b/locale/et/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/et/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-backup-local.json b/locale/et/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/et/freedombone-backup-local.json
+++ b/locale/et/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-backup-remote.json b/locale/et/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/et/freedombone-backup-remote.json
+++ b/locale/et/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-base-chaoskey.json b/locale/et/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/et/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-base-email.json b/locale/et/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/et/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-config.json b/locale/et/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/et/freedombone-config.json
+++ b/locale/et/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/et/freedombone-controlpanel-user.json b/locale/et/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/et/freedombone-controlpanel-user.json
+++ b/locale/et/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/et/freedombone-controlpanel.json b/locale/et/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/et/freedombone-controlpanel.json
+++ b/locale/et/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/et/freedombone-image-customise.json b/locale/et/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/et/freedombone-image-customise.json
+++ b/locale/et/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/et/freedombone-image-mesh.json b/locale/et/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/et/freedombone-image-mesh.json
+++ b/locale/et/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-image.json b/locale/et/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/et/freedombone-image.json
+++ b/locale/et/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-keydrive.json b/locale/et/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/et/freedombone-keydrive.json
+++ b/locale/et/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/et/freedombone-mesh-batman.json b/locale/et/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/et/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-mesh-blog.json b/locale/et/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/et/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-mesh-install.json b/locale/et/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/et/freedombone-mesh-install.json
+++ b/locale/et/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-mesh-reset.json b/locale/et/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/et/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-mesh-visit-site.json b/locale/et/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/et/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-mirrors.json b/locale/et/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/et/freedombone-mirrors.json
+++ b/locale/et/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-pin-cert.json b/locale/et/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/et/freedombone-pin-cert.json
+++ b/locale/et/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-recoverkey.json b/locale/et/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/et/freedombone-recoverkey.json
+++ b/locale/et/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/et/freedombone-restore-local.json b/locale/et/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/et/freedombone-restore-local.json
+++ b/locale/et/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/et/freedombone-restore-remote.json b/locale/et/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/et/freedombone-restore-remote.json
+++ b/locale/et/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-rmuser.json b/locale/et/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/et/freedombone-rmuser.json
+++ b/locale/et/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-sec.json b/locale/et/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/et/freedombone-sec.json
+++ b/locale/et/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/et/freedombone-tests.json b/locale/et/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/et/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-update-date.json b/locale/et/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/et/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/et/freedombone-update-date.mo b/locale/et/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/et/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/et/freedombone-utils-backup.json b/locale/et/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/et/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/et/freedombone-utils-config.json b/locale/et/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/et/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-database.json b/locale/et/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/et/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-depends.json b/locale/et/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/et/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-final.json b/locale/et/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/et/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-git.json b/locale/et/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/et/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-help.json b/locale/et/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/et/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-interactive.json b/locale/et/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/et/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-keys.json b/locale/et/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/et/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-onion.json b/locale/et/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/et/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-rng.json b/locale/et/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/et/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-selector.json b/locale/et/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/et/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-setup.json b/locale/et/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/et/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-validation.json b/locale/et/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/et/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-web.json b/locale/et/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/et/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-utils-wifi.json b/locale/et/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/et/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/et/freedombone-wifi.json b/locale/et/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/et/freedombone-wifi.json
+++ b/locale/et/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/et/freedombone.json
+++ b/locale/et/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-addremove.json b/locale/eu/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/eu/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-adduser.json b/locale/eu/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/eu/freedombone-adduser.json
+++ b/locale/eu/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/eu/freedombone-app-blog.json b/locale/eu/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/eu/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-blogstatic.json b/locale/eu/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/eu/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-cjdns.json b/locale/eu/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/eu/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-dlna.json b/locale/eu/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/eu/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-dokuwiki.json b/locale/eu/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/eu/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-emacs.json b/locale/eu/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/eu/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-etherpad.json b/locale/eu/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/eu/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-gnusocial.json b/locale/eu/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/eu/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-gogs.json b/locale/eu/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/eu/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-htmly.json b/locale/eu/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/eu/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-hubzilla.json b/locale/eu/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/eu/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-ipfs.json b/locale/eu/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/eu/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-irc.json b/locale/eu/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/eu/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-jitsi.json b/locale/eu/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/eu/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-mediagoblin.json b/locale/eu/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/eu/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-mumble.json b/locale/eu/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/eu/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-pelican.json b/locale/eu/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/eu/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-pihole.json b/locale/eu/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/eu/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-postactiv.json b/locale/eu/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/eu/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-rss.json b/locale/eu/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/eu/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-searx.json b/locale/eu/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/eu/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-sip.json b/locale/eu/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/eu/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-syncthing.json b/locale/eu/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/eu/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-tahoelafs.json b/locale/eu/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/eu/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-tox.json b/locale/eu/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/eu/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-vim.json b/locale/eu/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/eu/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-webmail.json b/locale/eu/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/eu/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-wiki.json b/locale/eu/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/eu/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-xmpp.json b/locale/eu/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/eu/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-app-zeronet.json b/locale/eu/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/eu/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-backup-local.json b/locale/eu/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/eu/freedombone-backup-local.json
+++ b/locale/eu/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-backup-remote.json b/locale/eu/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/eu/freedombone-backup-remote.json
+++ b/locale/eu/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-base-chaoskey.json b/locale/eu/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/eu/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-base-email.json b/locale/eu/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/eu/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-config.json b/locale/eu/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/eu/freedombone-config.json
+++ b/locale/eu/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/eu/freedombone-controlpanel-user.json b/locale/eu/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/eu/freedombone-controlpanel-user.json
+++ b/locale/eu/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/eu/freedombone-controlpanel.json b/locale/eu/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/eu/freedombone-controlpanel.json
+++ b/locale/eu/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/eu/freedombone-image-customise.json b/locale/eu/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/eu/freedombone-image-customise.json
+++ b/locale/eu/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/eu/freedombone-image-mesh.json b/locale/eu/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/eu/freedombone-image-mesh.json
+++ b/locale/eu/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-image.json b/locale/eu/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/eu/freedombone-image.json
+++ b/locale/eu/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-keydrive.json b/locale/eu/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/eu/freedombone-keydrive.json
+++ b/locale/eu/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/eu/freedombone-mesh-batman.json b/locale/eu/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/eu/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-mesh-blog.json b/locale/eu/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/eu/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-mesh-install.json b/locale/eu/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/eu/freedombone-mesh-install.json
+++ b/locale/eu/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-mesh-reset.json b/locale/eu/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/eu/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-mesh-visit-site.json b/locale/eu/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/eu/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-mirrors.json b/locale/eu/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/eu/freedombone-mirrors.json
+++ b/locale/eu/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-pin-cert.json b/locale/eu/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/eu/freedombone-pin-cert.json
+++ b/locale/eu/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-recoverkey.json b/locale/eu/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/eu/freedombone-recoverkey.json
+++ b/locale/eu/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/eu/freedombone-restore-local.json b/locale/eu/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/eu/freedombone-restore-local.json
+++ b/locale/eu/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/eu/freedombone-restore-remote.json b/locale/eu/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/eu/freedombone-restore-remote.json
+++ b/locale/eu/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-rmuser.json b/locale/eu/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/eu/freedombone-rmuser.json
+++ b/locale/eu/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-sec.json b/locale/eu/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/eu/freedombone-sec.json
+++ b/locale/eu/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/eu/freedombone-tests.json b/locale/eu/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/eu/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-update-date.json b/locale/eu/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/eu/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/eu/freedombone-update-date.mo b/locale/eu/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/eu/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/eu/freedombone-utils-backup.json b/locale/eu/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/eu/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/eu/freedombone-utils-config.json b/locale/eu/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/eu/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-database.json b/locale/eu/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/eu/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-depends.json b/locale/eu/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/eu/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-final.json b/locale/eu/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/eu/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-git.json b/locale/eu/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/eu/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-help.json b/locale/eu/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/eu/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-interactive.json b/locale/eu/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/eu/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-keys.json b/locale/eu/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/eu/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-onion.json b/locale/eu/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/eu/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-rng.json b/locale/eu/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/eu/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-selector.json b/locale/eu/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/eu/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-setup.json b/locale/eu/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/eu/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-validation.json b/locale/eu/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/eu/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-web.json b/locale/eu/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/eu/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-utils-wifi.json b/locale/eu/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/eu/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/eu/freedombone-wifi.json b/locale/eu/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/eu/freedombone-wifi.json
+++ b/locale/eu/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/eu/freedombone.json
+++ b/locale/eu/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-addremove.json b/locale/fa/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fa/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-adduser.json b/locale/fa/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fa/freedombone-adduser.json
+++ b/locale/fa/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fa/freedombone-app-blog.json b/locale/fa/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fa/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-blogstatic.json b/locale/fa/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fa/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-cjdns.json b/locale/fa/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fa/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-dlna.json b/locale/fa/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fa/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-dokuwiki.json b/locale/fa/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fa/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-emacs.json b/locale/fa/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fa/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-etherpad.json b/locale/fa/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fa/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-gnusocial.json b/locale/fa/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fa/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-gogs.json b/locale/fa/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fa/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-htmly.json b/locale/fa/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fa/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-hubzilla.json b/locale/fa/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fa/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-ipfs.json b/locale/fa/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fa/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-irc.json b/locale/fa/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fa/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-jitsi.json b/locale/fa/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fa/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-mediagoblin.json b/locale/fa/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fa/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-mumble.json b/locale/fa/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fa/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-pelican.json b/locale/fa/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fa/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-pihole.json b/locale/fa/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fa/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-postactiv.json b/locale/fa/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fa/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-rss.json b/locale/fa/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fa/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-searx.json b/locale/fa/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fa/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-sip.json b/locale/fa/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fa/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-syncthing.json b/locale/fa/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fa/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-tahoelafs.json b/locale/fa/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fa/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-tox.json b/locale/fa/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fa/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-vim.json b/locale/fa/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fa/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-webmail.json b/locale/fa/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fa/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-wiki.json b/locale/fa/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fa/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-xmpp.json b/locale/fa/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fa/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-app-zeronet.json b/locale/fa/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fa/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-backup-local.json b/locale/fa/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fa/freedombone-backup-local.json
+++ b/locale/fa/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-backup-remote.json b/locale/fa/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fa/freedombone-backup-remote.json
+++ b/locale/fa/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-base-chaoskey.json b/locale/fa/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fa/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-base-email.json b/locale/fa/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fa/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-config.json b/locale/fa/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fa/freedombone-config.json
+++ b/locale/fa/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/fa/freedombone-controlpanel-user.json b/locale/fa/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fa/freedombone-controlpanel-user.json
+++ b/locale/fa/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fa/freedombone-controlpanel.json b/locale/fa/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fa/freedombone-controlpanel.json
+++ b/locale/fa/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/fa/freedombone-image-customise.json b/locale/fa/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fa/freedombone-image-customise.json
+++ b/locale/fa/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/fa/freedombone-image-mesh.json b/locale/fa/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fa/freedombone-image-mesh.json
+++ b/locale/fa/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-image.json b/locale/fa/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fa/freedombone-image.json
+++ b/locale/fa/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-keydrive.json b/locale/fa/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fa/freedombone-keydrive.json
+++ b/locale/fa/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fa/freedombone-mesh-batman.json b/locale/fa/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fa/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-mesh-blog.json b/locale/fa/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fa/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-mesh-install.json b/locale/fa/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fa/freedombone-mesh-install.json
+++ b/locale/fa/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-mesh-reset.json b/locale/fa/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fa/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-mesh-visit-site.json b/locale/fa/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fa/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-mirrors.json b/locale/fa/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fa/freedombone-mirrors.json
+++ b/locale/fa/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-pin-cert.json b/locale/fa/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fa/freedombone-pin-cert.json
+++ b/locale/fa/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-recoverkey.json b/locale/fa/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fa/freedombone-recoverkey.json
+++ b/locale/fa/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/fa/freedombone-restore-local.json b/locale/fa/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fa/freedombone-restore-local.json
+++ b/locale/fa/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/fa/freedombone-restore-remote.json b/locale/fa/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fa/freedombone-restore-remote.json
+++ b/locale/fa/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-rmuser.json b/locale/fa/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fa/freedombone-rmuser.json
+++ b/locale/fa/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-sec.json b/locale/fa/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fa/freedombone-sec.json
+++ b/locale/fa/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/fa/freedombone-tests.json b/locale/fa/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fa/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-update-date.json b/locale/fa/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fa/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/fa/freedombone-update-date.mo b/locale/fa/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/fa/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fa/freedombone-utils-backup.json b/locale/fa/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fa/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/fa/freedombone-utils-config.json b/locale/fa/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fa/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-database.json b/locale/fa/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fa/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-depends.json b/locale/fa/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fa/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-final.json b/locale/fa/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fa/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-git.json b/locale/fa/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fa/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-help.json b/locale/fa/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fa/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-interactive.json b/locale/fa/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fa/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-keys.json b/locale/fa/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fa/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-onion.json b/locale/fa/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fa/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-rng.json b/locale/fa/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fa/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-selector.json b/locale/fa/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fa/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-setup.json b/locale/fa/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fa/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-validation.json b/locale/fa/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fa/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-web.json b/locale/fa/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fa/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-utils-wifi.json b/locale/fa/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fa/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fa/freedombone-wifi.json b/locale/fa/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fa/freedombone-wifi.json
+++ b/locale/fa/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/fa/freedombone.json
+++ b/locale/fa/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-addremove.json b/locale/fi/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fi/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-adduser.json b/locale/fi/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fi/freedombone-adduser.json
+++ b/locale/fi/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fi/freedombone-app-blog.json b/locale/fi/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fi/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-blogstatic.json b/locale/fi/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fi/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-cjdns.json b/locale/fi/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fi/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-dlna.json b/locale/fi/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fi/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-dokuwiki.json b/locale/fi/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fi/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-emacs.json b/locale/fi/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fi/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-etherpad.json b/locale/fi/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fi/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-gnusocial.json b/locale/fi/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fi/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-gogs.json b/locale/fi/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fi/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-htmly.json b/locale/fi/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fi/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-hubzilla.json b/locale/fi/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fi/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-ipfs.json b/locale/fi/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fi/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-irc.json b/locale/fi/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fi/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-jitsi.json b/locale/fi/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fi/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-mediagoblin.json b/locale/fi/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fi/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-mumble.json b/locale/fi/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fi/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-pelican.json b/locale/fi/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fi/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-pihole.json b/locale/fi/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fi/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-postactiv.json b/locale/fi/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fi/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-rss.json b/locale/fi/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fi/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-searx.json b/locale/fi/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fi/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-sip.json b/locale/fi/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fi/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-syncthing.json b/locale/fi/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fi/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-tahoelafs.json b/locale/fi/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fi/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-tox.json b/locale/fi/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fi/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-vim.json b/locale/fi/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fi/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-webmail.json b/locale/fi/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fi/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-wiki.json b/locale/fi/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fi/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-xmpp.json b/locale/fi/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fi/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-app-zeronet.json b/locale/fi/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fi/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-backup-local.json b/locale/fi/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fi/freedombone-backup-local.json
+++ b/locale/fi/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-backup-remote.json b/locale/fi/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fi/freedombone-backup-remote.json
+++ b/locale/fi/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-base-chaoskey.json b/locale/fi/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fi/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-base-email.json b/locale/fi/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fi/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-config.json b/locale/fi/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fi/freedombone-config.json
+++ b/locale/fi/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/fi/freedombone-controlpanel-user.json b/locale/fi/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fi/freedombone-controlpanel-user.json
+++ b/locale/fi/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fi/freedombone-controlpanel.json b/locale/fi/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fi/freedombone-controlpanel.json
+++ b/locale/fi/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/fi/freedombone-image-customise.json b/locale/fi/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fi/freedombone-image-customise.json
+++ b/locale/fi/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/fi/freedombone-image-mesh.json b/locale/fi/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fi/freedombone-image-mesh.json
+++ b/locale/fi/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-image.json b/locale/fi/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fi/freedombone-image.json
+++ b/locale/fi/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-keydrive.json b/locale/fi/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fi/freedombone-keydrive.json
+++ b/locale/fi/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fi/freedombone-mesh-batman.json b/locale/fi/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fi/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-mesh-blog.json b/locale/fi/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fi/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-mesh-install.json b/locale/fi/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fi/freedombone-mesh-install.json
+++ b/locale/fi/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-mesh-reset.json b/locale/fi/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fi/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-mesh-visit-site.json b/locale/fi/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fi/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-mirrors.json b/locale/fi/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fi/freedombone-mirrors.json
+++ b/locale/fi/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-pin-cert.json b/locale/fi/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fi/freedombone-pin-cert.json
+++ b/locale/fi/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-recoverkey.json b/locale/fi/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fi/freedombone-recoverkey.json
+++ b/locale/fi/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/fi/freedombone-restore-local.json b/locale/fi/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fi/freedombone-restore-local.json
+++ b/locale/fi/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/fi/freedombone-restore-remote.json b/locale/fi/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fi/freedombone-restore-remote.json
+++ b/locale/fi/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-rmuser.json b/locale/fi/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fi/freedombone-rmuser.json
+++ b/locale/fi/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-sec.json b/locale/fi/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fi/freedombone-sec.json
+++ b/locale/fi/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/fi/freedombone-tests.json b/locale/fi/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fi/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-update-date.json b/locale/fi/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fi/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/fi/freedombone-update-date.mo b/locale/fi/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/fi/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fi/freedombone-utils-backup.json b/locale/fi/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fi/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/fi/freedombone-utils-config.json b/locale/fi/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fi/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-database.json b/locale/fi/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fi/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-depends.json b/locale/fi/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fi/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-final.json b/locale/fi/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fi/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-git.json b/locale/fi/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fi/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-help.json b/locale/fi/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fi/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-interactive.json b/locale/fi/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fi/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-keys.json b/locale/fi/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fi/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-onion.json b/locale/fi/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fi/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-rng.json b/locale/fi/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fi/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-selector.json b/locale/fi/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fi/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-setup.json b/locale/fi/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fi/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-validation.json b/locale/fi/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fi/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-web.json b/locale/fi/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fi/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-utils-wifi.json b/locale/fi/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fi/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fi/freedombone-wifi.json b/locale/fi/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fi/freedombone-wifi.json
+++ b/locale/fi/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/fi/freedombone.json
+++ b/locale/fi/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-addremove.json b/locale/fil/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fil/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-adduser.json b/locale/fil/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fil/freedombone-adduser.json
+++ b/locale/fil/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fil/freedombone-app-blog.json b/locale/fil/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fil/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-blogstatic.json b/locale/fil/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fil/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-cjdns.json b/locale/fil/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fil/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-dlna.json b/locale/fil/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fil/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-dokuwiki.json b/locale/fil/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fil/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-emacs.json b/locale/fil/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fil/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-etherpad.json b/locale/fil/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fil/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-gnusocial.json b/locale/fil/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fil/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-gogs.json b/locale/fil/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fil/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-htmly.json b/locale/fil/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fil/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-hubzilla.json b/locale/fil/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fil/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-ipfs.json b/locale/fil/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fil/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-irc.json b/locale/fil/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fil/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-jitsi.json b/locale/fil/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fil/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-mediagoblin.json b/locale/fil/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fil/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-mumble.json b/locale/fil/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fil/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-pelican.json b/locale/fil/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fil/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-pihole.json b/locale/fil/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fil/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-postactiv.json b/locale/fil/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fil/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-rss.json b/locale/fil/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fil/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-searx.json b/locale/fil/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fil/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-sip.json b/locale/fil/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fil/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-syncthing.json b/locale/fil/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fil/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-tahoelafs.json b/locale/fil/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fil/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-tox.json b/locale/fil/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fil/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-vim.json b/locale/fil/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fil/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-webmail.json b/locale/fil/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fil/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-wiki.json b/locale/fil/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fil/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-xmpp.json b/locale/fil/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fil/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-app-zeronet.json b/locale/fil/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fil/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-backup-local.json b/locale/fil/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fil/freedombone-backup-local.json
+++ b/locale/fil/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-backup-remote.json b/locale/fil/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fil/freedombone-backup-remote.json
+++ b/locale/fil/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-base-chaoskey.json b/locale/fil/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fil/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-base-email.json b/locale/fil/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fil/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-config.json b/locale/fil/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fil/freedombone-config.json
+++ b/locale/fil/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/fil/freedombone-controlpanel-user.json b/locale/fil/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fil/freedombone-controlpanel-user.json
+++ b/locale/fil/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fil/freedombone-controlpanel.json b/locale/fil/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fil/freedombone-controlpanel.json
+++ b/locale/fil/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/fil/freedombone-image-customise.json b/locale/fil/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fil/freedombone-image-customise.json
+++ b/locale/fil/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/fil/freedombone-image-mesh.json b/locale/fil/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fil/freedombone-image-mesh.json
+++ b/locale/fil/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-image.json b/locale/fil/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fil/freedombone-image.json
+++ b/locale/fil/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-keydrive.json b/locale/fil/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fil/freedombone-keydrive.json
+++ b/locale/fil/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fil/freedombone-mesh-batman.json b/locale/fil/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fil/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-mesh-blog.json b/locale/fil/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fil/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-mesh-install.json b/locale/fil/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fil/freedombone-mesh-install.json
+++ b/locale/fil/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-mesh-reset.json b/locale/fil/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fil/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-mesh-visit-site.json b/locale/fil/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fil/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-mirrors.json b/locale/fil/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fil/freedombone-mirrors.json
+++ b/locale/fil/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-pin-cert.json b/locale/fil/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fil/freedombone-pin-cert.json
+++ b/locale/fil/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-recoverkey.json b/locale/fil/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fil/freedombone-recoverkey.json
+++ b/locale/fil/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/fil/freedombone-restore-local.json b/locale/fil/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fil/freedombone-restore-local.json
+++ b/locale/fil/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/fil/freedombone-restore-remote.json b/locale/fil/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fil/freedombone-restore-remote.json
+++ b/locale/fil/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-rmuser.json b/locale/fil/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fil/freedombone-rmuser.json
+++ b/locale/fil/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-sec.json b/locale/fil/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fil/freedombone-sec.json
+++ b/locale/fil/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/fil/freedombone-tests.json b/locale/fil/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fil/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-update-date.json b/locale/fil/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fil/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/fil/freedombone-update-date.mo b/locale/fil/freedombone-update-date.mo
deleted file mode 100644
index c7a56872..00000000
Binary files a/locale/fil/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fil/freedombone-utils-backup.json b/locale/fil/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fil/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/fil/freedombone-utils-config.json b/locale/fil/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fil/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-database.json b/locale/fil/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fil/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-depends.json b/locale/fil/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fil/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-final.json b/locale/fil/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fil/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-git.json b/locale/fil/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fil/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-help.json b/locale/fil/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fil/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-interactive.json b/locale/fil/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fil/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-keys.json b/locale/fil/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fil/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-onion.json b/locale/fil/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fil/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-rng.json b/locale/fil/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fil/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-selector.json b/locale/fil/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fil/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-setup.json b/locale/fil/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fil/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-validation.json b/locale/fil/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fil/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-web.json b/locale/fil/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fil/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-utils-wifi.json b/locale/fil/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fil/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fil/freedombone-wifi.json b/locale/fil/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fil/freedombone-wifi.json
+++ b/locale/fil/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/fil/freedombone.json
+++ b/locale/fil/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-addremove.json b/locale/fr/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fr/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-adduser.json b/locale/fr/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fr/freedombone-adduser.json
+++ b/locale/fr/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fr/freedombone-app-blog.json b/locale/fr/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fr/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-blogstatic.json b/locale/fr/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-cjdns.json b/locale/fr/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fr/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-dlna.json b/locale/fr/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fr/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-dokuwiki.json b/locale/fr/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fr/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-emacs.json b/locale/fr/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fr/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-etherpad.json b/locale/fr/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fr/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-gnusocial.json b/locale/fr/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fr/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-gogs.json b/locale/fr/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fr/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-htmly.json b/locale/fr/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fr/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-hubzilla.json b/locale/fr/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fr/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-ipfs.json b/locale/fr/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fr/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-irc.json b/locale/fr/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fr/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-jitsi.json b/locale/fr/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fr/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-mediagoblin.json b/locale/fr/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fr/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-mumble.json b/locale/fr/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fr/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-pelican.json b/locale/fr/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-pihole.json b/locale/fr/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fr/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-postactiv.json b/locale/fr/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fr/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-rss.json b/locale/fr/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fr/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-searx.json b/locale/fr/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fr/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-sip.json b/locale/fr/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fr/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-syncthing.json b/locale/fr/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fr/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-tahoelafs.json b/locale/fr/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fr/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-tox.json b/locale/fr/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fr/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-vim.json b/locale/fr/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fr/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-webmail.json b/locale/fr/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fr/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-wiki.json b/locale/fr/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fr/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-xmpp.json b/locale/fr/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fr/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-app-zeronet.json b/locale/fr/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fr/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-backup-local.json b/locale/fr/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fr/freedombone-backup-local.json
+++ b/locale/fr/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-backup-remote.json b/locale/fr/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fr/freedombone-backup-remote.json
+++ b/locale/fr/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-base-chaoskey.json b/locale/fr/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fr/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-base-email.json b/locale/fr/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fr/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-config.json b/locale/fr/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fr/freedombone-config.json
+++ b/locale/fr/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/freedombone-controlpanel-user.json b/locale/fr/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fr/freedombone-controlpanel-user.json
+++ b/locale/fr/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fr/freedombone-controlpanel.json b/locale/fr/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fr/freedombone-controlpanel.json
+++ b/locale/fr/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/freedombone-image-customise.json b/locale/fr/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fr/freedombone-image-customise.json
+++ b/locale/fr/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/freedombone-image-mesh.json b/locale/fr/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fr/freedombone-image-mesh.json
+++ b/locale/fr/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-image.json b/locale/fr/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fr/freedombone-image.json
+++ b/locale/fr/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-keydrive.json b/locale/fr/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fr/freedombone-keydrive.json
+++ b/locale/fr/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fr/freedombone-mesh-batman.json b/locale/fr/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fr/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-mesh-blog.json b/locale/fr/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fr/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-mesh-install.json b/locale/fr/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fr/freedombone-mesh-install.json
+++ b/locale/fr/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-mesh-reset.json b/locale/fr/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fr/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-mesh-visit-site.json b/locale/fr/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fr/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-mirrors.json b/locale/fr/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fr/freedombone-mirrors.json
+++ b/locale/fr/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-pin-cert.json b/locale/fr/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fr/freedombone-pin-cert.json
+++ b/locale/fr/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-recoverkey.json b/locale/fr/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fr/freedombone-recoverkey.json
+++ b/locale/fr/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/freedombone-restore-local.json b/locale/fr/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fr/freedombone-restore-local.json
+++ b/locale/fr/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/freedombone-restore-remote.json b/locale/fr/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fr/freedombone-restore-remote.json
+++ b/locale/fr/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-rmuser.json b/locale/fr/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fr/freedombone-rmuser.json
+++ b/locale/fr/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-sec.json b/locale/fr/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fr/freedombone-sec.json
+++ b/locale/fr/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/fr/freedombone-tests.json b/locale/fr/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fr/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-update-date.json b/locale/fr/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fr/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "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/freedombone-update-date.mo b/locale/fr/freedombone-update-date.mo
deleted file mode 100644
index 5d071f59..00000000
Binary files a/locale/fr/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fr/freedombone-utils-backup.json b/locale/fr/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fr/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/freedombone-utils-config.json b/locale/fr/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fr/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-database.json b/locale/fr/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fr/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-depends.json b/locale/fr/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fr/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-final.json b/locale/fr/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fr/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-git.json b/locale/fr/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fr/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-help.json b/locale/fr/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fr/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-interactive.json b/locale/fr/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fr/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-keys.json b/locale/fr/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fr/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-onion.json b/locale/fr/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fr/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-rng.json b/locale/fr/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fr/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-selector.json b/locale/fr/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fr/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-setup.json b/locale/fr/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fr/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-validation.json b/locale/fr/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fr/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-web.json b/locale/fr/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fr/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-utils-wifi.json b/locale/fr/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fr/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fr/freedombone-wifi.json b/locale/fr/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fr/freedombone-wifi.json
+++ b/locale/fr/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/fr/freedombone.json
+++ b/locale/fr/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-addremove.json b/locale/fr_BE/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fr_BE/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-adduser.json b/locale/fr_BE/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fr_BE/freedombone-adduser.json
+++ b/locale/fr_BE/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fr_BE/freedombone-app-blog.json b/locale/fr_BE/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-blogstatic.json b/locale/fr_BE/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-cjdns.json b/locale/fr_BE/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-dlna.json b/locale/fr_BE/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-dokuwiki.json b/locale/fr_BE/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-emacs.json b/locale/fr_BE/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-etherpad.json b/locale/fr_BE/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-gnusocial.json b/locale/fr_BE/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-gogs.json b/locale/fr_BE/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-htmly.json b/locale/fr_BE/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-hubzilla.json b/locale/fr_BE/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-ipfs.json b/locale/fr_BE/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-irc.json b/locale/fr_BE/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-jitsi.json b/locale/fr_BE/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-mediagoblin.json b/locale/fr_BE/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-mumble.json b/locale/fr_BE/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-pelican.json b/locale/fr_BE/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-pihole.json b/locale/fr_BE/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-postactiv.json b/locale/fr_BE/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-rss.json b/locale/fr_BE/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-searx.json b/locale/fr_BE/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-sip.json b/locale/fr_BE/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-syncthing.json b/locale/fr_BE/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-tahoelafs.json b/locale/fr_BE/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-tox.json b/locale/fr_BE/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-vim.json b/locale/fr_BE/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-webmail.json b/locale/fr_BE/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-wiki.json b/locale/fr_BE/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-xmpp.json b/locale/fr_BE/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-app-zeronet.json b/locale/fr_BE/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fr_BE/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-backup-local.json b/locale/fr_BE/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fr_BE/freedombone-backup-local.json
+++ b/locale/fr_BE/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-backup-remote.json b/locale/fr_BE/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fr_BE/freedombone-backup-remote.json
+++ b/locale/fr_BE/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-base-chaoskey.json b/locale/fr_BE/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fr_BE/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-base-email.json b/locale/fr_BE/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fr_BE/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-config.json b/locale/fr_BE/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fr_BE/freedombone-config.json
+++ b/locale/fr_BE/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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-controlpanel-user.json b/locale/fr_BE/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fr_BE/freedombone-controlpanel-user.json
+++ b/locale/fr_BE/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fr_BE/freedombone-controlpanel.json b/locale/fr_BE/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fr_BE/freedombone-controlpanel.json
+++ b/locale/fr_BE/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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-image-customise.json b/locale/fr_BE/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fr_BE/freedombone-image-customise.json
+++ b/locale/fr_BE/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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-mesh.json b/locale/fr_BE/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fr_BE/freedombone-image-mesh.json
+++ b/locale/fr_BE/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-image.json b/locale/fr_BE/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fr_BE/freedombone-image.json
+++ b/locale/fr_BE/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-keydrive.json b/locale/fr_BE/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fr_BE/freedombone-keydrive.json
+++ b/locale/fr_BE/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fr_BE/freedombone-mesh-batman.json b/locale/fr_BE/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fr_BE/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mesh-blog.json b/locale/fr_BE/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fr_BE/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mesh-install.json b/locale/fr_BE/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fr_BE/freedombone-mesh-install.json
+++ b/locale/fr_BE/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mesh-reset.json b/locale/fr_BE/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fr_BE/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mesh-visit-site.json b/locale/fr_BE/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fr_BE/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-mirrors.json b/locale/fr_BE/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fr_BE/freedombone-mirrors.json
+++ b/locale/fr_BE/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-pin-cert.json b/locale/fr_BE/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fr_BE/freedombone-pin-cert.json
+++ b/locale/fr_BE/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-recoverkey.json b/locale/fr_BE/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fr_BE/freedombone-recoverkey.json
+++ b/locale/fr_BE/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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-restore-local.json b/locale/fr_BE/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fr_BE/freedombone-restore-local.json
+++ b/locale/fr_BE/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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-remote.json b/locale/fr_BE/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fr_BE/freedombone-restore-remote.json
+++ b/locale/fr_BE/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-rmuser.json b/locale/fr_BE/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fr_BE/freedombone-rmuser.json
+++ b/locale/fr_BE/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-sec.json b/locale/fr_BE/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fr_BE/freedombone-sec.json
+++ b/locale/fr_BE/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"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-tests.json b/locale/fr_BE/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fr_BE/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-update-date.json b/locale/fr_BE/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fr_BE/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "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
deleted file mode 100644
index 4ff1cd95..00000000
Binary files a/locale/fr_BE/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fr_BE/freedombone-utils-backup.json b/locale/fr_BE/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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-utils-config.json b/locale/fr_BE/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-database.json b/locale/fr_BE/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-depends.json b/locale/fr_BE/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-final.json b/locale/fr_BE/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-git.json b/locale/fr_BE/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-help.json b/locale/fr_BE/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-interactive.json b/locale/fr_BE/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-keys.json b/locale/fr_BE/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-onion.json b/locale/fr_BE/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-rng.json b/locale/fr_BE/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-selector.json b/locale/fr_BE/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-setup.json b/locale/fr_BE/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-validation.json b/locale/fr_BE/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-web.json b/locale/fr_BE/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-utils-wifi.json b/locale/fr_BE/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fr_BE/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_BE/freedombone-wifi.json b/locale/fr_BE/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fr_BE/freedombone-wifi.json
+++ b/locale/fr_BE/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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.json b/locale/fr_BE/freedombone.json
index e3bbbdca..d18c5b78 100644
--- a/locale/fr_BE/freedombone.json
+++ b/locale/fr_BE/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-addremove.json b/locale/fr_CH/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fr_CH/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-adduser.json b/locale/fr_CH/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fr_CH/freedombone-adduser.json
+++ b/locale/fr_CH/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fr_CH/freedombone-app-blog.json b/locale/fr_CH/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-blogstatic.json b/locale/fr_CH/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-cjdns.json b/locale/fr_CH/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-dlna.json b/locale/fr_CH/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-dokuwiki.json b/locale/fr_CH/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-emacs.json b/locale/fr_CH/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-etherpad.json b/locale/fr_CH/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-gnusocial.json b/locale/fr_CH/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-gogs.json b/locale/fr_CH/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-htmly.json b/locale/fr_CH/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-hubzilla.json b/locale/fr_CH/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-ipfs.json b/locale/fr_CH/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-irc.json b/locale/fr_CH/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-jitsi.json b/locale/fr_CH/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-mediagoblin.json b/locale/fr_CH/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-mumble.json b/locale/fr_CH/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-pelican.json b/locale/fr_CH/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-pihole.json b/locale/fr_CH/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-postactiv.json b/locale/fr_CH/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-rss.json b/locale/fr_CH/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-searx.json b/locale/fr_CH/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-sip.json b/locale/fr_CH/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-syncthing.json b/locale/fr_CH/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-tahoelafs.json b/locale/fr_CH/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-tox.json b/locale/fr_CH/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-vim.json b/locale/fr_CH/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-webmail.json b/locale/fr_CH/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-wiki.json b/locale/fr_CH/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-xmpp.json b/locale/fr_CH/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-app-zeronet.json b/locale/fr_CH/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fr_CH/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-backup-local.json b/locale/fr_CH/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fr_CH/freedombone-backup-local.json
+++ b/locale/fr_CH/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-backup-remote.json b/locale/fr_CH/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fr_CH/freedombone-backup-remote.json
+++ b/locale/fr_CH/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-base-chaoskey.json b/locale/fr_CH/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fr_CH/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-base-email.json b/locale/fr_CH/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fr_CH/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-config.json b/locale/fr_CH/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fr_CH/freedombone-config.json
+++ b/locale/fr_CH/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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-controlpanel-user.json b/locale/fr_CH/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fr_CH/freedombone-controlpanel-user.json
+++ b/locale/fr_CH/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fr_CH/freedombone-controlpanel.json b/locale/fr_CH/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fr_CH/freedombone-controlpanel.json
+++ b/locale/fr_CH/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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-image-customise.json b/locale/fr_CH/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fr_CH/freedombone-image-customise.json
+++ b/locale/fr_CH/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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-mesh.json b/locale/fr_CH/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fr_CH/freedombone-image-mesh.json
+++ b/locale/fr_CH/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-image.json b/locale/fr_CH/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fr_CH/freedombone-image.json
+++ b/locale/fr_CH/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-keydrive.json b/locale/fr_CH/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fr_CH/freedombone-keydrive.json
+++ b/locale/fr_CH/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fr_CH/freedombone-mesh-batman.json b/locale/fr_CH/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fr_CH/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mesh-blog.json b/locale/fr_CH/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fr_CH/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mesh-install.json b/locale/fr_CH/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fr_CH/freedombone-mesh-install.json
+++ b/locale/fr_CH/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mesh-reset.json b/locale/fr_CH/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fr_CH/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mesh-visit-site.json b/locale/fr_CH/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fr_CH/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-mirrors.json b/locale/fr_CH/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fr_CH/freedombone-mirrors.json
+++ b/locale/fr_CH/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-pin-cert.json b/locale/fr_CH/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fr_CH/freedombone-pin-cert.json
+++ b/locale/fr_CH/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-recoverkey.json b/locale/fr_CH/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fr_CH/freedombone-recoverkey.json
+++ b/locale/fr_CH/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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-restore-local.json b/locale/fr_CH/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fr_CH/freedombone-restore-local.json
+++ b/locale/fr_CH/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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-remote.json b/locale/fr_CH/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fr_CH/freedombone-restore-remote.json
+++ b/locale/fr_CH/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-rmuser.json b/locale/fr_CH/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fr_CH/freedombone-rmuser.json
+++ b/locale/fr_CH/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-sec.json b/locale/fr_CH/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fr_CH/freedombone-sec.json
+++ b/locale/fr_CH/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"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-tests.json b/locale/fr_CH/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fr_CH/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-update-date.json b/locale/fr_CH/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fr_CH/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "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
deleted file mode 100644
index b3ed9499..00000000
Binary files a/locale/fr_CH/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fr_CH/freedombone-utils-backup.json b/locale/fr_CH/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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-utils-config.json b/locale/fr_CH/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-database.json b/locale/fr_CH/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-depends.json b/locale/fr_CH/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-final.json b/locale/fr_CH/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-git.json b/locale/fr_CH/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-help.json b/locale/fr_CH/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-interactive.json b/locale/fr_CH/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-keys.json b/locale/fr_CH/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-onion.json b/locale/fr_CH/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-rng.json b/locale/fr_CH/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-selector.json b/locale/fr_CH/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-setup.json b/locale/fr_CH/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-validation.json b/locale/fr_CH/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-web.json b/locale/fr_CH/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-utils-wifi.json b/locale/fr_CH/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fr_CH/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_CH/freedombone-wifi.json b/locale/fr_CH/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fr_CH/freedombone-wifi.json
+++ b/locale/fr_CH/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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.json b/locale/fr_CH/freedombone.json
index e3bbbdca..d18c5b78 100644
--- a/locale/fr_CH/freedombone.json
+++ b/locale/fr_CH/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-addremove.json b/locale/fr_ca/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/fr_ca/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-adduser.json b/locale/fr_ca/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/fr_ca/freedombone-adduser.json
+++ b/locale/fr_ca/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/fr_ca/freedombone-app-blog.json b/locale/fr_ca/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-blogstatic.json b/locale/fr_ca/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-cjdns.json b/locale/fr_ca/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-dlna.json b/locale/fr_ca/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-dokuwiki.json b/locale/fr_ca/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-emacs.json b/locale/fr_ca/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-etherpad.json b/locale/fr_ca/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-gnusocial.json b/locale/fr_ca/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-gogs.json b/locale/fr_ca/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-htmly.json b/locale/fr_ca/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-hubzilla.json b/locale/fr_ca/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-ipfs.json b/locale/fr_ca/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-irc.json b/locale/fr_ca/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-jitsi.json b/locale/fr_ca/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-mediagoblin.json b/locale/fr_ca/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-mumble.json b/locale/fr_ca/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-pelican.json b/locale/fr_ca/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-pihole.json b/locale/fr_ca/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-postactiv.json b/locale/fr_ca/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-rss.json b/locale/fr_ca/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-searx.json b/locale/fr_ca/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-sip.json b/locale/fr_ca/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-syncthing.json b/locale/fr_ca/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-tahoelafs.json b/locale/fr_ca/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-tox.json b/locale/fr_ca/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-vim.json b/locale/fr_ca/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-webmail.json b/locale/fr_ca/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-wiki.json b/locale/fr_ca/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-xmpp.json b/locale/fr_ca/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-app-zeronet.json b/locale/fr_ca/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/fr_ca/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-backup-local.json b/locale/fr_ca/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/fr_ca/freedombone-backup-local.json
+++ b/locale/fr_ca/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-backup-remote.json b/locale/fr_ca/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/fr_ca/freedombone-backup-remote.json
+++ b/locale/fr_ca/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-base-chaoskey.json b/locale/fr_ca/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/fr_ca/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-base-email.json b/locale/fr_ca/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/fr_ca/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-config.json b/locale/fr_ca/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/fr_ca/freedombone-config.json
+++ b/locale/fr_ca/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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_ca/freedombone-controlpanel-user.json b/locale/fr_ca/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/fr_ca/freedombone-controlpanel-user.json
+++ b/locale/fr_ca/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/fr_ca/freedombone-controlpanel.json b/locale/fr_ca/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/fr_ca/freedombone-controlpanel.json
+++ b/locale/fr_ca/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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_ca/freedombone-image-customise.json b/locale/fr_ca/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/fr_ca/freedombone-image-customise.json
+++ b/locale/fr_ca/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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_ca/freedombone-image-mesh.json b/locale/fr_ca/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/fr_ca/freedombone-image-mesh.json
+++ b/locale/fr_ca/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-image.json b/locale/fr_ca/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/fr_ca/freedombone-image.json
+++ b/locale/fr_ca/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-keydrive.json b/locale/fr_ca/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/fr_ca/freedombone-keydrive.json
+++ b/locale/fr_ca/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/fr_ca/freedombone-mesh-batman.json b/locale/fr_ca/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/fr_ca/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-mesh-blog.json b/locale/fr_ca/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/fr_ca/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-mesh-install.json b/locale/fr_ca/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/fr_ca/freedombone-mesh-install.json
+++ b/locale/fr_ca/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-mesh-reset.json b/locale/fr_ca/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/fr_ca/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-mesh-visit-site.json b/locale/fr_ca/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/fr_ca/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-mirrors.json b/locale/fr_ca/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/fr_ca/freedombone-mirrors.json
+++ b/locale/fr_ca/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-pin-cert.json b/locale/fr_ca/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/fr_ca/freedombone-pin-cert.json
+++ b/locale/fr_ca/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-recoverkey.json b/locale/fr_ca/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/fr_ca/freedombone-recoverkey.json
+++ b/locale/fr_ca/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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_ca/freedombone-restore-local.json b/locale/fr_ca/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/fr_ca/freedombone-restore-local.json
+++ b/locale/fr_ca/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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_ca/freedombone-restore-remote.json b/locale/fr_ca/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/fr_ca/freedombone-restore-remote.json
+++ b/locale/fr_ca/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-rmuser.json b/locale/fr_ca/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/fr_ca/freedombone-rmuser.json
+++ b/locale/fr_ca/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-sec.json b/locale/fr_ca/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/fr_ca/freedombone-sec.json
+++ b/locale/fr_ca/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-tests.json b/locale/fr_ca/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/fr_ca/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-update-date.json b/locale/fr_ca/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/fr_ca/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "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_ca/freedombone-update-date.mo b/locale/fr_ca/freedombone-update-date.mo
deleted file mode 100644
index 5d071f59..00000000
Binary files a/locale/fr_ca/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/fr_ca/freedombone-utils-backup.json b/locale/fr_ca/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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_ca/freedombone-utils-config.json b/locale/fr_ca/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-database.json b/locale/fr_ca/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-depends.json b/locale/fr_ca/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-final.json b/locale/fr_ca/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-git.json b/locale/fr_ca/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-help.json b/locale/fr_ca/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-interactive.json b/locale/fr_ca/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-keys.json b/locale/fr_ca/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-onion.json b/locale/fr_ca/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-rng.json b/locale/fr_ca/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-selector.json b/locale/fr_ca/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-setup.json b/locale/fr_ca/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-validation.json b/locale/fr_ca/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-web.json b/locale/fr_ca/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-utils-wifi.json b/locale/fr_ca/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/fr_ca/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/fr_ca/freedombone-wifi.json b/locale/fr_ca/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/fr_ca/freedombone-wifi.json
+++ b/locale/fr_ca/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/fr_ca/freedombone.json
+++ b/locale/fr_ca/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-addremove.json b/locale/ga/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ga/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-adduser.json b/locale/ga/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ga/freedombone-adduser.json
+++ b/locale/ga/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ga/freedombone-app-blog.json b/locale/ga/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ga/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-blogstatic.json b/locale/ga/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ga/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-cjdns.json b/locale/ga/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ga/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-dlna.json b/locale/ga/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ga/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-dokuwiki.json b/locale/ga/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ga/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-emacs.json b/locale/ga/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ga/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-etherpad.json b/locale/ga/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ga/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-gnusocial.json b/locale/ga/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ga/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-gogs.json b/locale/ga/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ga/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-htmly.json b/locale/ga/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ga/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-hubzilla.json b/locale/ga/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ga/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-ipfs.json b/locale/ga/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ga/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-irc.json b/locale/ga/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ga/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-jitsi.json b/locale/ga/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ga/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-mediagoblin.json b/locale/ga/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ga/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-mumble.json b/locale/ga/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ga/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-pelican.json b/locale/ga/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ga/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-pihole.json b/locale/ga/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ga/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-postactiv.json b/locale/ga/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ga/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-rss.json b/locale/ga/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ga/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-searx.json b/locale/ga/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ga/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-sip.json b/locale/ga/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ga/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-syncthing.json b/locale/ga/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ga/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-tahoelafs.json b/locale/ga/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ga/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-tox.json b/locale/ga/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ga/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-vim.json b/locale/ga/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ga/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-webmail.json b/locale/ga/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ga/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-wiki.json b/locale/ga/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ga/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-xmpp.json b/locale/ga/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ga/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-app-zeronet.json b/locale/ga/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ga/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-backup-local.json b/locale/ga/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ga/freedombone-backup-local.json
+++ b/locale/ga/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-backup-remote.json b/locale/ga/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ga/freedombone-backup-remote.json
+++ b/locale/ga/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-base-chaoskey.json b/locale/ga/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ga/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-base-email.json b/locale/ga/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ga/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-config.json b/locale/ga/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ga/freedombone-config.json
+++ b/locale/ga/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ga/freedombone-controlpanel-user.json b/locale/ga/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ga/freedombone-controlpanel-user.json
+++ b/locale/ga/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ga/freedombone-controlpanel.json b/locale/ga/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ga/freedombone-controlpanel.json
+++ b/locale/ga/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ga/freedombone-image-customise.json b/locale/ga/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ga/freedombone-image-customise.json
+++ b/locale/ga/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ga/freedombone-image-mesh.json b/locale/ga/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ga/freedombone-image-mesh.json
+++ b/locale/ga/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-image.json b/locale/ga/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ga/freedombone-image.json
+++ b/locale/ga/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-keydrive.json b/locale/ga/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ga/freedombone-keydrive.json
+++ b/locale/ga/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ga/freedombone-mesh-batman.json b/locale/ga/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ga/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-mesh-blog.json b/locale/ga/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ga/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-mesh-install.json b/locale/ga/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ga/freedombone-mesh-install.json
+++ b/locale/ga/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-mesh-reset.json b/locale/ga/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ga/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-mesh-visit-site.json b/locale/ga/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ga/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-mirrors.json b/locale/ga/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ga/freedombone-mirrors.json
+++ b/locale/ga/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-pin-cert.json b/locale/ga/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ga/freedombone-pin-cert.json
+++ b/locale/ga/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-recoverkey.json b/locale/ga/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ga/freedombone-recoverkey.json
+++ b/locale/ga/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ga/freedombone-restore-local.json b/locale/ga/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ga/freedombone-restore-local.json
+++ b/locale/ga/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ga/freedombone-restore-remote.json b/locale/ga/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ga/freedombone-restore-remote.json
+++ b/locale/ga/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-rmuser.json b/locale/ga/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ga/freedombone-rmuser.json
+++ b/locale/ga/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-sec.json b/locale/ga/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ga/freedombone-sec.json
+++ b/locale/ga/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ga/freedombone-tests.json b/locale/ga/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ga/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-update-date.json b/locale/ga/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ga/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ga/freedombone-update-date.mo b/locale/ga/freedombone-update-date.mo
deleted file mode 100644
index 880da20a..00000000
Binary files a/locale/ga/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ga/freedombone-utils-backup.json b/locale/ga/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ga/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ga/freedombone-utils-config.json b/locale/ga/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ga/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-database.json b/locale/ga/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ga/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-depends.json b/locale/ga/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ga/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-final.json b/locale/ga/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ga/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-git.json b/locale/ga/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ga/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-help.json b/locale/ga/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ga/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-interactive.json b/locale/ga/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ga/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-keys.json b/locale/ga/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ga/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-onion.json b/locale/ga/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ga/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-rng.json b/locale/ga/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ga/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-selector.json b/locale/ga/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ga/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-setup.json b/locale/ga/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ga/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-validation.json b/locale/ga/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ga/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-web.json b/locale/ga/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ga/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-utils-wifi.json b/locale/ga/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ga/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ga/freedombone-wifi.json b/locale/ga/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ga/freedombone-wifi.json
+++ b/locale/ga/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ga/freedombone.json
+++ b/locale/ga/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-addremove.json b/locale/gl/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/gl/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-adduser.json b/locale/gl/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/gl/freedombone-adduser.json
+++ b/locale/gl/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/gl/freedombone-app-blog.json b/locale/gl/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/gl/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-blogstatic.json b/locale/gl/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/gl/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-cjdns.json b/locale/gl/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/gl/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-dlna.json b/locale/gl/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/gl/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-dokuwiki.json b/locale/gl/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/gl/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-emacs.json b/locale/gl/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/gl/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-etherpad.json b/locale/gl/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/gl/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-gnusocial.json b/locale/gl/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/gl/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-gogs.json b/locale/gl/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/gl/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-htmly.json b/locale/gl/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/gl/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-hubzilla.json b/locale/gl/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/gl/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-ipfs.json b/locale/gl/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/gl/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-irc.json b/locale/gl/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/gl/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-jitsi.json b/locale/gl/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/gl/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-mediagoblin.json b/locale/gl/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/gl/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-mumble.json b/locale/gl/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/gl/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-pelican.json b/locale/gl/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/gl/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-pihole.json b/locale/gl/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/gl/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-postactiv.json b/locale/gl/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/gl/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-rss.json b/locale/gl/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/gl/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-searx.json b/locale/gl/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/gl/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-sip.json b/locale/gl/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/gl/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-syncthing.json b/locale/gl/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/gl/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-tahoelafs.json b/locale/gl/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/gl/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-tox.json b/locale/gl/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/gl/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-vim.json b/locale/gl/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/gl/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-webmail.json b/locale/gl/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/gl/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-wiki.json b/locale/gl/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/gl/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-xmpp.json b/locale/gl/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/gl/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-app-zeronet.json b/locale/gl/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/gl/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-backup-local.json b/locale/gl/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/gl/freedombone-backup-local.json
+++ b/locale/gl/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-backup-remote.json b/locale/gl/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/gl/freedombone-backup-remote.json
+++ b/locale/gl/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-base-chaoskey.json b/locale/gl/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/gl/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-base-email.json b/locale/gl/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/gl/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-config.json b/locale/gl/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/gl/freedombone-config.json
+++ b/locale/gl/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/gl/freedombone-controlpanel-user.json b/locale/gl/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/gl/freedombone-controlpanel-user.json
+++ b/locale/gl/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/gl/freedombone-controlpanel.json b/locale/gl/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/gl/freedombone-controlpanel.json
+++ b/locale/gl/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/gl/freedombone-image-customise.json b/locale/gl/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/gl/freedombone-image-customise.json
+++ b/locale/gl/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/gl/freedombone-image-mesh.json b/locale/gl/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/gl/freedombone-image-mesh.json
+++ b/locale/gl/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-image.json b/locale/gl/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/gl/freedombone-image.json
+++ b/locale/gl/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-keydrive.json b/locale/gl/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/gl/freedombone-keydrive.json
+++ b/locale/gl/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/gl/freedombone-mesh-batman.json b/locale/gl/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/gl/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-mesh-blog.json b/locale/gl/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/gl/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-mesh-install.json b/locale/gl/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/gl/freedombone-mesh-install.json
+++ b/locale/gl/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-mesh-reset.json b/locale/gl/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/gl/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-mesh-visit-site.json b/locale/gl/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/gl/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-mirrors.json b/locale/gl/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/gl/freedombone-mirrors.json
+++ b/locale/gl/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-pin-cert.json b/locale/gl/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/gl/freedombone-pin-cert.json
+++ b/locale/gl/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-recoverkey.json b/locale/gl/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/gl/freedombone-recoverkey.json
+++ b/locale/gl/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/gl/freedombone-restore-local.json b/locale/gl/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/gl/freedombone-restore-local.json
+++ b/locale/gl/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/gl/freedombone-restore-remote.json b/locale/gl/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/gl/freedombone-restore-remote.json
+++ b/locale/gl/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-rmuser.json b/locale/gl/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/gl/freedombone-rmuser.json
+++ b/locale/gl/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-sec.json b/locale/gl/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/gl/freedombone-sec.json
+++ b/locale/gl/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/gl/freedombone-tests.json b/locale/gl/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/gl/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-update-date.json b/locale/gl/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/gl/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/gl/freedombone-update-date.mo b/locale/gl/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/gl/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/gl/freedombone-utils-backup.json b/locale/gl/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/gl/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/gl/freedombone-utils-config.json b/locale/gl/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/gl/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-database.json b/locale/gl/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/gl/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-depends.json b/locale/gl/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/gl/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-final.json b/locale/gl/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/gl/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-git.json b/locale/gl/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/gl/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-help.json b/locale/gl/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/gl/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-interactive.json b/locale/gl/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/gl/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-keys.json b/locale/gl/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/gl/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-onion.json b/locale/gl/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/gl/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-rng.json b/locale/gl/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/gl/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-selector.json b/locale/gl/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/gl/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-setup.json b/locale/gl/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/gl/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-validation.json b/locale/gl/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/gl/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-web.json b/locale/gl/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/gl/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-utils-wifi.json b/locale/gl/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/gl/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/gl/freedombone-wifi.json b/locale/gl/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/gl/freedombone-wifi.json
+++ b/locale/gl/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/gl/freedombone.json
+++ b/locale/gl/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-addremove.json b/locale/gu/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/gu/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-adduser.json b/locale/gu/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/gu/freedombone-adduser.json
+++ b/locale/gu/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/gu/freedombone-app-blog.json b/locale/gu/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/gu/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-blogstatic.json b/locale/gu/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/gu/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-cjdns.json b/locale/gu/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/gu/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-dlna.json b/locale/gu/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/gu/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-dokuwiki.json b/locale/gu/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/gu/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-emacs.json b/locale/gu/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/gu/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-etherpad.json b/locale/gu/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/gu/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-gnusocial.json b/locale/gu/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/gu/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-gogs.json b/locale/gu/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/gu/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-htmly.json b/locale/gu/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/gu/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-hubzilla.json b/locale/gu/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/gu/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-ipfs.json b/locale/gu/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/gu/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-irc.json b/locale/gu/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/gu/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-jitsi.json b/locale/gu/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/gu/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-mediagoblin.json b/locale/gu/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/gu/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-mumble.json b/locale/gu/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/gu/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-pelican.json b/locale/gu/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/gu/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-pihole.json b/locale/gu/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/gu/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-postactiv.json b/locale/gu/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/gu/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-rss.json b/locale/gu/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/gu/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-searx.json b/locale/gu/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/gu/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-sip.json b/locale/gu/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/gu/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-syncthing.json b/locale/gu/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/gu/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-tahoelafs.json b/locale/gu/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/gu/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-tox.json b/locale/gu/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/gu/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-vim.json b/locale/gu/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/gu/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-webmail.json b/locale/gu/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/gu/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-wiki.json b/locale/gu/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/gu/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-xmpp.json b/locale/gu/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/gu/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-app-zeronet.json b/locale/gu/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/gu/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-backup-local.json b/locale/gu/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/gu/freedombone-backup-local.json
+++ b/locale/gu/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-backup-remote.json b/locale/gu/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/gu/freedombone-backup-remote.json
+++ b/locale/gu/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-base-chaoskey.json b/locale/gu/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/gu/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-base-email.json b/locale/gu/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/gu/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-config.json b/locale/gu/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/gu/freedombone-config.json
+++ b/locale/gu/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/gu/freedombone-controlpanel-user.json b/locale/gu/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/gu/freedombone-controlpanel-user.json
+++ b/locale/gu/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/gu/freedombone-controlpanel.json b/locale/gu/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/gu/freedombone-controlpanel.json
+++ b/locale/gu/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/gu/freedombone-image-customise.json b/locale/gu/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/gu/freedombone-image-customise.json
+++ b/locale/gu/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/gu/freedombone-image-mesh.json b/locale/gu/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/gu/freedombone-image-mesh.json
+++ b/locale/gu/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-image.json b/locale/gu/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/gu/freedombone-image.json
+++ b/locale/gu/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-keydrive.json b/locale/gu/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/gu/freedombone-keydrive.json
+++ b/locale/gu/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/gu/freedombone-mesh-batman.json b/locale/gu/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/gu/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-mesh-blog.json b/locale/gu/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/gu/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-mesh-install.json b/locale/gu/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/gu/freedombone-mesh-install.json
+++ b/locale/gu/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-mesh-reset.json b/locale/gu/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/gu/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-mesh-visit-site.json b/locale/gu/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/gu/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-mirrors.json b/locale/gu/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/gu/freedombone-mirrors.json
+++ b/locale/gu/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-pin-cert.json b/locale/gu/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/gu/freedombone-pin-cert.json
+++ b/locale/gu/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-recoverkey.json b/locale/gu/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/gu/freedombone-recoverkey.json
+++ b/locale/gu/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/gu/freedombone-restore-local.json b/locale/gu/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/gu/freedombone-restore-local.json
+++ b/locale/gu/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/gu/freedombone-restore-remote.json b/locale/gu/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/gu/freedombone-restore-remote.json
+++ b/locale/gu/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-rmuser.json b/locale/gu/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/gu/freedombone-rmuser.json
+++ b/locale/gu/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-sec.json b/locale/gu/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/gu/freedombone-sec.json
+++ b/locale/gu/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/gu/freedombone-tests.json b/locale/gu/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/gu/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-update-date.json b/locale/gu/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/gu/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/gu/freedombone-update-date.mo b/locale/gu/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/gu/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/gu/freedombone-utils-backup.json b/locale/gu/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/gu/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/gu/freedombone-utils-config.json b/locale/gu/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/gu/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-database.json b/locale/gu/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/gu/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-depends.json b/locale/gu/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/gu/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-final.json b/locale/gu/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/gu/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-git.json b/locale/gu/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/gu/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-help.json b/locale/gu/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/gu/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-interactive.json b/locale/gu/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/gu/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-keys.json b/locale/gu/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/gu/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-onion.json b/locale/gu/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/gu/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-rng.json b/locale/gu/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/gu/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-selector.json b/locale/gu/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/gu/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-setup.json b/locale/gu/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/gu/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-validation.json b/locale/gu/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/gu/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-web.json b/locale/gu/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/gu/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-utils-wifi.json b/locale/gu/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/gu/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/gu/freedombone-wifi.json b/locale/gu/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/gu/freedombone-wifi.json
+++ b/locale/gu/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/gu/freedombone.json
+++ b/locale/gu/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-addremove.json b/locale/he/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/he/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-adduser.json b/locale/he/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/he/freedombone-adduser.json
+++ b/locale/he/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/he/freedombone-app-blog.json b/locale/he/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/he/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-blogstatic.json b/locale/he/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/he/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-cjdns.json b/locale/he/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/he/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-dlna.json b/locale/he/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/he/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-dokuwiki.json b/locale/he/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/he/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-emacs.json b/locale/he/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/he/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-etherpad.json b/locale/he/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/he/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-gnusocial.json b/locale/he/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/he/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-gogs.json b/locale/he/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/he/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-htmly.json b/locale/he/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/he/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-hubzilla.json b/locale/he/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/he/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-ipfs.json b/locale/he/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/he/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-irc.json b/locale/he/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/he/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-jitsi.json b/locale/he/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/he/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-mediagoblin.json b/locale/he/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/he/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-mumble.json b/locale/he/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/he/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-pelican.json b/locale/he/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/he/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-pihole.json b/locale/he/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/he/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-postactiv.json b/locale/he/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/he/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-rss.json b/locale/he/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/he/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-searx.json b/locale/he/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/he/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-sip.json b/locale/he/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/he/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-syncthing.json b/locale/he/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/he/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-tahoelafs.json b/locale/he/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/he/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-tox.json b/locale/he/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/he/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-vim.json b/locale/he/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/he/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-webmail.json b/locale/he/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/he/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-wiki.json b/locale/he/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/he/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-xmpp.json b/locale/he/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/he/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-app-zeronet.json b/locale/he/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/he/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-backup-local.json b/locale/he/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/he/freedombone-backup-local.json
+++ b/locale/he/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-backup-remote.json b/locale/he/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/he/freedombone-backup-remote.json
+++ b/locale/he/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-base-chaoskey.json b/locale/he/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/he/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-base-email.json b/locale/he/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/he/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-config.json b/locale/he/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/he/freedombone-config.json
+++ b/locale/he/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/he/freedombone-controlpanel-user.json b/locale/he/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/he/freedombone-controlpanel-user.json
+++ b/locale/he/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/he/freedombone-controlpanel.json b/locale/he/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/he/freedombone-controlpanel.json
+++ b/locale/he/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/he/freedombone-image-customise.json b/locale/he/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/he/freedombone-image-customise.json
+++ b/locale/he/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/he/freedombone-image-mesh.json b/locale/he/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/he/freedombone-image-mesh.json
+++ b/locale/he/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-image.json b/locale/he/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/he/freedombone-image.json
+++ b/locale/he/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-keydrive.json b/locale/he/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/he/freedombone-keydrive.json
+++ b/locale/he/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/he/freedombone-mesh-batman.json b/locale/he/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/he/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-mesh-blog.json b/locale/he/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/he/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-mesh-install.json b/locale/he/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/he/freedombone-mesh-install.json
+++ b/locale/he/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-mesh-reset.json b/locale/he/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/he/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-mesh-visit-site.json b/locale/he/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/he/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-mirrors.json b/locale/he/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/he/freedombone-mirrors.json
+++ b/locale/he/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-pin-cert.json b/locale/he/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/he/freedombone-pin-cert.json
+++ b/locale/he/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-recoverkey.json b/locale/he/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/he/freedombone-recoverkey.json
+++ b/locale/he/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/he/freedombone-restore-local.json b/locale/he/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/he/freedombone-restore-local.json
+++ b/locale/he/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/he/freedombone-restore-remote.json b/locale/he/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/he/freedombone-restore-remote.json
+++ b/locale/he/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-rmuser.json b/locale/he/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/he/freedombone-rmuser.json
+++ b/locale/he/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-sec.json b/locale/he/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/he/freedombone-sec.json
+++ b/locale/he/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/he/freedombone-tests.json b/locale/he/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/he/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-update-date.json b/locale/he/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/he/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/he/freedombone-update-date.mo b/locale/he/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/he/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/he/freedombone-utils-backup.json b/locale/he/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/he/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/he/freedombone-utils-config.json b/locale/he/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/he/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-database.json b/locale/he/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/he/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-depends.json b/locale/he/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/he/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-final.json b/locale/he/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/he/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-git.json b/locale/he/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/he/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-help.json b/locale/he/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/he/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-interactive.json b/locale/he/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/he/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-keys.json b/locale/he/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/he/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-onion.json b/locale/he/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/he/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-rng.json b/locale/he/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/he/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-selector.json b/locale/he/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/he/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-setup.json b/locale/he/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/he/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-validation.json b/locale/he/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/he/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-web.json b/locale/he/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/he/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-utils-wifi.json b/locale/he/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/he/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/he/freedombone-wifi.json b/locale/he/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/he/freedombone-wifi.json
+++ b/locale/he/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/he/freedombone.json
+++ b/locale/he/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-addremove.json b/locale/hi/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/hi/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-adduser.json b/locale/hi/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/hi/freedombone-adduser.json
+++ b/locale/hi/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/hi/freedombone-app-blog.json b/locale/hi/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/hi/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-blogstatic.json b/locale/hi/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/hi/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-cjdns.json b/locale/hi/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/hi/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-dlna.json b/locale/hi/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/hi/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-dokuwiki.json b/locale/hi/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/hi/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-emacs.json b/locale/hi/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/hi/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-etherpad.json b/locale/hi/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/hi/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-gnusocial.json b/locale/hi/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/hi/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-gogs.json b/locale/hi/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/hi/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-htmly.json b/locale/hi/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/hi/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-hubzilla.json b/locale/hi/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/hi/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-ipfs.json b/locale/hi/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/hi/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-irc.json b/locale/hi/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/hi/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-jitsi.json b/locale/hi/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/hi/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-mediagoblin.json b/locale/hi/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/hi/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-mumble.json b/locale/hi/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/hi/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-pelican.json b/locale/hi/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/hi/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-pihole.json b/locale/hi/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/hi/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-postactiv.json b/locale/hi/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/hi/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-rss.json b/locale/hi/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/hi/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-searx.json b/locale/hi/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/hi/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-sip.json b/locale/hi/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/hi/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-syncthing.json b/locale/hi/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/hi/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-tahoelafs.json b/locale/hi/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/hi/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-tox.json b/locale/hi/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/hi/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-vim.json b/locale/hi/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/hi/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-webmail.json b/locale/hi/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/hi/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-wiki.json b/locale/hi/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/hi/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-xmpp.json b/locale/hi/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/hi/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-app-zeronet.json b/locale/hi/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/hi/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-backup-local.json b/locale/hi/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/hi/freedombone-backup-local.json
+++ b/locale/hi/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-backup-remote.json b/locale/hi/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/hi/freedombone-backup-remote.json
+++ b/locale/hi/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-base-chaoskey.json b/locale/hi/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/hi/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-base-email.json b/locale/hi/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/hi/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-config.json b/locale/hi/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/hi/freedombone-config.json
+++ b/locale/hi/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/hi/freedombone-controlpanel-user.json b/locale/hi/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/hi/freedombone-controlpanel-user.json
+++ b/locale/hi/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/hi/freedombone-controlpanel.json b/locale/hi/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/hi/freedombone-controlpanel.json
+++ b/locale/hi/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/hi/freedombone-image-customise.json b/locale/hi/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/hi/freedombone-image-customise.json
+++ b/locale/hi/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/hi/freedombone-image-mesh.json b/locale/hi/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/hi/freedombone-image-mesh.json
+++ b/locale/hi/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-image.json b/locale/hi/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/hi/freedombone-image.json
+++ b/locale/hi/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-keydrive.json b/locale/hi/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/hi/freedombone-keydrive.json
+++ b/locale/hi/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/hi/freedombone-mesh-batman.json b/locale/hi/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/hi/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-mesh-blog.json b/locale/hi/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/hi/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-mesh-install.json b/locale/hi/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/hi/freedombone-mesh-install.json
+++ b/locale/hi/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-mesh-reset.json b/locale/hi/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/hi/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-mesh-visit-site.json b/locale/hi/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/hi/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-mirrors.json b/locale/hi/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/hi/freedombone-mirrors.json
+++ b/locale/hi/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-pin-cert.json b/locale/hi/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/hi/freedombone-pin-cert.json
+++ b/locale/hi/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-recoverkey.json b/locale/hi/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/hi/freedombone-recoverkey.json
+++ b/locale/hi/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/hi/freedombone-restore-local.json b/locale/hi/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/hi/freedombone-restore-local.json
+++ b/locale/hi/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/hi/freedombone-restore-remote.json b/locale/hi/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/hi/freedombone-restore-remote.json
+++ b/locale/hi/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-rmuser.json b/locale/hi/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/hi/freedombone-rmuser.json
+++ b/locale/hi/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-sec.json b/locale/hi/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/hi/freedombone-sec.json
+++ b/locale/hi/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/hi/freedombone-tests.json b/locale/hi/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/hi/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-update-date.json b/locale/hi/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/hi/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/hi/freedombone-update-date.mo b/locale/hi/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/hi/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/hi/freedombone-utils-backup.json b/locale/hi/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/hi/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/hi/freedombone-utils-config.json b/locale/hi/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/hi/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-database.json b/locale/hi/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/hi/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-depends.json b/locale/hi/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/hi/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-final.json b/locale/hi/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/hi/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-git.json b/locale/hi/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/hi/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-help.json b/locale/hi/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/hi/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-interactive.json b/locale/hi/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/hi/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-keys.json b/locale/hi/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/hi/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-onion.json b/locale/hi/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/hi/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-rng.json b/locale/hi/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/hi/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-selector.json b/locale/hi/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/hi/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-setup.json b/locale/hi/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/hi/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-validation.json b/locale/hi/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/hi/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-web.json b/locale/hi/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/hi/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-utils-wifi.json b/locale/hi/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/hi/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/hi/freedombone-wifi.json b/locale/hi/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/hi/freedombone-wifi.json
+++ b/locale/hi/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/hi/freedombone.json
+++ b/locale/hi/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-addremove.json b/locale/hr/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/hr/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-adduser.json b/locale/hr/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/hr/freedombone-adduser.json
+++ b/locale/hr/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/hr/freedombone-app-blog.json b/locale/hr/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/hr/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-blogstatic.json b/locale/hr/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/hr/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-cjdns.json b/locale/hr/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/hr/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-dlna.json b/locale/hr/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/hr/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-dokuwiki.json b/locale/hr/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/hr/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-emacs.json b/locale/hr/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/hr/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-etherpad.json b/locale/hr/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/hr/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-gnusocial.json b/locale/hr/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/hr/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-gogs.json b/locale/hr/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/hr/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-htmly.json b/locale/hr/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/hr/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-hubzilla.json b/locale/hr/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/hr/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-ipfs.json b/locale/hr/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/hr/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-irc.json b/locale/hr/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/hr/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-jitsi.json b/locale/hr/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/hr/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-mediagoblin.json b/locale/hr/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/hr/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-mumble.json b/locale/hr/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/hr/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-pelican.json b/locale/hr/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/hr/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-pihole.json b/locale/hr/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/hr/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-postactiv.json b/locale/hr/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/hr/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-rss.json b/locale/hr/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/hr/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-searx.json b/locale/hr/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/hr/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-sip.json b/locale/hr/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/hr/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-syncthing.json b/locale/hr/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/hr/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-tahoelafs.json b/locale/hr/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/hr/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-tox.json b/locale/hr/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/hr/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-vim.json b/locale/hr/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/hr/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-webmail.json b/locale/hr/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/hr/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-wiki.json b/locale/hr/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/hr/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-xmpp.json b/locale/hr/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/hr/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-app-zeronet.json b/locale/hr/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/hr/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-backup-local.json b/locale/hr/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/hr/freedombone-backup-local.json
+++ b/locale/hr/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-backup-remote.json b/locale/hr/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/hr/freedombone-backup-remote.json
+++ b/locale/hr/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-base-chaoskey.json b/locale/hr/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/hr/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-base-email.json b/locale/hr/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/hr/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-config.json b/locale/hr/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/hr/freedombone-config.json
+++ b/locale/hr/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/hr/freedombone-controlpanel-user.json b/locale/hr/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/hr/freedombone-controlpanel-user.json
+++ b/locale/hr/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/hr/freedombone-controlpanel.json b/locale/hr/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/hr/freedombone-controlpanel.json
+++ b/locale/hr/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/hr/freedombone-image-customise.json b/locale/hr/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/hr/freedombone-image-customise.json
+++ b/locale/hr/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/hr/freedombone-image-mesh.json b/locale/hr/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/hr/freedombone-image-mesh.json
+++ b/locale/hr/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-image.json b/locale/hr/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/hr/freedombone-image.json
+++ b/locale/hr/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-keydrive.json b/locale/hr/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/hr/freedombone-keydrive.json
+++ b/locale/hr/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/hr/freedombone-mesh-batman.json b/locale/hr/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/hr/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-mesh-blog.json b/locale/hr/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/hr/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-mesh-install.json b/locale/hr/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/hr/freedombone-mesh-install.json
+++ b/locale/hr/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-mesh-reset.json b/locale/hr/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/hr/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-mesh-visit-site.json b/locale/hr/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/hr/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-mirrors.json b/locale/hr/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/hr/freedombone-mirrors.json
+++ b/locale/hr/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-pin-cert.json b/locale/hr/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/hr/freedombone-pin-cert.json
+++ b/locale/hr/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-recoverkey.json b/locale/hr/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/hr/freedombone-recoverkey.json
+++ b/locale/hr/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/hr/freedombone-restore-local.json b/locale/hr/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/hr/freedombone-restore-local.json
+++ b/locale/hr/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/hr/freedombone-restore-remote.json b/locale/hr/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/hr/freedombone-restore-remote.json
+++ b/locale/hr/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-rmuser.json b/locale/hr/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/hr/freedombone-rmuser.json
+++ b/locale/hr/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-sec.json b/locale/hr/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/hr/freedombone-sec.json
+++ b/locale/hr/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/hr/freedombone-tests.json b/locale/hr/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/hr/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-update-date.json b/locale/hr/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/hr/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/hr/freedombone-update-date.mo b/locale/hr/freedombone-update-date.mo
deleted file mode 100644
index 8cc55eca..00000000
Binary files a/locale/hr/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/hr/freedombone-utils-backup.json b/locale/hr/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/hr/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/hr/freedombone-utils-config.json b/locale/hr/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/hr/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-database.json b/locale/hr/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/hr/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-depends.json b/locale/hr/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/hr/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-final.json b/locale/hr/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/hr/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-git.json b/locale/hr/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/hr/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-help.json b/locale/hr/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/hr/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-interactive.json b/locale/hr/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/hr/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-keys.json b/locale/hr/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/hr/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-onion.json b/locale/hr/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/hr/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-rng.json b/locale/hr/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/hr/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-selector.json b/locale/hr/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/hr/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-setup.json b/locale/hr/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/hr/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-validation.json b/locale/hr/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/hr/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-web.json b/locale/hr/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/hr/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-utils-wifi.json b/locale/hr/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/hr/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/hr/freedombone-wifi.json b/locale/hr/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/hr/freedombone-wifi.json
+++ b/locale/hr/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/hr/freedombone.json
+++ b/locale/hr/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-addremove.json b/locale/hu/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/hu/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-adduser.json b/locale/hu/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/hu/freedombone-adduser.json
+++ b/locale/hu/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/hu/freedombone-app-blog.json b/locale/hu/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/hu/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-blogstatic.json b/locale/hu/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/hu/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-cjdns.json b/locale/hu/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/hu/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-dlna.json b/locale/hu/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/hu/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-dokuwiki.json b/locale/hu/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/hu/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-emacs.json b/locale/hu/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/hu/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-etherpad.json b/locale/hu/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/hu/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-gnusocial.json b/locale/hu/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/hu/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-gogs.json b/locale/hu/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/hu/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-htmly.json b/locale/hu/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/hu/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-hubzilla.json b/locale/hu/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/hu/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-ipfs.json b/locale/hu/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/hu/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-irc.json b/locale/hu/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/hu/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-jitsi.json b/locale/hu/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/hu/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-mediagoblin.json b/locale/hu/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/hu/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-mumble.json b/locale/hu/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/hu/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-pelican.json b/locale/hu/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/hu/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-pihole.json b/locale/hu/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/hu/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-postactiv.json b/locale/hu/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/hu/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-rss.json b/locale/hu/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/hu/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-searx.json b/locale/hu/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/hu/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-sip.json b/locale/hu/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/hu/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-syncthing.json b/locale/hu/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/hu/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-tahoelafs.json b/locale/hu/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/hu/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-tox.json b/locale/hu/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/hu/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-vim.json b/locale/hu/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/hu/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-webmail.json b/locale/hu/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/hu/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-wiki.json b/locale/hu/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/hu/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-xmpp.json b/locale/hu/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/hu/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-app-zeronet.json b/locale/hu/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/hu/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-backup-local.json b/locale/hu/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/hu/freedombone-backup-local.json
+++ b/locale/hu/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-backup-remote.json b/locale/hu/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/hu/freedombone-backup-remote.json
+++ b/locale/hu/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-base-chaoskey.json b/locale/hu/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/hu/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-base-email.json b/locale/hu/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/hu/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-config.json b/locale/hu/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/hu/freedombone-config.json
+++ b/locale/hu/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/hu/freedombone-controlpanel-user.json b/locale/hu/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/hu/freedombone-controlpanel-user.json
+++ b/locale/hu/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/hu/freedombone-controlpanel.json b/locale/hu/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/hu/freedombone-controlpanel.json
+++ b/locale/hu/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/hu/freedombone-image-customise.json b/locale/hu/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/hu/freedombone-image-customise.json
+++ b/locale/hu/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/hu/freedombone-image-mesh.json b/locale/hu/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/hu/freedombone-image-mesh.json
+++ b/locale/hu/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-image.json b/locale/hu/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/hu/freedombone-image.json
+++ b/locale/hu/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-keydrive.json b/locale/hu/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/hu/freedombone-keydrive.json
+++ b/locale/hu/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/hu/freedombone-mesh-batman.json b/locale/hu/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/hu/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-mesh-blog.json b/locale/hu/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/hu/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-mesh-install.json b/locale/hu/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/hu/freedombone-mesh-install.json
+++ b/locale/hu/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-mesh-reset.json b/locale/hu/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/hu/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-mesh-visit-site.json b/locale/hu/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/hu/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-mirrors.json b/locale/hu/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/hu/freedombone-mirrors.json
+++ b/locale/hu/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-pin-cert.json b/locale/hu/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/hu/freedombone-pin-cert.json
+++ b/locale/hu/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-recoverkey.json b/locale/hu/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/hu/freedombone-recoverkey.json
+++ b/locale/hu/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/hu/freedombone-restore-local.json b/locale/hu/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/hu/freedombone-restore-local.json
+++ b/locale/hu/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/hu/freedombone-restore-remote.json b/locale/hu/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/hu/freedombone-restore-remote.json
+++ b/locale/hu/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-rmuser.json b/locale/hu/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/hu/freedombone-rmuser.json
+++ b/locale/hu/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-sec.json b/locale/hu/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/hu/freedombone-sec.json
+++ b/locale/hu/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/hu/freedombone-tests.json b/locale/hu/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/hu/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-update-date.json b/locale/hu/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/hu/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/hu/freedombone-update-date.mo b/locale/hu/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/hu/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/hu/freedombone-utils-backup.json b/locale/hu/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/hu/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/hu/freedombone-utils-config.json b/locale/hu/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/hu/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-database.json b/locale/hu/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/hu/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-depends.json b/locale/hu/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/hu/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-final.json b/locale/hu/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/hu/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-git.json b/locale/hu/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/hu/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-help.json b/locale/hu/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/hu/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-interactive.json b/locale/hu/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/hu/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-keys.json b/locale/hu/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/hu/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-onion.json b/locale/hu/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/hu/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-rng.json b/locale/hu/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/hu/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-selector.json b/locale/hu/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/hu/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-setup.json b/locale/hu/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/hu/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-validation.json b/locale/hu/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/hu/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-web.json b/locale/hu/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/hu/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-utils-wifi.json b/locale/hu/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/hu/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/hu/freedombone-wifi.json b/locale/hu/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/hu/freedombone-wifi.json
+++ b/locale/hu/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/hu/freedombone.json
+++ b/locale/hu/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-addremove.json b/locale/id/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/id/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-adduser.json b/locale/id/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/id/freedombone-adduser.json
+++ b/locale/id/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/id/freedombone-app-blog.json b/locale/id/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/id/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-blogstatic.json b/locale/id/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/id/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-cjdns.json b/locale/id/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/id/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-dlna.json b/locale/id/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/id/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-dokuwiki.json b/locale/id/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/id/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-emacs.json b/locale/id/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/id/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-etherpad.json b/locale/id/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/id/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-gnusocial.json b/locale/id/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/id/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-gogs.json b/locale/id/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/id/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-htmly.json b/locale/id/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/id/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-hubzilla.json b/locale/id/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/id/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-ipfs.json b/locale/id/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/id/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-irc.json b/locale/id/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/id/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-jitsi.json b/locale/id/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/id/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-mediagoblin.json b/locale/id/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/id/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-mumble.json b/locale/id/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/id/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-pelican.json b/locale/id/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/id/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-pihole.json b/locale/id/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/id/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-postactiv.json b/locale/id/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/id/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-rss.json b/locale/id/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/id/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-searx.json b/locale/id/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/id/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-sip.json b/locale/id/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/id/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-syncthing.json b/locale/id/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/id/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-tahoelafs.json b/locale/id/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/id/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-tox.json b/locale/id/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/id/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-vim.json b/locale/id/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/id/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-webmail.json b/locale/id/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/id/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-wiki.json b/locale/id/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/id/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-xmpp.json b/locale/id/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/id/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-app-zeronet.json b/locale/id/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/id/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-backup-local.json b/locale/id/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/id/freedombone-backup-local.json
+++ b/locale/id/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-backup-remote.json b/locale/id/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/id/freedombone-backup-remote.json
+++ b/locale/id/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-base-chaoskey.json b/locale/id/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/id/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-base-email.json b/locale/id/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/id/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-config.json b/locale/id/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/id/freedombone-config.json
+++ b/locale/id/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/id/freedombone-controlpanel-user.json b/locale/id/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/id/freedombone-controlpanel-user.json
+++ b/locale/id/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/id/freedombone-controlpanel.json b/locale/id/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/id/freedombone-controlpanel.json
+++ b/locale/id/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/id/freedombone-image-customise.json b/locale/id/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/id/freedombone-image-customise.json
+++ b/locale/id/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/id/freedombone-image-mesh.json b/locale/id/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/id/freedombone-image-mesh.json
+++ b/locale/id/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-image.json b/locale/id/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/id/freedombone-image.json
+++ b/locale/id/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-keydrive.json b/locale/id/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/id/freedombone-keydrive.json
+++ b/locale/id/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/id/freedombone-mesh-batman.json b/locale/id/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/id/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-mesh-blog.json b/locale/id/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/id/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-mesh-install.json b/locale/id/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/id/freedombone-mesh-install.json
+++ b/locale/id/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-mesh-reset.json b/locale/id/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/id/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-mesh-visit-site.json b/locale/id/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/id/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-mirrors.json b/locale/id/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/id/freedombone-mirrors.json
+++ b/locale/id/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-pin-cert.json b/locale/id/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/id/freedombone-pin-cert.json
+++ b/locale/id/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-recoverkey.json b/locale/id/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/id/freedombone-recoverkey.json
+++ b/locale/id/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/id/freedombone-restore-local.json b/locale/id/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/id/freedombone-restore-local.json
+++ b/locale/id/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/id/freedombone-restore-remote.json b/locale/id/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/id/freedombone-restore-remote.json
+++ b/locale/id/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-rmuser.json b/locale/id/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/id/freedombone-rmuser.json
+++ b/locale/id/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-sec.json b/locale/id/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/id/freedombone-sec.json
+++ b/locale/id/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/id/freedombone-tests.json b/locale/id/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/id/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-update-date.json b/locale/id/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/id/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/id/freedombone-update-date.mo b/locale/id/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/id/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/id/freedombone-utils-backup.json b/locale/id/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/id/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/id/freedombone-utils-config.json b/locale/id/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/id/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-database.json b/locale/id/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/id/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-depends.json b/locale/id/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/id/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-final.json b/locale/id/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/id/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-git.json b/locale/id/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/id/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-help.json b/locale/id/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/id/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-interactive.json b/locale/id/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/id/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-keys.json b/locale/id/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/id/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-onion.json b/locale/id/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/id/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-rng.json b/locale/id/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/id/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-selector.json b/locale/id/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/id/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-setup.json b/locale/id/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/id/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-validation.json b/locale/id/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/id/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-web.json b/locale/id/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/id/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-utils-wifi.json b/locale/id/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/id/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/id/freedombone-wifi.json b/locale/id/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/id/freedombone-wifi.json
+++ b/locale/id/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/id/freedombone.json
+++ b/locale/id/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-addremove.json b/locale/is/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/is/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-adduser.json b/locale/is/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/is/freedombone-adduser.json
+++ b/locale/is/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/is/freedombone-app-blog.json b/locale/is/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/is/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-blogstatic.json b/locale/is/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/is/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-cjdns.json b/locale/is/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/is/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-dlna.json b/locale/is/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/is/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-dokuwiki.json b/locale/is/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/is/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-emacs.json b/locale/is/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/is/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-etherpad.json b/locale/is/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/is/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-gnusocial.json b/locale/is/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/is/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-gogs.json b/locale/is/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/is/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-htmly.json b/locale/is/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/is/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-hubzilla.json b/locale/is/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/is/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-ipfs.json b/locale/is/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/is/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-irc.json b/locale/is/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/is/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-jitsi.json b/locale/is/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/is/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-mediagoblin.json b/locale/is/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/is/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-mumble.json b/locale/is/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/is/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-pelican.json b/locale/is/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/is/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-pihole.json b/locale/is/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/is/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-postactiv.json b/locale/is/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/is/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-rss.json b/locale/is/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/is/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-searx.json b/locale/is/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/is/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-sip.json b/locale/is/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/is/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-syncthing.json b/locale/is/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/is/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-tahoelafs.json b/locale/is/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/is/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-tox.json b/locale/is/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/is/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-vim.json b/locale/is/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/is/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-webmail.json b/locale/is/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/is/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-wiki.json b/locale/is/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/is/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-xmpp.json b/locale/is/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/is/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-app-zeronet.json b/locale/is/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/is/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-backup-local.json b/locale/is/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/is/freedombone-backup-local.json
+++ b/locale/is/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-backup-remote.json b/locale/is/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/is/freedombone-backup-remote.json
+++ b/locale/is/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-base-chaoskey.json b/locale/is/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/is/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-base-email.json b/locale/is/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/is/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-config.json b/locale/is/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/is/freedombone-config.json
+++ b/locale/is/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/is/freedombone-controlpanel-user.json b/locale/is/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/is/freedombone-controlpanel-user.json
+++ b/locale/is/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/is/freedombone-controlpanel.json b/locale/is/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/is/freedombone-controlpanel.json
+++ b/locale/is/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/is/freedombone-image-customise.json b/locale/is/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/is/freedombone-image-customise.json
+++ b/locale/is/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/is/freedombone-image-mesh.json b/locale/is/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/is/freedombone-image-mesh.json
+++ b/locale/is/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-image.json b/locale/is/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/is/freedombone-image.json
+++ b/locale/is/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-keydrive.json b/locale/is/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/is/freedombone-keydrive.json
+++ b/locale/is/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/is/freedombone-mesh-batman.json b/locale/is/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/is/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-mesh-blog.json b/locale/is/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/is/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-mesh-install.json b/locale/is/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/is/freedombone-mesh-install.json
+++ b/locale/is/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-mesh-reset.json b/locale/is/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/is/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-mesh-visit-site.json b/locale/is/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/is/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-mirrors.json b/locale/is/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/is/freedombone-mirrors.json
+++ b/locale/is/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-pin-cert.json b/locale/is/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/is/freedombone-pin-cert.json
+++ b/locale/is/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-recoverkey.json b/locale/is/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/is/freedombone-recoverkey.json
+++ b/locale/is/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/is/freedombone-restore-local.json b/locale/is/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/is/freedombone-restore-local.json
+++ b/locale/is/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/is/freedombone-restore-remote.json b/locale/is/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/is/freedombone-restore-remote.json
+++ b/locale/is/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-rmuser.json b/locale/is/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/is/freedombone-rmuser.json
+++ b/locale/is/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-sec.json b/locale/is/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/is/freedombone-sec.json
+++ b/locale/is/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/is/freedombone-tests.json b/locale/is/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/is/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-update-date.json b/locale/is/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/is/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/is/freedombone-update-date.mo b/locale/is/freedombone-update-date.mo
deleted file mode 100644
index 9cf2c85d..00000000
Binary files a/locale/is/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/is/freedombone-utils-backup.json b/locale/is/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/is/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/is/freedombone-utils-config.json b/locale/is/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/is/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-database.json b/locale/is/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/is/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-depends.json b/locale/is/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/is/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-final.json b/locale/is/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/is/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-git.json b/locale/is/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/is/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-help.json b/locale/is/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/is/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-interactive.json b/locale/is/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/is/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-keys.json b/locale/is/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/is/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-onion.json b/locale/is/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/is/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-rng.json b/locale/is/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/is/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-selector.json b/locale/is/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/is/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-setup.json b/locale/is/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/is/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-validation.json b/locale/is/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/is/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-web.json b/locale/is/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/is/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-utils-wifi.json b/locale/is/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/is/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/is/freedombone-wifi.json b/locale/is/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/is/freedombone-wifi.json
+++ b/locale/is/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/is/freedombone.json
+++ b/locale/is/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-addremove.json b/locale/it/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/it/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-adduser.json b/locale/it/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/it/freedombone-adduser.json
+++ b/locale/it/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/it/freedombone-app-blog.json b/locale/it/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/it/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-blogstatic.json b/locale/it/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/it/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-cjdns.json b/locale/it/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/it/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-dlna.json b/locale/it/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/it/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-dokuwiki.json b/locale/it/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/it/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-emacs.json b/locale/it/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/it/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-etherpad.json b/locale/it/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/it/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-gnusocial.json b/locale/it/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/it/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-gogs.json b/locale/it/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/it/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-htmly.json b/locale/it/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/it/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-hubzilla.json b/locale/it/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/it/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-ipfs.json b/locale/it/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/it/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-irc.json b/locale/it/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/it/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-jitsi.json b/locale/it/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/it/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-mediagoblin.json b/locale/it/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/it/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-mumble.json b/locale/it/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/it/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-pelican.json b/locale/it/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/it/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-pihole.json b/locale/it/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/it/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-postactiv.json b/locale/it/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/it/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-rss.json b/locale/it/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/it/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-searx.json b/locale/it/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/it/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-sip.json b/locale/it/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/it/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-syncthing.json b/locale/it/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/it/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-tahoelafs.json b/locale/it/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/it/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-tox.json b/locale/it/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/it/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-vim.json b/locale/it/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/it/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-webmail.json b/locale/it/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/it/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-wiki.json b/locale/it/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/it/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-xmpp.json b/locale/it/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/it/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-app-zeronet.json b/locale/it/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/it/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-backup-local.json b/locale/it/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/it/freedombone-backup-local.json
+++ b/locale/it/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-backup-remote.json b/locale/it/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/it/freedombone-backup-remote.json
+++ b/locale/it/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-base-chaoskey.json b/locale/it/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/it/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-base-email.json b/locale/it/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/it/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-config.json b/locale/it/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/it/freedombone-config.json
+++ b/locale/it/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/it/freedombone-controlpanel-user.json b/locale/it/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/it/freedombone-controlpanel-user.json
+++ b/locale/it/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/it/freedombone-controlpanel.json b/locale/it/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/it/freedombone-controlpanel.json
+++ b/locale/it/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/it/freedombone-image-customise.json b/locale/it/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/it/freedombone-image-customise.json
+++ b/locale/it/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/it/freedombone-image-mesh.json b/locale/it/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/it/freedombone-image-mesh.json
+++ b/locale/it/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-image.json b/locale/it/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/it/freedombone-image.json
+++ b/locale/it/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-keydrive.json b/locale/it/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/it/freedombone-keydrive.json
+++ b/locale/it/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/it/freedombone-mesh-batman.json b/locale/it/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/it/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-mesh-blog.json b/locale/it/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/it/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-mesh-install.json b/locale/it/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/it/freedombone-mesh-install.json
+++ b/locale/it/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-mesh-reset.json b/locale/it/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/it/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-mesh-visit-site.json b/locale/it/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/it/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-mirrors.json b/locale/it/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/it/freedombone-mirrors.json
+++ b/locale/it/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-pin-cert.json b/locale/it/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/it/freedombone-pin-cert.json
+++ b/locale/it/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-recoverkey.json b/locale/it/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/it/freedombone-recoverkey.json
+++ b/locale/it/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/it/freedombone-restore-local.json b/locale/it/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/it/freedombone-restore-local.json
+++ b/locale/it/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/it/freedombone-restore-remote.json b/locale/it/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/it/freedombone-restore-remote.json
+++ b/locale/it/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-rmuser.json b/locale/it/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/it/freedombone-rmuser.json
+++ b/locale/it/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-sec.json b/locale/it/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/it/freedombone-sec.json
+++ b/locale/it/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/it/freedombone-tests.json b/locale/it/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/it/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-update-date.json b/locale/it/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/it/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/it/freedombone-update-date.mo b/locale/it/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/it/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/it/freedombone-utils-backup.json b/locale/it/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/it/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/it/freedombone-utils-config.json b/locale/it/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/it/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-database.json b/locale/it/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/it/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-depends.json b/locale/it/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/it/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-final.json b/locale/it/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/it/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-git.json b/locale/it/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/it/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-help.json b/locale/it/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/it/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-interactive.json b/locale/it/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/it/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-keys.json b/locale/it/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/it/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-onion.json b/locale/it/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/it/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-rng.json b/locale/it/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/it/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-selector.json b/locale/it/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/it/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-setup.json b/locale/it/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/it/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-validation.json b/locale/it/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/it/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-web.json b/locale/it/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/it/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-utils-wifi.json b/locale/it/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/it/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/it/freedombone-wifi.json b/locale/it/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/it/freedombone-wifi.json
+++ b/locale/it/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/it/freedombone.json
+++ b/locale/it/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-addremove.json b/locale/ja/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ja/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-adduser.json b/locale/ja/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ja/freedombone-adduser.json
+++ b/locale/ja/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ja/freedombone-app-blog.json b/locale/ja/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ja/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-blogstatic.json b/locale/ja/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ja/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-cjdns.json b/locale/ja/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ja/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-dlna.json b/locale/ja/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ja/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-dokuwiki.json b/locale/ja/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ja/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-emacs.json b/locale/ja/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ja/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-etherpad.json b/locale/ja/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ja/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-gnusocial.json b/locale/ja/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ja/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-gogs.json b/locale/ja/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ja/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-htmly.json b/locale/ja/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ja/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-hubzilla.json b/locale/ja/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ja/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-ipfs.json b/locale/ja/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ja/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-irc.json b/locale/ja/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ja/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-jitsi.json b/locale/ja/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ja/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-mediagoblin.json b/locale/ja/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ja/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-mumble.json b/locale/ja/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ja/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-pelican.json b/locale/ja/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ja/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-pihole.json b/locale/ja/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ja/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-postactiv.json b/locale/ja/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ja/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-rss.json b/locale/ja/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ja/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-searx.json b/locale/ja/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ja/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-sip.json b/locale/ja/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ja/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-syncthing.json b/locale/ja/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ja/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-tahoelafs.json b/locale/ja/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ja/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-tox.json b/locale/ja/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ja/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-vim.json b/locale/ja/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ja/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-webmail.json b/locale/ja/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ja/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-wiki.json b/locale/ja/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ja/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-xmpp.json b/locale/ja/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ja/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-app-zeronet.json b/locale/ja/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ja/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-backup-local.json b/locale/ja/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ja/freedombone-backup-local.json
+++ b/locale/ja/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-backup-remote.json b/locale/ja/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ja/freedombone-backup-remote.json
+++ b/locale/ja/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-base-chaoskey.json b/locale/ja/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ja/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-base-email.json b/locale/ja/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ja/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-config.json b/locale/ja/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ja/freedombone-config.json
+++ b/locale/ja/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ja/freedombone-controlpanel-user.json b/locale/ja/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ja/freedombone-controlpanel-user.json
+++ b/locale/ja/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ja/freedombone-controlpanel.json b/locale/ja/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ja/freedombone-controlpanel.json
+++ b/locale/ja/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ja/freedombone-image-customise.json b/locale/ja/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ja/freedombone-image-customise.json
+++ b/locale/ja/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ja/freedombone-image-mesh.json b/locale/ja/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ja/freedombone-image-mesh.json
+++ b/locale/ja/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-image.json b/locale/ja/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ja/freedombone-image.json
+++ b/locale/ja/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-keydrive.json b/locale/ja/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ja/freedombone-keydrive.json
+++ b/locale/ja/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ja/freedombone-mesh-batman.json b/locale/ja/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ja/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-mesh-blog.json b/locale/ja/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ja/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-mesh-install.json b/locale/ja/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ja/freedombone-mesh-install.json
+++ b/locale/ja/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-mesh-reset.json b/locale/ja/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ja/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-mesh-visit-site.json b/locale/ja/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ja/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-mirrors.json b/locale/ja/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ja/freedombone-mirrors.json
+++ b/locale/ja/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-pin-cert.json b/locale/ja/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ja/freedombone-pin-cert.json
+++ b/locale/ja/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-recoverkey.json b/locale/ja/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ja/freedombone-recoverkey.json
+++ b/locale/ja/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ja/freedombone-restore-local.json b/locale/ja/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ja/freedombone-restore-local.json
+++ b/locale/ja/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ja/freedombone-restore-remote.json b/locale/ja/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ja/freedombone-restore-remote.json
+++ b/locale/ja/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-rmuser.json b/locale/ja/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ja/freedombone-rmuser.json
+++ b/locale/ja/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-sec.json b/locale/ja/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ja/freedombone-sec.json
+++ b/locale/ja/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ja/freedombone-tests.json b/locale/ja/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ja/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-update-date.json b/locale/ja/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ja/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ja/freedombone-update-date.mo b/locale/ja/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/ja/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ja/freedombone-utils-backup.json b/locale/ja/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ja/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ja/freedombone-utils-config.json b/locale/ja/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ja/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-database.json b/locale/ja/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ja/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-depends.json b/locale/ja/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ja/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-final.json b/locale/ja/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ja/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-git.json b/locale/ja/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ja/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-help.json b/locale/ja/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ja/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-interactive.json b/locale/ja/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ja/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-keys.json b/locale/ja/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ja/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-onion.json b/locale/ja/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ja/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-rng.json b/locale/ja/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ja/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-selector.json b/locale/ja/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ja/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-setup.json b/locale/ja/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ja/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-validation.json b/locale/ja/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ja/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-web.json b/locale/ja/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ja/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-utils-wifi.json b/locale/ja/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ja/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ja/freedombone-wifi.json b/locale/ja/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ja/freedombone-wifi.json
+++ b/locale/ja/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ja/freedombone.json
+++ b/locale/ja/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-addremove.json b/locale/ka/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ka/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-adduser.json b/locale/ka/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ka/freedombone-adduser.json
+++ b/locale/ka/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ka/freedombone-app-blog.json b/locale/ka/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ka/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-blogstatic.json b/locale/ka/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ka/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-cjdns.json b/locale/ka/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ka/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-dlna.json b/locale/ka/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ka/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-dokuwiki.json b/locale/ka/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ka/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-emacs.json b/locale/ka/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ka/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-etherpad.json b/locale/ka/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ka/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-gnusocial.json b/locale/ka/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ka/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-gogs.json b/locale/ka/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ka/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-htmly.json b/locale/ka/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ka/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-hubzilla.json b/locale/ka/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ka/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-ipfs.json b/locale/ka/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ka/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-irc.json b/locale/ka/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ka/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-jitsi.json b/locale/ka/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ka/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-mediagoblin.json b/locale/ka/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ka/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-mumble.json b/locale/ka/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ka/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-pelican.json b/locale/ka/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ka/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-pihole.json b/locale/ka/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ka/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-postactiv.json b/locale/ka/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ka/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-rss.json b/locale/ka/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ka/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-searx.json b/locale/ka/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ka/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-sip.json b/locale/ka/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ka/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-syncthing.json b/locale/ka/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ka/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-tahoelafs.json b/locale/ka/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ka/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-tox.json b/locale/ka/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ka/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-vim.json b/locale/ka/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ka/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-webmail.json b/locale/ka/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ka/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-wiki.json b/locale/ka/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ka/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-xmpp.json b/locale/ka/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ka/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-app-zeronet.json b/locale/ka/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ka/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-backup-local.json b/locale/ka/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ka/freedombone-backup-local.json
+++ b/locale/ka/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-backup-remote.json b/locale/ka/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ka/freedombone-backup-remote.json
+++ b/locale/ka/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-base-chaoskey.json b/locale/ka/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ka/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-base-email.json b/locale/ka/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ka/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-config.json b/locale/ka/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ka/freedombone-config.json
+++ b/locale/ka/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ka/freedombone-controlpanel-user.json b/locale/ka/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ka/freedombone-controlpanel-user.json
+++ b/locale/ka/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ka/freedombone-controlpanel.json b/locale/ka/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ka/freedombone-controlpanel.json
+++ b/locale/ka/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ka/freedombone-image-customise.json b/locale/ka/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ka/freedombone-image-customise.json
+++ b/locale/ka/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ka/freedombone-image-mesh.json b/locale/ka/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ka/freedombone-image-mesh.json
+++ b/locale/ka/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-image.json b/locale/ka/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ka/freedombone-image.json
+++ b/locale/ka/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-keydrive.json b/locale/ka/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ka/freedombone-keydrive.json
+++ b/locale/ka/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ka/freedombone-mesh-batman.json b/locale/ka/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ka/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-mesh-blog.json b/locale/ka/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ka/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-mesh-install.json b/locale/ka/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ka/freedombone-mesh-install.json
+++ b/locale/ka/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-mesh-reset.json b/locale/ka/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ka/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-mesh-visit-site.json b/locale/ka/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ka/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-mirrors.json b/locale/ka/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ka/freedombone-mirrors.json
+++ b/locale/ka/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-pin-cert.json b/locale/ka/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ka/freedombone-pin-cert.json
+++ b/locale/ka/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-recoverkey.json b/locale/ka/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ka/freedombone-recoverkey.json
+++ b/locale/ka/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ka/freedombone-restore-local.json b/locale/ka/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ka/freedombone-restore-local.json
+++ b/locale/ka/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ka/freedombone-restore-remote.json b/locale/ka/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ka/freedombone-restore-remote.json
+++ b/locale/ka/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-rmuser.json b/locale/ka/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ka/freedombone-rmuser.json
+++ b/locale/ka/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-sec.json b/locale/ka/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ka/freedombone-sec.json
+++ b/locale/ka/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ka/freedombone-tests.json b/locale/ka/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ka/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-update-date.json b/locale/ka/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ka/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ka/freedombone-update-date.mo b/locale/ka/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/ka/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ka/freedombone-utils-backup.json b/locale/ka/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ka/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ka/freedombone-utils-config.json b/locale/ka/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ka/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-database.json b/locale/ka/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ka/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-depends.json b/locale/ka/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ka/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-final.json b/locale/ka/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ka/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-git.json b/locale/ka/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ka/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-help.json b/locale/ka/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ka/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-interactive.json b/locale/ka/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ka/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-keys.json b/locale/ka/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ka/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-onion.json b/locale/ka/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ka/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-rng.json b/locale/ka/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ka/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-selector.json b/locale/ka/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ka/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-setup.json b/locale/ka/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ka/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-validation.json b/locale/ka/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ka/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-web.json b/locale/ka/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ka/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-utils-wifi.json b/locale/ka/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ka/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ka/freedombone-wifi.json b/locale/ka/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ka/freedombone-wifi.json
+++ b/locale/ka/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ka/freedombone.json
+++ b/locale/ka/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-addremove.json b/locale/km/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/km/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-adduser.json b/locale/km/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/km/freedombone-adduser.json
+++ b/locale/km/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/km/freedombone-app-blog.json b/locale/km/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/km/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-blogstatic.json b/locale/km/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/km/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-cjdns.json b/locale/km/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/km/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-dlna.json b/locale/km/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/km/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-dokuwiki.json b/locale/km/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/km/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-emacs.json b/locale/km/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/km/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-etherpad.json b/locale/km/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/km/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-gnusocial.json b/locale/km/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/km/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-gogs.json b/locale/km/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/km/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-htmly.json b/locale/km/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/km/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-hubzilla.json b/locale/km/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/km/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-ipfs.json b/locale/km/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/km/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-irc.json b/locale/km/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/km/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-jitsi.json b/locale/km/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/km/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-mediagoblin.json b/locale/km/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/km/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-mumble.json b/locale/km/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/km/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-pelican.json b/locale/km/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/km/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-pihole.json b/locale/km/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/km/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-postactiv.json b/locale/km/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/km/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-rss.json b/locale/km/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/km/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-searx.json b/locale/km/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/km/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-sip.json b/locale/km/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/km/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-syncthing.json b/locale/km/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/km/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-tahoelafs.json b/locale/km/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/km/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-tox.json b/locale/km/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/km/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-vim.json b/locale/km/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/km/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-webmail.json b/locale/km/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/km/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-wiki.json b/locale/km/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/km/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-xmpp.json b/locale/km/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/km/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-app-zeronet.json b/locale/km/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/km/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-backup-local.json b/locale/km/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/km/freedombone-backup-local.json
+++ b/locale/km/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-backup-remote.json b/locale/km/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/km/freedombone-backup-remote.json
+++ b/locale/km/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-base-chaoskey.json b/locale/km/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/km/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-base-email.json b/locale/km/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/km/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-config.json b/locale/km/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/km/freedombone-config.json
+++ b/locale/km/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/km/freedombone-controlpanel-user.json b/locale/km/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/km/freedombone-controlpanel-user.json
+++ b/locale/km/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/km/freedombone-controlpanel.json b/locale/km/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/km/freedombone-controlpanel.json
+++ b/locale/km/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/km/freedombone-image-customise.json b/locale/km/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/km/freedombone-image-customise.json
+++ b/locale/km/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/km/freedombone-image-mesh.json b/locale/km/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/km/freedombone-image-mesh.json
+++ b/locale/km/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-image.json b/locale/km/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/km/freedombone-image.json
+++ b/locale/km/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-keydrive.json b/locale/km/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/km/freedombone-keydrive.json
+++ b/locale/km/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/km/freedombone-mesh-batman.json b/locale/km/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/km/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-mesh-blog.json b/locale/km/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/km/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-mesh-install.json b/locale/km/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/km/freedombone-mesh-install.json
+++ b/locale/km/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-mesh-reset.json b/locale/km/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/km/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-mesh-visit-site.json b/locale/km/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/km/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-mirrors.json b/locale/km/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/km/freedombone-mirrors.json
+++ b/locale/km/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-pin-cert.json b/locale/km/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/km/freedombone-pin-cert.json
+++ b/locale/km/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-recoverkey.json b/locale/km/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/km/freedombone-recoverkey.json
+++ b/locale/km/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/km/freedombone-restore-local.json b/locale/km/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/km/freedombone-restore-local.json
+++ b/locale/km/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/km/freedombone-restore-remote.json b/locale/km/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/km/freedombone-restore-remote.json
+++ b/locale/km/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-rmuser.json b/locale/km/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/km/freedombone-rmuser.json
+++ b/locale/km/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-sec.json b/locale/km/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/km/freedombone-sec.json
+++ b/locale/km/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/km/freedombone-tests.json b/locale/km/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/km/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-update-date.json b/locale/km/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/km/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/km/freedombone-update-date.mo b/locale/km/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/km/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/km/freedombone-utils-backup.json b/locale/km/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/km/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/km/freedombone-utils-config.json b/locale/km/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/km/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-database.json b/locale/km/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/km/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-depends.json b/locale/km/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/km/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-final.json b/locale/km/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/km/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-git.json b/locale/km/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/km/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-help.json b/locale/km/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/km/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-interactive.json b/locale/km/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/km/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-keys.json b/locale/km/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/km/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-onion.json b/locale/km/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/km/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-rng.json b/locale/km/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/km/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-selector.json b/locale/km/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/km/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-setup.json b/locale/km/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/km/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-validation.json b/locale/km/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/km/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-web.json b/locale/km/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/km/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-utils-wifi.json b/locale/km/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/km/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/km/freedombone-wifi.json b/locale/km/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/km/freedombone-wifi.json
+++ b/locale/km/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/km/freedombone.json
+++ b/locale/km/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-addremove.json b/locale/kn/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/kn/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-adduser.json b/locale/kn/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/kn/freedombone-adduser.json
+++ b/locale/kn/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/kn/freedombone-app-blog.json b/locale/kn/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/kn/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-blogstatic.json b/locale/kn/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/kn/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-cjdns.json b/locale/kn/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/kn/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-dlna.json b/locale/kn/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/kn/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-dokuwiki.json b/locale/kn/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/kn/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-emacs.json b/locale/kn/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/kn/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-etherpad.json b/locale/kn/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/kn/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-gnusocial.json b/locale/kn/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/kn/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-gogs.json b/locale/kn/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/kn/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-htmly.json b/locale/kn/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/kn/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-hubzilla.json b/locale/kn/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/kn/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-ipfs.json b/locale/kn/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/kn/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-irc.json b/locale/kn/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/kn/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-jitsi.json b/locale/kn/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/kn/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-mediagoblin.json b/locale/kn/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/kn/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-mumble.json b/locale/kn/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/kn/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-pelican.json b/locale/kn/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/kn/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-pihole.json b/locale/kn/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/kn/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-postactiv.json b/locale/kn/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/kn/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-rss.json b/locale/kn/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/kn/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-searx.json b/locale/kn/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/kn/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-sip.json b/locale/kn/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/kn/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-syncthing.json b/locale/kn/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/kn/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-tahoelafs.json b/locale/kn/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/kn/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-tox.json b/locale/kn/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/kn/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-vim.json b/locale/kn/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/kn/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-webmail.json b/locale/kn/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/kn/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-wiki.json b/locale/kn/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/kn/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-xmpp.json b/locale/kn/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/kn/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-app-zeronet.json b/locale/kn/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/kn/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-backup-local.json b/locale/kn/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/kn/freedombone-backup-local.json
+++ b/locale/kn/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-backup-remote.json b/locale/kn/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/kn/freedombone-backup-remote.json
+++ b/locale/kn/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-base-chaoskey.json b/locale/kn/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/kn/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-base-email.json b/locale/kn/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/kn/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-config.json b/locale/kn/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/kn/freedombone-config.json
+++ b/locale/kn/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/kn/freedombone-controlpanel-user.json b/locale/kn/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/kn/freedombone-controlpanel-user.json
+++ b/locale/kn/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/kn/freedombone-controlpanel.json b/locale/kn/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/kn/freedombone-controlpanel.json
+++ b/locale/kn/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/kn/freedombone-image-customise.json b/locale/kn/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/kn/freedombone-image-customise.json
+++ b/locale/kn/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/kn/freedombone-image-mesh.json b/locale/kn/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/kn/freedombone-image-mesh.json
+++ b/locale/kn/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-image.json b/locale/kn/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/kn/freedombone-image.json
+++ b/locale/kn/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-keydrive.json b/locale/kn/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/kn/freedombone-keydrive.json
+++ b/locale/kn/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/kn/freedombone-mesh-batman.json b/locale/kn/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/kn/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-mesh-blog.json b/locale/kn/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/kn/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-mesh-install.json b/locale/kn/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/kn/freedombone-mesh-install.json
+++ b/locale/kn/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-mesh-reset.json b/locale/kn/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/kn/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-mesh-visit-site.json b/locale/kn/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/kn/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-mirrors.json b/locale/kn/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/kn/freedombone-mirrors.json
+++ b/locale/kn/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-pin-cert.json b/locale/kn/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/kn/freedombone-pin-cert.json
+++ b/locale/kn/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-recoverkey.json b/locale/kn/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/kn/freedombone-recoverkey.json
+++ b/locale/kn/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/kn/freedombone-restore-local.json b/locale/kn/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/kn/freedombone-restore-local.json
+++ b/locale/kn/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/kn/freedombone-restore-remote.json b/locale/kn/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/kn/freedombone-restore-remote.json
+++ b/locale/kn/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-rmuser.json b/locale/kn/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/kn/freedombone-rmuser.json
+++ b/locale/kn/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-sec.json b/locale/kn/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/kn/freedombone-sec.json
+++ b/locale/kn/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/kn/freedombone-tests.json b/locale/kn/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/kn/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-update-date.json b/locale/kn/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/kn/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/kn/freedombone-update-date.mo b/locale/kn/freedombone-update-date.mo
deleted file mode 100644
index ccf4a36b..00000000
Binary files a/locale/kn/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/kn/freedombone-utils-backup.json b/locale/kn/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/kn/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/kn/freedombone-utils-config.json b/locale/kn/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/kn/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-database.json b/locale/kn/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/kn/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-depends.json b/locale/kn/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/kn/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-final.json b/locale/kn/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/kn/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-git.json b/locale/kn/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/kn/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-help.json b/locale/kn/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/kn/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-interactive.json b/locale/kn/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/kn/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-keys.json b/locale/kn/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/kn/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-onion.json b/locale/kn/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/kn/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-rng.json b/locale/kn/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/kn/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-selector.json b/locale/kn/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/kn/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-setup.json b/locale/kn/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/kn/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-validation.json b/locale/kn/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/kn/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-web.json b/locale/kn/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/kn/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-utils-wifi.json b/locale/kn/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/kn/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/kn/freedombone-wifi.json b/locale/kn/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/kn/freedombone-wifi.json
+++ b/locale/kn/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/kn/freedombone.json
+++ b/locale/kn/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-addremove.json b/locale/ko/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ko/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-adduser.json b/locale/ko/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ko/freedombone-adduser.json
+++ b/locale/ko/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ko/freedombone-app-blog.json b/locale/ko/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ko/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-blogstatic.json b/locale/ko/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ko/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-cjdns.json b/locale/ko/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ko/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-dlna.json b/locale/ko/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ko/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-dokuwiki.json b/locale/ko/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ko/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-emacs.json b/locale/ko/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ko/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-etherpad.json b/locale/ko/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ko/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-gnusocial.json b/locale/ko/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ko/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-gogs.json b/locale/ko/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ko/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-htmly.json b/locale/ko/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ko/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-hubzilla.json b/locale/ko/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ko/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-ipfs.json b/locale/ko/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ko/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-irc.json b/locale/ko/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ko/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-jitsi.json b/locale/ko/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ko/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-mediagoblin.json b/locale/ko/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ko/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-mumble.json b/locale/ko/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ko/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-pelican.json b/locale/ko/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ko/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-pihole.json b/locale/ko/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ko/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-postactiv.json b/locale/ko/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ko/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-rss.json b/locale/ko/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ko/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-searx.json b/locale/ko/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ko/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-sip.json b/locale/ko/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ko/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-syncthing.json b/locale/ko/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ko/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-tahoelafs.json b/locale/ko/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ko/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-tox.json b/locale/ko/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ko/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-vim.json b/locale/ko/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ko/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-webmail.json b/locale/ko/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ko/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-wiki.json b/locale/ko/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ko/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-xmpp.json b/locale/ko/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ko/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-app-zeronet.json b/locale/ko/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ko/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-backup-local.json b/locale/ko/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ko/freedombone-backup-local.json
+++ b/locale/ko/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-backup-remote.json b/locale/ko/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ko/freedombone-backup-remote.json
+++ b/locale/ko/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-base-chaoskey.json b/locale/ko/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ko/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-base-email.json b/locale/ko/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ko/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-config.json b/locale/ko/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ko/freedombone-config.json
+++ b/locale/ko/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ko/freedombone-controlpanel-user.json b/locale/ko/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ko/freedombone-controlpanel-user.json
+++ b/locale/ko/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ko/freedombone-controlpanel.json b/locale/ko/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ko/freedombone-controlpanel.json
+++ b/locale/ko/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ko/freedombone-image-customise.json b/locale/ko/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ko/freedombone-image-customise.json
+++ b/locale/ko/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ko/freedombone-image-mesh.json b/locale/ko/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ko/freedombone-image-mesh.json
+++ b/locale/ko/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-image.json b/locale/ko/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ko/freedombone-image.json
+++ b/locale/ko/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-keydrive.json b/locale/ko/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ko/freedombone-keydrive.json
+++ b/locale/ko/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ko/freedombone-mesh-batman.json b/locale/ko/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ko/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-mesh-blog.json b/locale/ko/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ko/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-mesh-install.json b/locale/ko/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ko/freedombone-mesh-install.json
+++ b/locale/ko/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-mesh-reset.json b/locale/ko/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ko/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-mesh-visit-site.json b/locale/ko/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ko/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-mirrors.json b/locale/ko/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ko/freedombone-mirrors.json
+++ b/locale/ko/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-pin-cert.json b/locale/ko/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ko/freedombone-pin-cert.json
+++ b/locale/ko/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-recoverkey.json b/locale/ko/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ko/freedombone-recoverkey.json
+++ b/locale/ko/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ko/freedombone-restore-local.json b/locale/ko/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ko/freedombone-restore-local.json
+++ b/locale/ko/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ko/freedombone-restore-remote.json b/locale/ko/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ko/freedombone-restore-remote.json
+++ b/locale/ko/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-rmuser.json b/locale/ko/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ko/freedombone-rmuser.json
+++ b/locale/ko/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-sec.json b/locale/ko/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ko/freedombone-sec.json
+++ b/locale/ko/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ko/freedombone-tests.json b/locale/ko/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ko/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-update-date.json b/locale/ko/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ko/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ko/freedombone-update-date.mo b/locale/ko/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/ko/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ko/freedombone-utils-backup.json b/locale/ko/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ko/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ko/freedombone-utils-config.json b/locale/ko/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ko/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-database.json b/locale/ko/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ko/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-depends.json b/locale/ko/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ko/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-final.json b/locale/ko/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ko/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-git.json b/locale/ko/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ko/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-help.json b/locale/ko/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ko/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-interactive.json b/locale/ko/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ko/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-keys.json b/locale/ko/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ko/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-onion.json b/locale/ko/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ko/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-rng.json b/locale/ko/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ko/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-selector.json b/locale/ko/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ko/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-setup.json b/locale/ko/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ko/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-validation.json b/locale/ko/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ko/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-web.json b/locale/ko/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ko/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-utils-wifi.json b/locale/ko/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ko/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ko/freedombone-wifi.json b/locale/ko/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ko/freedombone-wifi.json
+++ b/locale/ko/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ko/freedombone.json
+++ b/locale/ko/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-addremove.json b/locale/lo/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/lo/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-adduser.json b/locale/lo/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/lo/freedombone-adduser.json
+++ b/locale/lo/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/lo/freedombone-app-blog.json b/locale/lo/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/lo/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-blogstatic.json b/locale/lo/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/lo/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-cjdns.json b/locale/lo/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/lo/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-dlna.json b/locale/lo/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/lo/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-dokuwiki.json b/locale/lo/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/lo/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-emacs.json b/locale/lo/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/lo/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-etherpad.json b/locale/lo/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/lo/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-gnusocial.json b/locale/lo/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/lo/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-gogs.json b/locale/lo/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/lo/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-htmly.json b/locale/lo/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/lo/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-hubzilla.json b/locale/lo/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/lo/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-ipfs.json b/locale/lo/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/lo/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-irc.json b/locale/lo/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/lo/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-jitsi.json b/locale/lo/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/lo/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-mediagoblin.json b/locale/lo/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/lo/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-mumble.json b/locale/lo/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/lo/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-pelican.json b/locale/lo/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/lo/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-pihole.json b/locale/lo/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/lo/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-postactiv.json b/locale/lo/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/lo/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-rss.json b/locale/lo/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/lo/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-searx.json b/locale/lo/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/lo/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-sip.json b/locale/lo/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/lo/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-syncthing.json b/locale/lo/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/lo/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-tahoelafs.json b/locale/lo/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/lo/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-tox.json b/locale/lo/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/lo/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-vim.json b/locale/lo/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/lo/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-webmail.json b/locale/lo/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/lo/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-wiki.json b/locale/lo/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/lo/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-xmpp.json b/locale/lo/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/lo/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-app-zeronet.json b/locale/lo/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/lo/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-backup-local.json b/locale/lo/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/lo/freedombone-backup-local.json
+++ b/locale/lo/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-backup-remote.json b/locale/lo/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/lo/freedombone-backup-remote.json
+++ b/locale/lo/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-base-chaoskey.json b/locale/lo/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/lo/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-base-email.json b/locale/lo/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/lo/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-config.json b/locale/lo/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/lo/freedombone-config.json
+++ b/locale/lo/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/lo/freedombone-controlpanel-user.json b/locale/lo/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/lo/freedombone-controlpanel-user.json
+++ b/locale/lo/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/lo/freedombone-controlpanel.json b/locale/lo/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/lo/freedombone-controlpanel.json
+++ b/locale/lo/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/lo/freedombone-image-customise.json b/locale/lo/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/lo/freedombone-image-customise.json
+++ b/locale/lo/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/lo/freedombone-image-mesh.json b/locale/lo/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/lo/freedombone-image-mesh.json
+++ b/locale/lo/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-image.json b/locale/lo/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/lo/freedombone-image.json
+++ b/locale/lo/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-keydrive.json b/locale/lo/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/lo/freedombone-keydrive.json
+++ b/locale/lo/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/lo/freedombone-mesh-batman.json b/locale/lo/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/lo/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-mesh-blog.json b/locale/lo/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/lo/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-mesh-install.json b/locale/lo/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/lo/freedombone-mesh-install.json
+++ b/locale/lo/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-mesh-reset.json b/locale/lo/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/lo/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-mesh-visit-site.json b/locale/lo/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/lo/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-mirrors.json b/locale/lo/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/lo/freedombone-mirrors.json
+++ b/locale/lo/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-pin-cert.json b/locale/lo/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/lo/freedombone-pin-cert.json
+++ b/locale/lo/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-recoverkey.json b/locale/lo/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/lo/freedombone-recoverkey.json
+++ b/locale/lo/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/lo/freedombone-restore-local.json b/locale/lo/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/lo/freedombone-restore-local.json
+++ b/locale/lo/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/lo/freedombone-restore-remote.json b/locale/lo/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/lo/freedombone-restore-remote.json
+++ b/locale/lo/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-rmuser.json b/locale/lo/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/lo/freedombone-rmuser.json
+++ b/locale/lo/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-sec.json b/locale/lo/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/lo/freedombone-sec.json
+++ b/locale/lo/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/lo/freedombone-tests.json b/locale/lo/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/lo/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-update-date.json b/locale/lo/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/lo/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/lo/freedombone-update-date.mo b/locale/lo/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/lo/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/lo/freedombone-utils-backup.json b/locale/lo/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/lo/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/lo/freedombone-utils-config.json b/locale/lo/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/lo/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-database.json b/locale/lo/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/lo/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-depends.json b/locale/lo/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/lo/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-final.json b/locale/lo/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/lo/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-git.json b/locale/lo/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/lo/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-help.json b/locale/lo/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/lo/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-interactive.json b/locale/lo/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/lo/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-keys.json b/locale/lo/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/lo/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-onion.json b/locale/lo/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/lo/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-rng.json b/locale/lo/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/lo/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-selector.json b/locale/lo/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/lo/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-setup.json b/locale/lo/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/lo/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-validation.json b/locale/lo/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/lo/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-web.json b/locale/lo/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/lo/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-utils-wifi.json b/locale/lo/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/lo/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/lo/freedombone-wifi.json b/locale/lo/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/lo/freedombone-wifi.json
+++ b/locale/lo/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/lo/freedombone.json
+++ b/locale/lo/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-addremove.json b/locale/lt/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/lt/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-adduser.json b/locale/lt/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/lt/freedombone-adduser.json
+++ b/locale/lt/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/lt/freedombone-app-blog.json b/locale/lt/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/lt/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-blogstatic.json b/locale/lt/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/lt/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-cjdns.json b/locale/lt/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/lt/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-dlna.json b/locale/lt/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/lt/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-dokuwiki.json b/locale/lt/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/lt/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-emacs.json b/locale/lt/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/lt/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-etherpad.json b/locale/lt/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/lt/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-gnusocial.json b/locale/lt/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/lt/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-gogs.json b/locale/lt/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/lt/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-htmly.json b/locale/lt/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/lt/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-hubzilla.json b/locale/lt/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/lt/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-ipfs.json b/locale/lt/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/lt/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-irc.json b/locale/lt/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/lt/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-jitsi.json b/locale/lt/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/lt/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-mediagoblin.json b/locale/lt/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/lt/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-mumble.json b/locale/lt/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/lt/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-pelican.json b/locale/lt/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/lt/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-pihole.json b/locale/lt/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/lt/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-postactiv.json b/locale/lt/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/lt/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-rss.json b/locale/lt/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/lt/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-searx.json b/locale/lt/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/lt/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-sip.json b/locale/lt/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/lt/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-syncthing.json b/locale/lt/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/lt/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-tahoelafs.json b/locale/lt/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/lt/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-tox.json b/locale/lt/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/lt/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-vim.json b/locale/lt/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/lt/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-webmail.json b/locale/lt/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/lt/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-wiki.json b/locale/lt/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/lt/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-xmpp.json b/locale/lt/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/lt/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-app-zeronet.json b/locale/lt/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/lt/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-backup-local.json b/locale/lt/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/lt/freedombone-backup-local.json
+++ b/locale/lt/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-backup-remote.json b/locale/lt/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/lt/freedombone-backup-remote.json
+++ b/locale/lt/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-base-chaoskey.json b/locale/lt/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/lt/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-base-email.json b/locale/lt/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/lt/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-config.json b/locale/lt/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/lt/freedombone-config.json
+++ b/locale/lt/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/lt/freedombone-controlpanel-user.json b/locale/lt/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/lt/freedombone-controlpanel-user.json
+++ b/locale/lt/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/lt/freedombone-controlpanel.json b/locale/lt/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/lt/freedombone-controlpanel.json
+++ b/locale/lt/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/lt/freedombone-image-customise.json b/locale/lt/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/lt/freedombone-image-customise.json
+++ b/locale/lt/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/lt/freedombone-image-mesh.json b/locale/lt/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/lt/freedombone-image-mesh.json
+++ b/locale/lt/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-image.json b/locale/lt/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/lt/freedombone-image.json
+++ b/locale/lt/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-keydrive.json b/locale/lt/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/lt/freedombone-keydrive.json
+++ b/locale/lt/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/lt/freedombone-mesh-batman.json b/locale/lt/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/lt/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-mesh-blog.json b/locale/lt/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/lt/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-mesh-install.json b/locale/lt/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/lt/freedombone-mesh-install.json
+++ b/locale/lt/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-mesh-reset.json b/locale/lt/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/lt/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-mesh-visit-site.json b/locale/lt/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/lt/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-mirrors.json b/locale/lt/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/lt/freedombone-mirrors.json
+++ b/locale/lt/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-pin-cert.json b/locale/lt/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/lt/freedombone-pin-cert.json
+++ b/locale/lt/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-recoverkey.json b/locale/lt/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/lt/freedombone-recoverkey.json
+++ b/locale/lt/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/lt/freedombone-restore-local.json b/locale/lt/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/lt/freedombone-restore-local.json
+++ b/locale/lt/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/lt/freedombone-restore-remote.json b/locale/lt/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/lt/freedombone-restore-remote.json
+++ b/locale/lt/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-rmuser.json b/locale/lt/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/lt/freedombone-rmuser.json
+++ b/locale/lt/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-sec.json b/locale/lt/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/lt/freedombone-sec.json
+++ b/locale/lt/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/lt/freedombone-tests.json b/locale/lt/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/lt/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-update-date.json b/locale/lt/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/lt/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/lt/freedombone-update-date.mo b/locale/lt/freedombone-update-date.mo
deleted file mode 100644
index cfa0a8db..00000000
Binary files a/locale/lt/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/lt/freedombone-utils-backup.json b/locale/lt/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/lt/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/lt/freedombone-utils-config.json b/locale/lt/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/lt/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-database.json b/locale/lt/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/lt/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-depends.json b/locale/lt/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/lt/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-final.json b/locale/lt/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/lt/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-git.json b/locale/lt/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/lt/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-help.json b/locale/lt/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/lt/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-interactive.json b/locale/lt/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/lt/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-keys.json b/locale/lt/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/lt/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-onion.json b/locale/lt/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/lt/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-rng.json b/locale/lt/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/lt/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-selector.json b/locale/lt/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/lt/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-setup.json b/locale/lt/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/lt/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-validation.json b/locale/lt/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/lt/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-web.json b/locale/lt/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/lt/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-utils-wifi.json b/locale/lt/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/lt/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/lt/freedombone-wifi.json b/locale/lt/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/lt/freedombone-wifi.json
+++ b/locale/lt/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/lt/freedombone.json
+++ b/locale/lt/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-addremove.json b/locale/lv/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/lv/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-adduser.json b/locale/lv/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/lv/freedombone-adduser.json
+++ b/locale/lv/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/lv/freedombone-app-blog.json b/locale/lv/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/lv/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-blogstatic.json b/locale/lv/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/lv/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-cjdns.json b/locale/lv/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/lv/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-dlna.json b/locale/lv/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/lv/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-dokuwiki.json b/locale/lv/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/lv/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-emacs.json b/locale/lv/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/lv/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-etherpad.json b/locale/lv/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/lv/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-gnusocial.json b/locale/lv/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/lv/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-gogs.json b/locale/lv/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/lv/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-htmly.json b/locale/lv/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/lv/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-hubzilla.json b/locale/lv/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/lv/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-ipfs.json b/locale/lv/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/lv/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-irc.json b/locale/lv/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/lv/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-jitsi.json b/locale/lv/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/lv/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-mediagoblin.json b/locale/lv/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/lv/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-mumble.json b/locale/lv/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/lv/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-pelican.json b/locale/lv/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/lv/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-pihole.json b/locale/lv/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/lv/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-postactiv.json b/locale/lv/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/lv/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-rss.json b/locale/lv/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/lv/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-searx.json b/locale/lv/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/lv/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-sip.json b/locale/lv/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/lv/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-syncthing.json b/locale/lv/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/lv/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-tahoelafs.json b/locale/lv/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/lv/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-tox.json b/locale/lv/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/lv/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-vim.json b/locale/lv/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/lv/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-webmail.json b/locale/lv/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/lv/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-wiki.json b/locale/lv/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/lv/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-xmpp.json b/locale/lv/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/lv/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-app-zeronet.json b/locale/lv/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/lv/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-backup-local.json b/locale/lv/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/lv/freedombone-backup-local.json
+++ b/locale/lv/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-backup-remote.json b/locale/lv/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/lv/freedombone-backup-remote.json
+++ b/locale/lv/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-base-chaoskey.json b/locale/lv/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/lv/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-base-email.json b/locale/lv/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/lv/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-config.json b/locale/lv/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/lv/freedombone-config.json
+++ b/locale/lv/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/lv/freedombone-controlpanel-user.json b/locale/lv/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/lv/freedombone-controlpanel-user.json
+++ b/locale/lv/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/lv/freedombone-controlpanel.json b/locale/lv/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/lv/freedombone-controlpanel.json
+++ b/locale/lv/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/lv/freedombone-image-customise.json b/locale/lv/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/lv/freedombone-image-customise.json
+++ b/locale/lv/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/lv/freedombone-image-mesh.json b/locale/lv/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/lv/freedombone-image-mesh.json
+++ b/locale/lv/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-image.json b/locale/lv/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/lv/freedombone-image.json
+++ b/locale/lv/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-keydrive.json b/locale/lv/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/lv/freedombone-keydrive.json
+++ b/locale/lv/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/lv/freedombone-mesh-batman.json b/locale/lv/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/lv/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-mesh-blog.json b/locale/lv/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/lv/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-mesh-install.json b/locale/lv/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/lv/freedombone-mesh-install.json
+++ b/locale/lv/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-mesh-reset.json b/locale/lv/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/lv/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-mesh-visit-site.json b/locale/lv/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/lv/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-mirrors.json b/locale/lv/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/lv/freedombone-mirrors.json
+++ b/locale/lv/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-pin-cert.json b/locale/lv/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/lv/freedombone-pin-cert.json
+++ b/locale/lv/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-recoverkey.json b/locale/lv/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/lv/freedombone-recoverkey.json
+++ b/locale/lv/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/lv/freedombone-restore-local.json b/locale/lv/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/lv/freedombone-restore-local.json
+++ b/locale/lv/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/lv/freedombone-restore-remote.json b/locale/lv/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/lv/freedombone-restore-remote.json
+++ b/locale/lv/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-rmuser.json b/locale/lv/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/lv/freedombone-rmuser.json
+++ b/locale/lv/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-sec.json b/locale/lv/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/lv/freedombone-sec.json
+++ b/locale/lv/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/lv/freedombone-tests.json b/locale/lv/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/lv/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-update-date.json b/locale/lv/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/lv/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/lv/freedombone-update-date.mo b/locale/lv/freedombone-update-date.mo
deleted file mode 100644
index 8e8436f0..00000000
Binary files a/locale/lv/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/lv/freedombone-utils-backup.json b/locale/lv/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/lv/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/lv/freedombone-utils-config.json b/locale/lv/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/lv/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-database.json b/locale/lv/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/lv/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-depends.json b/locale/lv/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/lv/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-final.json b/locale/lv/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/lv/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-git.json b/locale/lv/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/lv/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-help.json b/locale/lv/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/lv/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-interactive.json b/locale/lv/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/lv/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-keys.json b/locale/lv/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/lv/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-onion.json b/locale/lv/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/lv/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-rng.json b/locale/lv/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/lv/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-selector.json b/locale/lv/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/lv/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-setup.json b/locale/lv/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/lv/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-validation.json b/locale/lv/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/lv/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-web.json b/locale/lv/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/lv/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-utils-wifi.json b/locale/lv/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/lv/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/lv/freedombone-wifi.json b/locale/lv/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/lv/freedombone-wifi.json
+++ b/locale/lv/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/lv/freedombone.json
+++ b/locale/lv/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-addremove.json b/locale/mi_tn/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/mi_tn/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-adduser.json b/locale/mi_tn/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/mi_tn/freedombone-adduser.json
+++ b/locale/mi_tn/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/mi_tn/freedombone-app-blog.json b/locale/mi_tn/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-blogstatic.json b/locale/mi_tn/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-cjdns.json b/locale/mi_tn/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-dlna.json b/locale/mi_tn/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-dokuwiki.json b/locale/mi_tn/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-emacs.json b/locale/mi_tn/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-etherpad.json b/locale/mi_tn/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-gnusocial.json b/locale/mi_tn/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-gogs.json b/locale/mi_tn/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-htmly.json b/locale/mi_tn/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-hubzilla.json b/locale/mi_tn/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-ipfs.json b/locale/mi_tn/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-irc.json b/locale/mi_tn/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-jitsi.json b/locale/mi_tn/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-mediagoblin.json b/locale/mi_tn/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-mumble.json b/locale/mi_tn/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-pelican.json b/locale/mi_tn/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-pihole.json b/locale/mi_tn/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-postactiv.json b/locale/mi_tn/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-rss.json b/locale/mi_tn/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-searx.json b/locale/mi_tn/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-sip.json b/locale/mi_tn/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-syncthing.json b/locale/mi_tn/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-tahoelafs.json b/locale/mi_tn/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-tox.json b/locale/mi_tn/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-vim.json b/locale/mi_tn/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-webmail.json b/locale/mi_tn/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-wiki.json b/locale/mi_tn/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-xmpp.json b/locale/mi_tn/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-app-zeronet.json b/locale/mi_tn/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/mi_tn/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-backup-local.json b/locale/mi_tn/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/mi_tn/freedombone-backup-local.json
+++ b/locale/mi_tn/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-backup-remote.json b/locale/mi_tn/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/mi_tn/freedombone-backup-remote.json
+++ b/locale/mi_tn/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-base-chaoskey.json b/locale/mi_tn/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/mi_tn/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-base-email.json b/locale/mi_tn/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/mi_tn/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-config.json b/locale/mi_tn/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/mi_tn/freedombone-config.json
+++ b/locale/mi_tn/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/mi_tn/freedombone-controlpanel-user.json b/locale/mi_tn/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/mi_tn/freedombone-controlpanel-user.json
+++ b/locale/mi_tn/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/mi_tn/freedombone-controlpanel.json b/locale/mi_tn/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/mi_tn/freedombone-controlpanel.json
+++ b/locale/mi_tn/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/mi_tn/freedombone-image-customise.json b/locale/mi_tn/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/mi_tn/freedombone-image-customise.json
+++ b/locale/mi_tn/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/mi_tn/freedombone-image-mesh.json b/locale/mi_tn/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/mi_tn/freedombone-image-mesh.json
+++ b/locale/mi_tn/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-image.json b/locale/mi_tn/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/mi_tn/freedombone-image.json
+++ b/locale/mi_tn/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-keydrive.json b/locale/mi_tn/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/mi_tn/freedombone-keydrive.json
+++ b/locale/mi_tn/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/mi_tn/freedombone-mesh-batman.json b/locale/mi_tn/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/mi_tn/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-mesh-blog.json b/locale/mi_tn/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/mi_tn/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-mesh-install.json b/locale/mi_tn/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/mi_tn/freedombone-mesh-install.json
+++ b/locale/mi_tn/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-mesh-reset.json b/locale/mi_tn/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/mi_tn/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-mesh-visit-site.json b/locale/mi_tn/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/mi_tn/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-mirrors.json b/locale/mi_tn/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/mi_tn/freedombone-mirrors.json
+++ b/locale/mi_tn/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-pin-cert.json b/locale/mi_tn/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/mi_tn/freedombone-pin-cert.json
+++ b/locale/mi_tn/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-recoverkey.json b/locale/mi_tn/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/mi_tn/freedombone-recoverkey.json
+++ b/locale/mi_tn/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/mi_tn/freedombone-restore-local.json b/locale/mi_tn/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/mi_tn/freedombone-restore-local.json
+++ b/locale/mi_tn/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/mi_tn/freedombone-restore-remote.json b/locale/mi_tn/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/mi_tn/freedombone-restore-remote.json
+++ b/locale/mi_tn/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-rmuser.json b/locale/mi_tn/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/mi_tn/freedombone-rmuser.json
+++ b/locale/mi_tn/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-sec.json b/locale/mi_tn/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/mi_tn/freedombone-sec.json
+++ b/locale/mi_tn/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-tests.json b/locale/mi_tn/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/mi_tn/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-update-date.json b/locale/mi_tn/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/mi_tn/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-update-date.mo b/locale/mi_tn/freedombone-update-date.mo
deleted file mode 100644
index 5d071f59..00000000
Binary files a/locale/mi_tn/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/mi_tn/freedombone-utils-backup.json b/locale/mi_tn/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/mi_tn/freedombone-utils-config.json b/locale/mi_tn/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-database.json b/locale/mi_tn/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-depends.json b/locale/mi_tn/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-final.json b/locale/mi_tn/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-git.json b/locale/mi_tn/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-help.json b/locale/mi_tn/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-interactive.json b/locale/mi_tn/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-keys.json b/locale/mi_tn/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-onion.json b/locale/mi_tn/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-rng.json b/locale/mi_tn/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-selector.json b/locale/mi_tn/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-setup.json b/locale/mi_tn/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-validation.json b/locale/mi_tn/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-web.json b/locale/mi_tn/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-utils-wifi.json b/locale/mi_tn/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/mi_tn/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/mi_tn/freedombone-wifi.json b/locale/mi_tn/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/mi_tn/freedombone-wifi.json
+++ b/locale/mi_tn/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/mi_tn/freedombone.json
+++ b/locale/mi_tn/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-addremove.json b/locale/mi_wwow/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/mi_wwow/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-adduser.json b/locale/mi_wwow/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/mi_wwow/freedombone-adduser.json
+++ b/locale/mi_wwow/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/mi_wwow/freedombone-app-blog.json b/locale/mi_wwow/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-blogstatic.json b/locale/mi_wwow/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-cjdns.json b/locale/mi_wwow/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-dlna.json b/locale/mi_wwow/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-dokuwiki.json b/locale/mi_wwow/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-emacs.json b/locale/mi_wwow/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-etherpad.json b/locale/mi_wwow/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-gnusocial.json b/locale/mi_wwow/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-gogs.json b/locale/mi_wwow/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-htmly.json b/locale/mi_wwow/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-hubzilla.json b/locale/mi_wwow/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-ipfs.json b/locale/mi_wwow/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-irc.json b/locale/mi_wwow/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-jitsi.json b/locale/mi_wwow/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-mediagoblin.json b/locale/mi_wwow/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-mumble.json b/locale/mi_wwow/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-pelican.json b/locale/mi_wwow/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-pihole.json b/locale/mi_wwow/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-postactiv.json b/locale/mi_wwow/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-rss.json b/locale/mi_wwow/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-searx.json b/locale/mi_wwow/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-sip.json b/locale/mi_wwow/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-syncthing.json b/locale/mi_wwow/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-tahoelafs.json b/locale/mi_wwow/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-tox.json b/locale/mi_wwow/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-vim.json b/locale/mi_wwow/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-webmail.json b/locale/mi_wwow/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-wiki.json b/locale/mi_wwow/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-xmpp.json b/locale/mi_wwow/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-app-zeronet.json b/locale/mi_wwow/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/mi_wwow/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-backup-local.json b/locale/mi_wwow/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/mi_wwow/freedombone-backup-local.json
+++ b/locale/mi_wwow/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-backup-remote.json b/locale/mi_wwow/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/mi_wwow/freedombone-backup-remote.json
+++ b/locale/mi_wwow/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-base-chaoskey.json b/locale/mi_wwow/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/mi_wwow/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-base-email.json b/locale/mi_wwow/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/mi_wwow/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-config.json b/locale/mi_wwow/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/mi_wwow/freedombone-config.json
+++ b/locale/mi_wwow/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/mi_wwow/freedombone-controlpanel-user.json b/locale/mi_wwow/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/mi_wwow/freedombone-controlpanel-user.json
+++ b/locale/mi_wwow/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/mi_wwow/freedombone-controlpanel.json b/locale/mi_wwow/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/mi_wwow/freedombone-controlpanel.json
+++ b/locale/mi_wwow/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/mi_wwow/freedombone-image-customise.json b/locale/mi_wwow/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/mi_wwow/freedombone-image-customise.json
+++ b/locale/mi_wwow/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/mi_wwow/freedombone-image-mesh.json b/locale/mi_wwow/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/mi_wwow/freedombone-image-mesh.json
+++ b/locale/mi_wwow/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-image.json b/locale/mi_wwow/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/mi_wwow/freedombone-image.json
+++ b/locale/mi_wwow/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-keydrive.json b/locale/mi_wwow/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/mi_wwow/freedombone-keydrive.json
+++ b/locale/mi_wwow/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/mi_wwow/freedombone-mesh-batman.json b/locale/mi_wwow/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/mi_wwow/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-mesh-blog.json b/locale/mi_wwow/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/mi_wwow/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-mesh-install.json b/locale/mi_wwow/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/mi_wwow/freedombone-mesh-install.json
+++ b/locale/mi_wwow/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-mesh-reset.json b/locale/mi_wwow/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/mi_wwow/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-mesh-visit-site.json b/locale/mi_wwow/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/mi_wwow/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-mirrors.json b/locale/mi_wwow/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/mi_wwow/freedombone-mirrors.json
+++ b/locale/mi_wwow/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-pin-cert.json b/locale/mi_wwow/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/mi_wwow/freedombone-pin-cert.json
+++ b/locale/mi_wwow/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-recoverkey.json b/locale/mi_wwow/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/mi_wwow/freedombone-recoverkey.json
+++ b/locale/mi_wwow/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/mi_wwow/freedombone-restore-local.json b/locale/mi_wwow/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/mi_wwow/freedombone-restore-local.json
+++ b/locale/mi_wwow/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/mi_wwow/freedombone-restore-remote.json b/locale/mi_wwow/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/mi_wwow/freedombone-restore-remote.json
+++ b/locale/mi_wwow/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-rmuser.json b/locale/mi_wwow/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/mi_wwow/freedombone-rmuser.json
+++ b/locale/mi_wwow/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-sec.json b/locale/mi_wwow/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/mi_wwow/freedombone-sec.json
+++ b/locale/mi_wwow/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-tests.json b/locale/mi_wwow/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/mi_wwow/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-update-date.json b/locale/mi_wwow/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/mi_wwow/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-update-date.mo b/locale/mi_wwow/freedombone-update-date.mo
deleted file mode 100644
index 5d071f59..00000000
Binary files a/locale/mi_wwow/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/mi_wwow/freedombone-utils-backup.json b/locale/mi_wwow/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/mi_wwow/freedombone-utils-config.json b/locale/mi_wwow/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-database.json b/locale/mi_wwow/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-depends.json b/locale/mi_wwow/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-final.json b/locale/mi_wwow/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-git.json b/locale/mi_wwow/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-help.json b/locale/mi_wwow/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-interactive.json b/locale/mi_wwow/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-keys.json b/locale/mi_wwow/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-onion.json b/locale/mi_wwow/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-rng.json b/locale/mi_wwow/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-selector.json b/locale/mi_wwow/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-setup.json b/locale/mi_wwow/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-validation.json b/locale/mi_wwow/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-web.json b/locale/mi_wwow/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-utils-wifi.json b/locale/mi_wwow/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/mi_wwow/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/mi_wwow/freedombone-wifi.json b/locale/mi_wwow/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/mi_wwow/freedombone-wifi.json
+++ b/locale/mi_wwow/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/mi_wwow/freedombone.json
+++ b/locale/mi_wwow/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-addremove.json b/locale/ml/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ml/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-adduser.json b/locale/ml/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ml/freedombone-adduser.json
+++ b/locale/ml/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ml/freedombone-app-blog.json b/locale/ml/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ml/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-blogstatic.json b/locale/ml/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ml/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-cjdns.json b/locale/ml/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ml/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-dlna.json b/locale/ml/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ml/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-dokuwiki.json b/locale/ml/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ml/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-emacs.json b/locale/ml/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ml/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-etherpad.json b/locale/ml/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ml/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-gnusocial.json b/locale/ml/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ml/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-gogs.json b/locale/ml/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ml/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-htmly.json b/locale/ml/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ml/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-hubzilla.json b/locale/ml/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ml/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-ipfs.json b/locale/ml/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ml/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-irc.json b/locale/ml/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ml/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-jitsi.json b/locale/ml/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ml/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-mediagoblin.json b/locale/ml/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ml/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-mumble.json b/locale/ml/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ml/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-pelican.json b/locale/ml/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ml/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-pihole.json b/locale/ml/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ml/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-postactiv.json b/locale/ml/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ml/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-rss.json b/locale/ml/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ml/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-searx.json b/locale/ml/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ml/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-sip.json b/locale/ml/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ml/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-syncthing.json b/locale/ml/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ml/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-tahoelafs.json b/locale/ml/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ml/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-tox.json b/locale/ml/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ml/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-vim.json b/locale/ml/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ml/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-webmail.json b/locale/ml/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ml/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-wiki.json b/locale/ml/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ml/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-xmpp.json b/locale/ml/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ml/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-app-zeronet.json b/locale/ml/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ml/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-backup-local.json b/locale/ml/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ml/freedombone-backup-local.json
+++ b/locale/ml/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-backup-remote.json b/locale/ml/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ml/freedombone-backup-remote.json
+++ b/locale/ml/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-base-chaoskey.json b/locale/ml/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ml/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-base-email.json b/locale/ml/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ml/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-config.json b/locale/ml/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ml/freedombone-config.json
+++ b/locale/ml/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ml/freedombone-controlpanel-user.json b/locale/ml/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ml/freedombone-controlpanel-user.json
+++ b/locale/ml/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ml/freedombone-controlpanel.json b/locale/ml/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ml/freedombone-controlpanel.json
+++ b/locale/ml/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ml/freedombone-image-customise.json b/locale/ml/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ml/freedombone-image-customise.json
+++ b/locale/ml/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ml/freedombone-image-mesh.json b/locale/ml/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ml/freedombone-image-mesh.json
+++ b/locale/ml/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-image.json b/locale/ml/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ml/freedombone-image.json
+++ b/locale/ml/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-keydrive.json b/locale/ml/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ml/freedombone-keydrive.json
+++ b/locale/ml/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ml/freedombone-mesh-batman.json b/locale/ml/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ml/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-mesh-blog.json b/locale/ml/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ml/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-mesh-install.json b/locale/ml/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ml/freedombone-mesh-install.json
+++ b/locale/ml/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-mesh-reset.json b/locale/ml/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ml/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-mesh-visit-site.json b/locale/ml/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ml/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-mirrors.json b/locale/ml/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ml/freedombone-mirrors.json
+++ b/locale/ml/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-pin-cert.json b/locale/ml/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ml/freedombone-pin-cert.json
+++ b/locale/ml/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-recoverkey.json b/locale/ml/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ml/freedombone-recoverkey.json
+++ b/locale/ml/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ml/freedombone-restore-local.json b/locale/ml/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ml/freedombone-restore-local.json
+++ b/locale/ml/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ml/freedombone-restore-remote.json b/locale/ml/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ml/freedombone-restore-remote.json
+++ b/locale/ml/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-rmuser.json b/locale/ml/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ml/freedombone-rmuser.json
+++ b/locale/ml/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-sec.json b/locale/ml/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ml/freedombone-sec.json
+++ b/locale/ml/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ml/freedombone-tests.json b/locale/ml/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ml/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-update-date.json b/locale/ml/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ml/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ml/freedombone-update-date.mo b/locale/ml/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/ml/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ml/freedombone-utils-backup.json b/locale/ml/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ml/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ml/freedombone-utils-config.json b/locale/ml/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ml/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-database.json b/locale/ml/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ml/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-depends.json b/locale/ml/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ml/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-final.json b/locale/ml/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ml/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-git.json b/locale/ml/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ml/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-help.json b/locale/ml/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ml/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-interactive.json b/locale/ml/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ml/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-keys.json b/locale/ml/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ml/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-onion.json b/locale/ml/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ml/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-rng.json b/locale/ml/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ml/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-selector.json b/locale/ml/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ml/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-setup.json b/locale/ml/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ml/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-validation.json b/locale/ml/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ml/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-web.json b/locale/ml/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ml/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-utils-wifi.json b/locale/ml/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ml/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ml/freedombone-wifi.json b/locale/ml/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ml/freedombone-wifi.json
+++ b/locale/ml/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ml/freedombone.json
+++ b/locale/ml/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-addremove.json b/locale/mn/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/mn/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-adduser.json b/locale/mn/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/mn/freedombone-adduser.json
+++ b/locale/mn/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/mn/freedombone-app-blog.json b/locale/mn/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/mn/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-blogstatic.json b/locale/mn/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/mn/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-cjdns.json b/locale/mn/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/mn/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-dlna.json b/locale/mn/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/mn/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-dokuwiki.json b/locale/mn/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/mn/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-emacs.json b/locale/mn/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/mn/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-etherpad.json b/locale/mn/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/mn/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-gnusocial.json b/locale/mn/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/mn/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-gogs.json b/locale/mn/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/mn/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-htmly.json b/locale/mn/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/mn/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-hubzilla.json b/locale/mn/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/mn/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-ipfs.json b/locale/mn/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/mn/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-irc.json b/locale/mn/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/mn/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-jitsi.json b/locale/mn/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/mn/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-mediagoblin.json b/locale/mn/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/mn/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-mumble.json b/locale/mn/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/mn/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-pelican.json b/locale/mn/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/mn/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-pihole.json b/locale/mn/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/mn/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-postactiv.json b/locale/mn/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/mn/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-rss.json b/locale/mn/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/mn/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-searx.json b/locale/mn/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/mn/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-sip.json b/locale/mn/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/mn/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-syncthing.json b/locale/mn/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/mn/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-tahoelafs.json b/locale/mn/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/mn/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-tox.json b/locale/mn/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/mn/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-vim.json b/locale/mn/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/mn/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-webmail.json b/locale/mn/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/mn/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-wiki.json b/locale/mn/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/mn/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-xmpp.json b/locale/mn/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/mn/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-app-zeronet.json b/locale/mn/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/mn/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-backup-local.json b/locale/mn/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/mn/freedombone-backup-local.json
+++ b/locale/mn/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-backup-remote.json b/locale/mn/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/mn/freedombone-backup-remote.json
+++ b/locale/mn/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-base-chaoskey.json b/locale/mn/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/mn/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-base-email.json b/locale/mn/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/mn/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-config.json b/locale/mn/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/mn/freedombone-config.json
+++ b/locale/mn/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/mn/freedombone-controlpanel-user.json b/locale/mn/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/mn/freedombone-controlpanel-user.json
+++ b/locale/mn/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/mn/freedombone-controlpanel.json b/locale/mn/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/mn/freedombone-controlpanel.json
+++ b/locale/mn/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/mn/freedombone-image-customise.json b/locale/mn/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/mn/freedombone-image-customise.json
+++ b/locale/mn/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/mn/freedombone-image-mesh.json b/locale/mn/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/mn/freedombone-image-mesh.json
+++ b/locale/mn/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-image.json b/locale/mn/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/mn/freedombone-image.json
+++ b/locale/mn/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-keydrive.json b/locale/mn/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/mn/freedombone-keydrive.json
+++ b/locale/mn/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/mn/freedombone-mesh-batman.json b/locale/mn/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/mn/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-mesh-blog.json b/locale/mn/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/mn/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-mesh-install.json b/locale/mn/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/mn/freedombone-mesh-install.json
+++ b/locale/mn/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-mesh-reset.json b/locale/mn/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/mn/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-mesh-visit-site.json b/locale/mn/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/mn/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-mirrors.json b/locale/mn/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/mn/freedombone-mirrors.json
+++ b/locale/mn/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-pin-cert.json b/locale/mn/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/mn/freedombone-pin-cert.json
+++ b/locale/mn/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-recoverkey.json b/locale/mn/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/mn/freedombone-recoverkey.json
+++ b/locale/mn/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/mn/freedombone-restore-local.json b/locale/mn/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/mn/freedombone-restore-local.json
+++ b/locale/mn/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/mn/freedombone-restore-remote.json b/locale/mn/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/mn/freedombone-restore-remote.json
+++ b/locale/mn/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-rmuser.json b/locale/mn/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/mn/freedombone-rmuser.json
+++ b/locale/mn/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-sec.json b/locale/mn/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/mn/freedombone-sec.json
+++ b/locale/mn/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/mn/freedombone-tests.json b/locale/mn/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/mn/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-update-date.json b/locale/mn/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/mn/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/mn/freedombone-update-date.mo b/locale/mn/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/mn/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/mn/freedombone-utils-backup.json b/locale/mn/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/mn/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/mn/freedombone-utils-config.json b/locale/mn/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/mn/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-database.json b/locale/mn/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/mn/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-depends.json b/locale/mn/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/mn/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-final.json b/locale/mn/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/mn/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-git.json b/locale/mn/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/mn/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-help.json b/locale/mn/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/mn/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-interactive.json b/locale/mn/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/mn/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-keys.json b/locale/mn/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/mn/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-onion.json b/locale/mn/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/mn/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-rng.json b/locale/mn/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/mn/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-selector.json b/locale/mn/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/mn/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-setup.json b/locale/mn/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/mn/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-validation.json b/locale/mn/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/mn/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-web.json b/locale/mn/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/mn/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-utils-wifi.json b/locale/mn/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/mn/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/mn/freedombone-wifi.json b/locale/mn/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/mn/freedombone-wifi.json
+++ b/locale/mn/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/mn/freedombone.json
+++ b/locale/mn/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-addremove.json b/locale/ms/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ms/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-adduser.json b/locale/ms/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ms/freedombone-adduser.json
+++ b/locale/ms/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ms/freedombone-app-blog.json b/locale/ms/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ms/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-blogstatic.json b/locale/ms/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ms/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-cjdns.json b/locale/ms/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ms/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-dlna.json b/locale/ms/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ms/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-dokuwiki.json b/locale/ms/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ms/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-emacs.json b/locale/ms/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ms/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-etherpad.json b/locale/ms/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ms/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-gnusocial.json b/locale/ms/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ms/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-gogs.json b/locale/ms/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ms/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-htmly.json b/locale/ms/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ms/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-hubzilla.json b/locale/ms/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ms/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-ipfs.json b/locale/ms/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ms/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-irc.json b/locale/ms/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ms/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-jitsi.json b/locale/ms/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ms/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-mediagoblin.json b/locale/ms/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ms/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-mumble.json b/locale/ms/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ms/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-pelican.json b/locale/ms/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ms/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-pihole.json b/locale/ms/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ms/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-postactiv.json b/locale/ms/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ms/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-rss.json b/locale/ms/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ms/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-searx.json b/locale/ms/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ms/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-sip.json b/locale/ms/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ms/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-syncthing.json b/locale/ms/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ms/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-tahoelafs.json b/locale/ms/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ms/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-tox.json b/locale/ms/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ms/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-vim.json b/locale/ms/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ms/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-webmail.json b/locale/ms/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ms/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-wiki.json b/locale/ms/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ms/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-xmpp.json b/locale/ms/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ms/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-app-zeronet.json b/locale/ms/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ms/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-backup-local.json b/locale/ms/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ms/freedombone-backup-local.json
+++ b/locale/ms/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-backup-remote.json b/locale/ms/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ms/freedombone-backup-remote.json
+++ b/locale/ms/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-base-chaoskey.json b/locale/ms/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ms/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-base-email.json b/locale/ms/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ms/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-config.json b/locale/ms/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ms/freedombone-config.json
+++ b/locale/ms/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ms/freedombone-controlpanel-user.json b/locale/ms/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ms/freedombone-controlpanel-user.json
+++ b/locale/ms/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ms/freedombone-controlpanel.json b/locale/ms/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ms/freedombone-controlpanel.json
+++ b/locale/ms/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ms/freedombone-image-customise.json b/locale/ms/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ms/freedombone-image-customise.json
+++ b/locale/ms/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ms/freedombone-image-mesh.json b/locale/ms/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ms/freedombone-image-mesh.json
+++ b/locale/ms/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-image.json b/locale/ms/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ms/freedombone-image.json
+++ b/locale/ms/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-keydrive.json b/locale/ms/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ms/freedombone-keydrive.json
+++ b/locale/ms/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ms/freedombone-mesh-batman.json b/locale/ms/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ms/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-mesh-blog.json b/locale/ms/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ms/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-mesh-install.json b/locale/ms/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ms/freedombone-mesh-install.json
+++ b/locale/ms/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-mesh-reset.json b/locale/ms/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ms/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-mesh-visit-site.json b/locale/ms/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ms/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-mirrors.json b/locale/ms/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ms/freedombone-mirrors.json
+++ b/locale/ms/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-pin-cert.json b/locale/ms/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ms/freedombone-pin-cert.json
+++ b/locale/ms/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-recoverkey.json b/locale/ms/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ms/freedombone-recoverkey.json
+++ b/locale/ms/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ms/freedombone-restore-local.json b/locale/ms/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ms/freedombone-restore-local.json
+++ b/locale/ms/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ms/freedombone-restore-remote.json b/locale/ms/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ms/freedombone-restore-remote.json
+++ b/locale/ms/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-rmuser.json b/locale/ms/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ms/freedombone-rmuser.json
+++ b/locale/ms/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-sec.json b/locale/ms/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ms/freedombone-sec.json
+++ b/locale/ms/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ms/freedombone-tests.json b/locale/ms/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ms/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-update-date.json b/locale/ms/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ms/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ms/freedombone-update-date.mo b/locale/ms/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/ms/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ms/freedombone-utils-backup.json b/locale/ms/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ms/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ms/freedombone-utils-config.json b/locale/ms/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ms/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-database.json b/locale/ms/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ms/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-depends.json b/locale/ms/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ms/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-final.json b/locale/ms/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ms/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-git.json b/locale/ms/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ms/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-help.json b/locale/ms/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ms/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-interactive.json b/locale/ms/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ms/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-keys.json b/locale/ms/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ms/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-onion.json b/locale/ms/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ms/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-rng.json b/locale/ms/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ms/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-selector.json b/locale/ms/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ms/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-setup.json b/locale/ms/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ms/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-validation.json b/locale/ms/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ms/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-web.json b/locale/ms/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ms/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-utils-wifi.json b/locale/ms/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ms/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ms/freedombone-wifi.json b/locale/ms/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ms/freedombone-wifi.json
+++ b/locale/ms/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ms/freedombone.json
+++ b/locale/ms/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-addremove.json b/locale/nl/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/nl/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-adduser.json b/locale/nl/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/nl/freedombone-adduser.json
+++ b/locale/nl/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/nl/freedombone-app-blog.json b/locale/nl/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/nl/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-blogstatic.json b/locale/nl/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/nl/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-cjdns.json b/locale/nl/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/nl/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-dlna.json b/locale/nl/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/nl/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-dokuwiki.json b/locale/nl/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/nl/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-emacs.json b/locale/nl/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/nl/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-etherpad.json b/locale/nl/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/nl/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-gnusocial.json b/locale/nl/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/nl/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-gogs.json b/locale/nl/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/nl/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-htmly.json b/locale/nl/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/nl/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-hubzilla.json b/locale/nl/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/nl/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-ipfs.json b/locale/nl/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/nl/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-irc.json b/locale/nl/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/nl/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-jitsi.json b/locale/nl/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/nl/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-mediagoblin.json b/locale/nl/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/nl/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-mumble.json b/locale/nl/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/nl/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-pelican.json b/locale/nl/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/nl/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-pihole.json b/locale/nl/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/nl/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-postactiv.json b/locale/nl/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/nl/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-rss.json b/locale/nl/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/nl/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-searx.json b/locale/nl/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/nl/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-sip.json b/locale/nl/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/nl/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-syncthing.json b/locale/nl/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/nl/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-tahoelafs.json b/locale/nl/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/nl/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-tox.json b/locale/nl/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/nl/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-vim.json b/locale/nl/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/nl/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-webmail.json b/locale/nl/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/nl/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-wiki.json b/locale/nl/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/nl/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-xmpp.json b/locale/nl/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/nl/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-app-zeronet.json b/locale/nl/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/nl/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-backup-local.json b/locale/nl/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/nl/freedombone-backup-local.json
+++ b/locale/nl/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-backup-remote.json b/locale/nl/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/nl/freedombone-backup-remote.json
+++ b/locale/nl/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-base-chaoskey.json b/locale/nl/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/nl/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-base-email.json b/locale/nl/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/nl/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-config.json b/locale/nl/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/nl/freedombone-config.json
+++ b/locale/nl/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/nl/freedombone-controlpanel-user.json b/locale/nl/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/nl/freedombone-controlpanel-user.json
+++ b/locale/nl/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/nl/freedombone-controlpanel.json b/locale/nl/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/nl/freedombone-controlpanel.json
+++ b/locale/nl/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/nl/freedombone-image-customise.json b/locale/nl/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/nl/freedombone-image-customise.json
+++ b/locale/nl/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/nl/freedombone-image-mesh.json b/locale/nl/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/nl/freedombone-image-mesh.json
+++ b/locale/nl/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-image.json b/locale/nl/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/nl/freedombone-image.json
+++ b/locale/nl/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-keydrive.json b/locale/nl/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/nl/freedombone-keydrive.json
+++ b/locale/nl/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/nl/freedombone-mesh-batman.json b/locale/nl/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/nl/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-mesh-blog.json b/locale/nl/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/nl/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-mesh-install.json b/locale/nl/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/nl/freedombone-mesh-install.json
+++ b/locale/nl/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-mesh-reset.json b/locale/nl/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/nl/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-mesh-visit-site.json b/locale/nl/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/nl/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-mirrors.json b/locale/nl/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/nl/freedombone-mirrors.json
+++ b/locale/nl/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-pin-cert.json b/locale/nl/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/nl/freedombone-pin-cert.json
+++ b/locale/nl/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-recoverkey.json b/locale/nl/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/nl/freedombone-recoverkey.json
+++ b/locale/nl/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/nl/freedombone-restore-local.json b/locale/nl/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/nl/freedombone-restore-local.json
+++ b/locale/nl/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/nl/freedombone-restore-remote.json b/locale/nl/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/nl/freedombone-restore-remote.json
+++ b/locale/nl/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-rmuser.json b/locale/nl/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/nl/freedombone-rmuser.json
+++ b/locale/nl/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-sec.json b/locale/nl/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/nl/freedombone-sec.json
+++ b/locale/nl/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/nl/freedombone-tests.json b/locale/nl/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/nl/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-update-date.json b/locale/nl/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/nl/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/nl/freedombone-update-date.mo b/locale/nl/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/nl/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/nl/freedombone-utils-backup.json b/locale/nl/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/nl/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/nl/freedombone-utils-config.json b/locale/nl/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/nl/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-database.json b/locale/nl/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/nl/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-depends.json b/locale/nl/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/nl/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-final.json b/locale/nl/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/nl/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-git.json b/locale/nl/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/nl/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-help.json b/locale/nl/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/nl/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-interactive.json b/locale/nl/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/nl/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-keys.json b/locale/nl/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/nl/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-onion.json b/locale/nl/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/nl/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-rng.json b/locale/nl/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/nl/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-selector.json b/locale/nl/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/nl/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-setup.json b/locale/nl/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/nl/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-validation.json b/locale/nl/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/nl/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-web.json b/locale/nl/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/nl/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-utils-wifi.json b/locale/nl/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/nl/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/nl/freedombone-wifi.json b/locale/nl/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/nl/freedombone-wifi.json
+++ b/locale/nl/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/nl/freedombone.json
+++ b/locale/nl/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-addremove.json b/locale/nn/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/nn/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-adduser.json b/locale/nn/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/nn/freedombone-adduser.json
+++ b/locale/nn/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/nn/freedombone-app-blog.json b/locale/nn/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/nn/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-blogstatic.json b/locale/nn/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/nn/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-cjdns.json b/locale/nn/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/nn/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-dlna.json b/locale/nn/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/nn/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-dokuwiki.json b/locale/nn/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/nn/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-emacs.json b/locale/nn/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/nn/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-etherpad.json b/locale/nn/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/nn/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-gnusocial.json b/locale/nn/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/nn/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-gogs.json b/locale/nn/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/nn/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-htmly.json b/locale/nn/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/nn/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-hubzilla.json b/locale/nn/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/nn/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-ipfs.json b/locale/nn/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/nn/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-irc.json b/locale/nn/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/nn/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-jitsi.json b/locale/nn/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/nn/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-mediagoblin.json b/locale/nn/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/nn/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-mumble.json b/locale/nn/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/nn/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-pelican.json b/locale/nn/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/nn/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-pihole.json b/locale/nn/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/nn/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-postactiv.json b/locale/nn/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/nn/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-rss.json b/locale/nn/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/nn/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-searx.json b/locale/nn/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/nn/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-sip.json b/locale/nn/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/nn/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-syncthing.json b/locale/nn/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/nn/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-tahoelafs.json b/locale/nn/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/nn/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-tox.json b/locale/nn/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/nn/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-vim.json b/locale/nn/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/nn/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-webmail.json b/locale/nn/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/nn/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-wiki.json b/locale/nn/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/nn/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-xmpp.json b/locale/nn/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/nn/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-app-zeronet.json b/locale/nn/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/nn/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-backup-local.json b/locale/nn/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/nn/freedombone-backup-local.json
+++ b/locale/nn/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-backup-remote.json b/locale/nn/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/nn/freedombone-backup-remote.json
+++ b/locale/nn/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-base-chaoskey.json b/locale/nn/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/nn/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-base-email.json b/locale/nn/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/nn/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-config.json b/locale/nn/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/nn/freedombone-config.json
+++ b/locale/nn/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/nn/freedombone-controlpanel-user.json b/locale/nn/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/nn/freedombone-controlpanel-user.json
+++ b/locale/nn/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/nn/freedombone-controlpanel.json b/locale/nn/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/nn/freedombone-controlpanel.json
+++ b/locale/nn/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/nn/freedombone-image-customise.json b/locale/nn/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/nn/freedombone-image-customise.json
+++ b/locale/nn/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/nn/freedombone-image-mesh.json b/locale/nn/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/nn/freedombone-image-mesh.json
+++ b/locale/nn/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-image.json b/locale/nn/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/nn/freedombone-image.json
+++ b/locale/nn/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-keydrive.json b/locale/nn/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/nn/freedombone-keydrive.json
+++ b/locale/nn/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/nn/freedombone-mesh-batman.json b/locale/nn/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/nn/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-mesh-blog.json b/locale/nn/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/nn/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-mesh-install.json b/locale/nn/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/nn/freedombone-mesh-install.json
+++ b/locale/nn/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-mesh-reset.json b/locale/nn/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/nn/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-mesh-visit-site.json b/locale/nn/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/nn/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-mirrors.json b/locale/nn/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/nn/freedombone-mirrors.json
+++ b/locale/nn/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-pin-cert.json b/locale/nn/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/nn/freedombone-pin-cert.json
+++ b/locale/nn/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-recoverkey.json b/locale/nn/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/nn/freedombone-recoverkey.json
+++ b/locale/nn/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/nn/freedombone-restore-local.json b/locale/nn/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/nn/freedombone-restore-local.json
+++ b/locale/nn/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/nn/freedombone-restore-remote.json b/locale/nn/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/nn/freedombone-restore-remote.json
+++ b/locale/nn/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-rmuser.json b/locale/nn/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/nn/freedombone-rmuser.json
+++ b/locale/nn/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-sec.json b/locale/nn/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/nn/freedombone-sec.json
+++ b/locale/nn/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/nn/freedombone-tests.json b/locale/nn/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/nn/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-update-date.json b/locale/nn/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/nn/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/nn/freedombone-update-date.mo b/locale/nn/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/nn/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/nn/freedombone-utils-backup.json b/locale/nn/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/nn/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/nn/freedombone-utils-config.json b/locale/nn/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/nn/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-database.json b/locale/nn/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/nn/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-depends.json b/locale/nn/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/nn/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-final.json b/locale/nn/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/nn/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-git.json b/locale/nn/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/nn/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-help.json b/locale/nn/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/nn/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-interactive.json b/locale/nn/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/nn/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-keys.json b/locale/nn/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/nn/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-onion.json b/locale/nn/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/nn/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-rng.json b/locale/nn/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/nn/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-selector.json b/locale/nn/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/nn/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-setup.json b/locale/nn/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/nn/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-validation.json b/locale/nn/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/nn/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-web.json b/locale/nn/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/nn/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-utils-wifi.json b/locale/nn/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/nn/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/nn/freedombone-wifi.json b/locale/nn/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/nn/freedombone-wifi.json
+++ b/locale/nn/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/nn/freedombone.json
+++ b/locale/nn/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-addremove.json b/locale/no/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/no/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-adduser.json b/locale/no/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/no/freedombone-adduser.json
+++ b/locale/no/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/no/freedombone-app-blog.json b/locale/no/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/no/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-blogstatic.json b/locale/no/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/no/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-cjdns.json b/locale/no/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/no/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-dlna.json b/locale/no/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/no/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-dokuwiki.json b/locale/no/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/no/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-emacs.json b/locale/no/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/no/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-etherpad.json b/locale/no/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/no/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-gnusocial.json b/locale/no/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/no/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-gogs.json b/locale/no/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/no/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-htmly.json b/locale/no/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/no/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-hubzilla.json b/locale/no/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/no/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-ipfs.json b/locale/no/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/no/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-irc.json b/locale/no/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/no/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-jitsi.json b/locale/no/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/no/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-mediagoblin.json b/locale/no/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/no/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-mumble.json b/locale/no/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/no/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-pelican.json b/locale/no/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/no/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-pihole.json b/locale/no/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/no/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-postactiv.json b/locale/no/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/no/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-rss.json b/locale/no/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/no/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-searx.json b/locale/no/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/no/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-sip.json b/locale/no/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/no/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-syncthing.json b/locale/no/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/no/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-tahoelafs.json b/locale/no/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/no/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-tox.json b/locale/no/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/no/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-vim.json b/locale/no/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/no/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-webmail.json b/locale/no/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/no/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-wiki.json b/locale/no/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/no/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-xmpp.json b/locale/no/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/no/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-app-zeronet.json b/locale/no/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/no/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-backup-local.json b/locale/no/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/no/freedombone-backup-local.json
+++ b/locale/no/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-backup-remote.json b/locale/no/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/no/freedombone-backup-remote.json
+++ b/locale/no/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-base-chaoskey.json b/locale/no/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/no/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-base-email.json b/locale/no/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/no/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-config.json b/locale/no/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/no/freedombone-config.json
+++ b/locale/no/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/no/freedombone-controlpanel-user.json b/locale/no/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/no/freedombone-controlpanel-user.json
+++ b/locale/no/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/no/freedombone-controlpanel.json b/locale/no/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/no/freedombone-controlpanel.json
+++ b/locale/no/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/no/freedombone-image-customise.json b/locale/no/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/no/freedombone-image-customise.json
+++ b/locale/no/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/no/freedombone-image-mesh.json b/locale/no/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/no/freedombone-image-mesh.json
+++ b/locale/no/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-image.json b/locale/no/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/no/freedombone-image.json
+++ b/locale/no/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-keydrive.json b/locale/no/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/no/freedombone-keydrive.json
+++ b/locale/no/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/no/freedombone-mesh-batman.json b/locale/no/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/no/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-mesh-blog.json b/locale/no/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/no/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-mesh-install.json b/locale/no/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/no/freedombone-mesh-install.json
+++ b/locale/no/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-mesh-reset.json b/locale/no/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/no/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-mesh-visit-site.json b/locale/no/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/no/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-mirrors.json b/locale/no/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/no/freedombone-mirrors.json
+++ b/locale/no/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-pin-cert.json b/locale/no/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/no/freedombone-pin-cert.json
+++ b/locale/no/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-recoverkey.json b/locale/no/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/no/freedombone-recoverkey.json
+++ b/locale/no/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/no/freedombone-restore-local.json b/locale/no/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/no/freedombone-restore-local.json
+++ b/locale/no/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/no/freedombone-restore-remote.json b/locale/no/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/no/freedombone-restore-remote.json
+++ b/locale/no/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-rmuser.json b/locale/no/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/no/freedombone-rmuser.json
+++ b/locale/no/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-sec.json b/locale/no/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/no/freedombone-sec.json
+++ b/locale/no/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/no/freedombone-tests.json b/locale/no/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/no/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-update-date.json b/locale/no/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/no/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/no/freedombone-update-date.mo b/locale/no/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/no/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/no/freedombone-utils-backup.json b/locale/no/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/no/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/no/freedombone-utils-config.json b/locale/no/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/no/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-database.json b/locale/no/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/no/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-depends.json b/locale/no/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/no/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-final.json b/locale/no/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/no/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-git.json b/locale/no/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/no/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-help.json b/locale/no/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/no/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-interactive.json b/locale/no/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/no/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-keys.json b/locale/no/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/no/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-onion.json b/locale/no/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/no/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-rng.json b/locale/no/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/no/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-selector.json b/locale/no/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/no/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-setup.json b/locale/no/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/no/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-validation.json b/locale/no/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/no/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-web.json b/locale/no/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/no/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-utils-wifi.json b/locale/no/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/no/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/no/freedombone-wifi.json b/locale/no/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/no/freedombone-wifi.json
+++ b/locale/no/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/no/freedombone.json
+++ b/locale/no/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-addremove.json b/locale/no_gr/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/no_gr/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-adduser.json b/locale/no_gr/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/no_gr/freedombone-adduser.json
+++ b/locale/no_gr/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/no_gr/freedombone-app-blog.json b/locale/no_gr/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/no_gr/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-blogstatic.json b/locale/no_gr/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/no_gr/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-cjdns.json b/locale/no_gr/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/no_gr/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-dlna.json b/locale/no_gr/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/no_gr/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-dokuwiki.json b/locale/no_gr/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/no_gr/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-emacs.json b/locale/no_gr/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/no_gr/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-etherpad.json b/locale/no_gr/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/no_gr/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-gnusocial.json b/locale/no_gr/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/no_gr/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-gogs.json b/locale/no_gr/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/no_gr/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-htmly.json b/locale/no_gr/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/no_gr/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-hubzilla.json b/locale/no_gr/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/no_gr/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-ipfs.json b/locale/no_gr/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/no_gr/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-irc.json b/locale/no_gr/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/no_gr/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-jitsi.json b/locale/no_gr/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/no_gr/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-mediagoblin.json b/locale/no_gr/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/no_gr/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-mumble.json b/locale/no_gr/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/no_gr/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-pelican.json b/locale/no_gr/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/no_gr/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-pihole.json b/locale/no_gr/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/no_gr/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-postactiv.json b/locale/no_gr/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/no_gr/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-rss.json b/locale/no_gr/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/no_gr/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-searx.json b/locale/no_gr/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/no_gr/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-sip.json b/locale/no_gr/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/no_gr/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-syncthing.json b/locale/no_gr/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/no_gr/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-tahoelafs.json b/locale/no_gr/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/no_gr/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-tox.json b/locale/no_gr/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/no_gr/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-vim.json b/locale/no_gr/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/no_gr/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-webmail.json b/locale/no_gr/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/no_gr/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-wiki.json b/locale/no_gr/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/no_gr/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-xmpp.json b/locale/no_gr/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/no_gr/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-app-zeronet.json b/locale/no_gr/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/no_gr/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-backup-local.json b/locale/no_gr/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/no_gr/freedombone-backup-local.json
+++ b/locale/no_gr/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-backup-remote.json b/locale/no_gr/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/no_gr/freedombone-backup-remote.json
+++ b/locale/no_gr/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-base-chaoskey.json b/locale/no_gr/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/no_gr/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-base-email.json b/locale/no_gr/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/no_gr/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-config.json b/locale/no_gr/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/no_gr/freedombone-config.json
+++ b/locale/no_gr/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/no_gr/freedombone-controlpanel-user.json b/locale/no_gr/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/no_gr/freedombone-controlpanel-user.json
+++ b/locale/no_gr/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/no_gr/freedombone-controlpanel.json b/locale/no_gr/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/no_gr/freedombone-controlpanel.json
+++ b/locale/no_gr/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/no_gr/freedombone-image-customise.json b/locale/no_gr/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/no_gr/freedombone-image-customise.json
+++ b/locale/no_gr/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/no_gr/freedombone-image-mesh.json b/locale/no_gr/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/no_gr/freedombone-image-mesh.json
+++ b/locale/no_gr/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-image.json b/locale/no_gr/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/no_gr/freedombone-image.json
+++ b/locale/no_gr/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-keydrive.json b/locale/no_gr/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/no_gr/freedombone-keydrive.json
+++ b/locale/no_gr/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/no_gr/freedombone-mesh-batman.json b/locale/no_gr/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/no_gr/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-mesh-blog.json b/locale/no_gr/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/no_gr/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-mesh-install.json b/locale/no_gr/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/no_gr/freedombone-mesh-install.json
+++ b/locale/no_gr/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-mesh-reset.json b/locale/no_gr/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/no_gr/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-mesh-visit-site.json b/locale/no_gr/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/no_gr/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-mirrors.json b/locale/no_gr/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/no_gr/freedombone-mirrors.json
+++ b/locale/no_gr/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-pin-cert.json b/locale/no_gr/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/no_gr/freedombone-pin-cert.json
+++ b/locale/no_gr/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-recoverkey.json b/locale/no_gr/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/no_gr/freedombone-recoverkey.json
+++ b/locale/no_gr/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/no_gr/freedombone-restore-local.json b/locale/no_gr/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/no_gr/freedombone-restore-local.json
+++ b/locale/no_gr/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/no_gr/freedombone-restore-remote.json b/locale/no_gr/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/no_gr/freedombone-restore-remote.json
+++ b/locale/no_gr/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-rmuser.json b/locale/no_gr/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/no_gr/freedombone-rmuser.json
+++ b/locale/no_gr/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-sec.json b/locale/no_gr/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/no_gr/freedombone-sec.json
+++ b/locale/no_gr/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-tests.json b/locale/no_gr/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/no_gr/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-update-date.json b/locale/no_gr/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/no_gr/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-update-date.mo b/locale/no_gr/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/no_gr/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/no_gr/freedombone-utils-backup.json b/locale/no_gr/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/no_gr/freedombone-utils-config.json b/locale/no_gr/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-database.json b/locale/no_gr/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-depends.json b/locale/no_gr/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-final.json b/locale/no_gr/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-git.json b/locale/no_gr/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-help.json b/locale/no_gr/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-interactive.json b/locale/no_gr/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-keys.json b/locale/no_gr/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-onion.json b/locale/no_gr/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-rng.json b/locale/no_gr/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-selector.json b/locale/no_gr/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-setup.json b/locale/no_gr/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-validation.json b/locale/no_gr/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-web.json b/locale/no_gr/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-utils-wifi.json b/locale/no_gr/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/no_gr/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/no_gr/freedombone-wifi.json b/locale/no_gr/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/no_gr/freedombone-wifi.json
+++ b/locale/no_gr/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/no_gr/freedombone.json
+++ b/locale/no_gr/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-addremove.json b/locale/pl/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/pl/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-adduser.json b/locale/pl/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/pl/freedombone-adduser.json
+++ b/locale/pl/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/pl/freedombone-app-blog.json b/locale/pl/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/pl/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-blogstatic.json b/locale/pl/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/pl/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-cjdns.json b/locale/pl/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/pl/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-dlna.json b/locale/pl/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/pl/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-dokuwiki.json b/locale/pl/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/pl/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-emacs.json b/locale/pl/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/pl/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-etherpad.json b/locale/pl/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/pl/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-gnusocial.json b/locale/pl/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/pl/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-gogs.json b/locale/pl/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/pl/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-htmly.json b/locale/pl/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/pl/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-hubzilla.json b/locale/pl/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/pl/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-ipfs.json b/locale/pl/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/pl/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-irc.json b/locale/pl/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/pl/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-jitsi.json b/locale/pl/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/pl/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-mediagoblin.json b/locale/pl/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/pl/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-mumble.json b/locale/pl/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/pl/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-pelican.json b/locale/pl/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/pl/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-pihole.json b/locale/pl/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/pl/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-postactiv.json b/locale/pl/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/pl/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-rss.json b/locale/pl/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/pl/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-searx.json b/locale/pl/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/pl/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-sip.json b/locale/pl/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/pl/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-syncthing.json b/locale/pl/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/pl/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-tahoelafs.json b/locale/pl/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/pl/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-tox.json b/locale/pl/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/pl/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-vim.json b/locale/pl/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/pl/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-webmail.json b/locale/pl/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/pl/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-wiki.json b/locale/pl/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/pl/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-xmpp.json b/locale/pl/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/pl/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-app-zeronet.json b/locale/pl/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/pl/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-backup-local.json b/locale/pl/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/pl/freedombone-backup-local.json
+++ b/locale/pl/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-backup-remote.json b/locale/pl/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/pl/freedombone-backup-remote.json
+++ b/locale/pl/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-base-chaoskey.json b/locale/pl/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/pl/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-base-email.json b/locale/pl/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/pl/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-config.json b/locale/pl/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/pl/freedombone-config.json
+++ b/locale/pl/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/pl/freedombone-controlpanel-user.json b/locale/pl/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/pl/freedombone-controlpanel-user.json
+++ b/locale/pl/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/pl/freedombone-controlpanel.json b/locale/pl/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/pl/freedombone-controlpanel.json
+++ b/locale/pl/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/pl/freedombone-image-customise.json b/locale/pl/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/pl/freedombone-image-customise.json
+++ b/locale/pl/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/pl/freedombone-image-mesh.json b/locale/pl/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/pl/freedombone-image-mesh.json
+++ b/locale/pl/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-image.json b/locale/pl/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/pl/freedombone-image.json
+++ b/locale/pl/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-keydrive.json b/locale/pl/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/pl/freedombone-keydrive.json
+++ b/locale/pl/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/pl/freedombone-mesh-batman.json b/locale/pl/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/pl/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-mesh-blog.json b/locale/pl/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/pl/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-mesh-install.json b/locale/pl/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/pl/freedombone-mesh-install.json
+++ b/locale/pl/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-mesh-reset.json b/locale/pl/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/pl/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-mesh-visit-site.json b/locale/pl/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/pl/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-mirrors.json b/locale/pl/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/pl/freedombone-mirrors.json
+++ b/locale/pl/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-pin-cert.json b/locale/pl/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/pl/freedombone-pin-cert.json
+++ b/locale/pl/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-recoverkey.json b/locale/pl/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/pl/freedombone-recoverkey.json
+++ b/locale/pl/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/pl/freedombone-restore-local.json b/locale/pl/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/pl/freedombone-restore-local.json
+++ b/locale/pl/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/pl/freedombone-restore-remote.json b/locale/pl/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/pl/freedombone-restore-remote.json
+++ b/locale/pl/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-rmuser.json b/locale/pl/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/pl/freedombone-rmuser.json
+++ b/locale/pl/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-sec.json b/locale/pl/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/pl/freedombone-sec.json
+++ b/locale/pl/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/pl/freedombone-tests.json b/locale/pl/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/pl/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-update-date.json b/locale/pl/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/pl/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/pl/freedombone-update-date.mo b/locale/pl/freedombone-update-date.mo
deleted file mode 100644
index a760f53c..00000000
Binary files a/locale/pl/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/pl/freedombone-utils-backup.json b/locale/pl/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/pl/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/pl/freedombone-utils-config.json b/locale/pl/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/pl/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-database.json b/locale/pl/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/pl/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-depends.json b/locale/pl/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/pl/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-final.json b/locale/pl/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/pl/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-git.json b/locale/pl/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/pl/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-help.json b/locale/pl/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/pl/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-interactive.json b/locale/pl/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/pl/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-keys.json b/locale/pl/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/pl/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-onion.json b/locale/pl/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/pl/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-rng.json b/locale/pl/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/pl/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-selector.json b/locale/pl/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/pl/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-setup.json b/locale/pl/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/pl/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-validation.json b/locale/pl/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/pl/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-web.json b/locale/pl/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/pl/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-utils-wifi.json b/locale/pl/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/pl/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/pl/freedombone-wifi.json b/locale/pl/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/pl/freedombone-wifi.json
+++ b/locale/pl/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/pl/freedombone.json
+++ b/locale/pl/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-addremove.json b/locale/pt/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/pt/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-adduser.json b/locale/pt/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/pt/freedombone-adduser.json
+++ b/locale/pt/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/pt/freedombone-app-blog.json b/locale/pt/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/pt/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-blogstatic.json b/locale/pt/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/pt/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-cjdns.json b/locale/pt/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/pt/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-dlna.json b/locale/pt/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/pt/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-dokuwiki.json b/locale/pt/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/pt/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-emacs.json b/locale/pt/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/pt/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-etherpad.json b/locale/pt/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/pt/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-gnusocial.json b/locale/pt/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/pt/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-gogs.json b/locale/pt/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/pt/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-htmly.json b/locale/pt/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/pt/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-hubzilla.json b/locale/pt/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/pt/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-ipfs.json b/locale/pt/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/pt/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-irc.json b/locale/pt/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/pt/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-jitsi.json b/locale/pt/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/pt/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-mediagoblin.json b/locale/pt/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/pt/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-mumble.json b/locale/pt/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/pt/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-pelican.json b/locale/pt/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/pt/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-pihole.json b/locale/pt/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/pt/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-postactiv.json b/locale/pt/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/pt/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-rss.json b/locale/pt/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/pt/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-searx.json b/locale/pt/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/pt/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-sip.json b/locale/pt/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/pt/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-syncthing.json b/locale/pt/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/pt/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-tahoelafs.json b/locale/pt/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/pt/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-tox.json b/locale/pt/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/pt/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-vim.json b/locale/pt/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/pt/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-webmail.json b/locale/pt/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/pt/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-wiki.json b/locale/pt/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/pt/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-xmpp.json b/locale/pt/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/pt/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-app-zeronet.json b/locale/pt/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/pt/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-backup-local.json b/locale/pt/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/pt/freedombone-backup-local.json
+++ b/locale/pt/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-backup-remote.json b/locale/pt/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/pt/freedombone-backup-remote.json
+++ b/locale/pt/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-base-chaoskey.json b/locale/pt/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/pt/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-base-email.json b/locale/pt/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/pt/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-config.json b/locale/pt/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/pt/freedombone-config.json
+++ b/locale/pt/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/pt/freedombone-controlpanel-user.json b/locale/pt/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/pt/freedombone-controlpanel-user.json
+++ b/locale/pt/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/pt/freedombone-controlpanel.json b/locale/pt/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/pt/freedombone-controlpanel.json
+++ b/locale/pt/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/pt/freedombone-image-customise.json b/locale/pt/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/pt/freedombone-image-customise.json
+++ b/locale/pt/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/pt/freedombone-image-mesh.json b/locale/pt/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/pt/freedombone-image-mesh.json
+++ b/locale/pt/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-image.json b/locale/pt/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/pt/freedombone-image.json
+++ b/locale/pt/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-keydrive.json b/locale/pt/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/pt/freedombone-keydrive.json
+++ b/locale/pt/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/pt/freedombone-mesh-batman.json b/locale/pt/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/pt/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-mesh-blog.json b/locale/pt/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/pt/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-mesh-install.json b/locale/pt/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/pt/freedombone-mesh-install.json
+++ b/locale/pt/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-mesh-reset.json b/locale/pt/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/pt/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-mesh-visit-site.json b/locale/pt/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/pt/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-mirrors.json b/locale/pt/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/pt/freedombone-mirrors.json
+++ b/locale/pt/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-pin-cert.json b/locale/pt/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/pt/freedombone-pin-cert.json
+++ b/locale/pt/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-recoverkey.json b/locale/pt/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/pt/freedombone-recoverkey.json
+++ b/locale/pt/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/pt/freedombone-restore-local.json b/locale/pt/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/pt/freedombone-restore-local.json
+++ b/locale/pt/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/pt/freedombone-restore-remote.json b/locale/pt/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/pt/freedombone-restore-remote.json
+++ b/locale/pt/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-rmuser.json b/locale/pt/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/pt/freedombone-rmuser.json
+++ b/locale/pt/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-sec.json b/locale/pt/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/pt/freedombone-sec.json
+++ b/locale/pt/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/pt/freedombone-tests.json b/locale/pt/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/pt/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-update-date.json b/locale/pt/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/pt/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/pt/freedombone-update-date.mo b/locale/pt/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/pt/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/pt/freedombone-utils-backup.json b/locale/pt/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/pt/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/pt/freedombone-utils-config.json b/locale/pt/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/pt/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-database.json b/locale/pt/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/pt/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-depends.json b/locale/pt/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/pt/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-final.json b/locale/pt/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/pt/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-git.json b/locale/pt/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/pt/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-help.json b/locale/pt/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/pt/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-interactive.json b/locale/pt/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/pt/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-keys.json b/locale/pt/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/pt/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-onion.json b/locale/pt/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/pt/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-rng.json b/locale/pt/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/pt/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-selector.json b/locale/pt/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/pt/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-setup.json b/locale/pt/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/pt/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-validation.json b/locale/pt/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/pt/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-web.json b/locale/pt/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/pt/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-utils-wifi.json b/locale/pt/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/pt/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/pt/freedombone-wifi.json b/locale/pt/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/pt/freedombone-wifi.json
+++ b/locale/pt/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/pt/freedombone.json
+++ b/locale/pt/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-addremove.json b/locale/pt_br/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/pt_br/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-adduser.json b/locale/pt_br/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/pt_br/freedombone-adduser.json
+++ b/locale/pt_br/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/pt_br/freedombone-app-blog.json b/locale/pt_br/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/pt_br/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-blogstatic.json b/locale/pt_br/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/pt_br/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-cjdns.json b/locale/pt_br/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/pt_br/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-dlna.json b/locale/pt_br/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/pt_br/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-dokuwiki.json b/locale/pt_br/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/pt_br/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-emacs.json b/locale/pt_br/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/pt_br/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-etherpad.json b/locale/pt_br/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/pt_br/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-gnusocial.json b/locale/pt_br/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/pt_br/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-gogs.json b/locale/pt_br/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/pt_br/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-htmly.json b/locale/pt_br/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/pt_br/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-hubzilla.json b/locale/pt_br/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/pt_br/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-ipfs.json b/locale/pt_br/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/pt_br/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-irc.json b/locale/pt_br/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/pt_br/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-jitsi.json b/locale/pt_br/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/pt_br/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-mediagoblin.json b/locale/pt_br/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/pt_br/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-mumble.json b/locale/pt_br/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/pt_br/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-pelican.json b/locale/pt_br/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/pt_br/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-pihole.json b/locale/pt_br/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/pt_br/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-postactiv.json b/locale/pt_br/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/pt_br/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-rss.json b/locale/pt_br/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/pt_br/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-searx.json b/locale/pt_br/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/pt_br/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-sip.json b/locale/pt_br/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/pt_br/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-syncthing.json b/locale/pt_br/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/pt_br/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-tahoelafs.json b/locale/pt_br/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/pt_br/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-tox.json b/locale/pt_br/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/pt_br/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-vim.json b/locale/pt_br/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/pt_br/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-webmail.json b/locale/pt_br/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/pt_br/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-wiki.json b/locale/pt_br/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/pt_br/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-xmpp.json b/locale/pt_br/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/pt_br/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-app-zeronet.json b/locale/pt_br/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/pt_br/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-backup-local.json b/locale/pt_br/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/pt_br/freedombone-backup-local.json
+++ b/locale/pt_br/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-backup-remote.json b/locale/pt_br/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/pt_br/freedombone-backup-remote.json
+++ b/locale/pt_br/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-base-chaoskey.json b/locale/pt_br/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/pt_br/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-base-email.json b/locale/pt_br/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/pt_br/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-config.json b/locale/pt_br/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/pt_br/freedombone-config.json
+++ b/locale/pt_br/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/pt_br/freedombone-controlpanel-user.json b/locale/pt_br/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/pt_br/freedombone-controlpanel-user.json
+++ b/locale/pt_br/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/pt_br/freedombone-controlpanel.json b/locale/pt_br/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/pt_br/freedombone-controlpanel.json
+++ b/locale/pt_br/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/pt_br/freedombone-image-customise.json b/locale/pt_br/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/pt_br/freedombone-image-customise.json
+++ b/locale/pt_br/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/pt_br/freedombone-image-mesh.json b/locale/pt_br/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/pt_br/freedombone-image-mesh.json
+++ b/locale/pt_br/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-image.json b/locale/pt_br/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/pt_br/freedombone-image.json
+++ b/locale/pt_br/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-keydrive.json b/locale/pt_br/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/pt_br/freedombone-keydrive.json
+++ b/locale/pt_br/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/pt_br/freedombone-mesh-batman.json b/locale/pt_br/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/pt_br/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-mesh-blog.json b/locale/pt_br/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/pt_br/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-mesh-install.json b/locale/pt_br/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/pt_br/freedombone-mesh-install.json
+++ b/locale/pt_br/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-mesh-reset.json b/locale/pt_br/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/pt_br/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-mesh-visit-site.json b/locale/pt_br/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/pt_br/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-mirrors.json b/locale/pt_br/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/pt_br/freedombone-mirrors.json
+++ b/locale/pt_br/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-pin-cert.json b/locale/pt_br/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/pt_br/freedombone-pin-cert.json
+++ b/locale/pt_br/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-recoverkey.json b/locale/pt_br/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/pt_br/freedombone-recoverkey.json
+++ b/locale/pt_br/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/pt_br/freedombone-restore-local.json b/locale/pt_br/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/pt_br/freedombone-restore-local.json
+++ b/locale/pt_br/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/pt_br/freedombone-restore-remote.json b/locale/pt_br/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/pt_br/freedombone-restore-remote.json
+++ b/locale/pt_br/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-rmuser.json b/locale/pt_br/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/pt_br/freedombone-rmuser.json
+++ b/locale/pt_br/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-sec.json b/locale/pt_br/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/pt_br/freedombone-sec.json
+++ b/locale/pt_br/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-tests.json b/locale/pt_br/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/pt_br/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-update-date.json b/locale/pt_br/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/pt_br/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-update-date.mo b/locale/pt_br/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/pt_br/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/pt_br/freedombone-utils-backup.json b/locale/pt_br/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/pt_br/freedombone-utils-config.json b/locale/pt_br/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-database.json b/locale/pt_br/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-depends.json b/locale/pt_br/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-final.json b/locale/pt_br/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-git.json b/locale/pt_br/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-help.json b/locale/pt_br/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-interactive.json b/locale/pt_br/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-keys.json b/locale/pt_br/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-onion.json b/locale/pt_br/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-rng.json b/locale/pt_br/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-selector.json b/locale/pt_br/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-setup.json b/locale/pt_br/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-validation.json b/locale/pt_br/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-web.json b/locale/pt_br/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-utils-wifi.json b/locale/pt_br/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/pt_br/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/pt_br/freedombone-wifi.json b/locale/pt_br/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/pt_br/freedombone-wifi.json
+++ b/locale/pt_br/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/pt_br/freedombone.json
+++ b/locale/pt_br/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-addremove.json b/locale/ro/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ro/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-adduser.json b/locale/ro/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ro/freedombone-adduser.json
+++ b/locale/ro/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ro/freedombone-app-blog.json b/locale/ro/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ro/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-blogstatic.json b/locale/ro/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ro/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-cjdns.json b/locale/ro/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ro/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-dlna.json b/locale/ro/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ro/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-dokuwiki.json b/locale/ro/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ro/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-emacs.json b/locale/ro/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ro/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-etherpad.json b/locale/ro/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ro/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-gnusocial.json b/locale/ro/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ro/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-gogs.json b/locale/ro/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ro/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-htmly.json b/locale/ro/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ro/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-hubzilla.json b/locale/ro/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ro/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-ipfs.json b/locale/ro/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ro/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-irc.json b/locale/ro/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ro/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-jitsi.json b/locale/ro/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ro/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-mediagoblin.json b/locale/ro/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ro/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-mumble.json b/locale/ro/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ro/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-pelican.json b/locale/ro/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ro/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-pihole.json b/locale/ro/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ro/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-postactiv.json b/locale/ro/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ro/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-rss.json b/locale/ro/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ro/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-searx.json b/locale/ro/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ro/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-sip.json b/locale/ro/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ro/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-syncthing.json b/locale/ro/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ro/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-tahoelafs.json b/locale/ro/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ro/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-tox.json b/locale/ro/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ro/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-vim.json b/locale/ro/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ro/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-webmail.json b/locale/ro/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ro/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-wiki.json b/locale/ro/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ro/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-xmpp.json b/locale/ro/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ro/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-app-zeronet.json b/locale/ro/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ro/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-backup-local.json b/locale/ro/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ro/freedombone-backup-local.json
+++ b/locale/ro/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-backup-remote.json b/locale/ro/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ro/freedombone-backup-remote.json
+++ b/locale/ro/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-base-chaoskey.json b/locale/ro/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ro/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-base-email.json b/locale/ro/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ro/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-config.json b/locale/ro/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ro/freedombone-config.json
+++ b/locale/ro/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ro/freedombone-controlpanel-user.json b/locale/ro/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ro/freedombone-controlpanel-user.json
+++ b/locale/ro/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ro/freedombone-controlpanel.json b/locale/ro/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ro/freedombone-controlpanel.json
+++ b/locale/ro/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ro/freedombone-image-customise.json b/locale/ro/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ro/freedombone-image-customise.json
+++ b/locale/ro/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ro/freedombone-image-mesh.json b/locale/ro/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ro/freedombone-image-mesh.json
+++ b/locale/ro/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-image.json b/locale/ro/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ro/freedombone-image.json
+++ b/locale/ro/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-keydrive.json b/locale/ro/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ro/freedombone-keydrive.json
+++ b/locale/ro/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ro/freedombone-mesh-batman.json b/locale/ro/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ro/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-mesh-blog.json b/locale/ro/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ro/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-mesh-install.json b/locale/ro/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ro/freedombone-mesh-install.json
+++ b/locale/ro/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-mesh-reset.json b/locale/ro/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ro/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-mesh-visit-site.json b/locale/ro/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ro/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-mirrors.json b/locale/ro/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ro/freedombone-mirrors.json
+++ b/locale/ro/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-pin-cert.json b/locale/ro/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ro/freedombone-pin-cert.json
+++ b/locale/ro/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-recoverkey.json b/locale/ro/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ro/freedombone-recoverkey.json
+++ b/locale/ro/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ro/freedombone-restore-local.json b/locale/ro/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ro/freedombone-restore-local.json
+++ b/locale/ro/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ro/freedombone-restore-remote.json b/locale/ro/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ro/freedombone-restore-remote.json
+++ b/locale/ro/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-rmuser.json b/locale/ro/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ro/freedombone-rmuser.json
+++ b/locale/ro/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-sec.json b/locale/ro/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ro/freedombone-sec.json
+++ b/locale/ro/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ro/freedombone-tests.json b/locale/ro/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ro/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-update-date.json b/locale/ro/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ro/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ro/freedombone-update-date.mo b/locale/ro/freedombone-update-date.mo
deleted file mode 100644
index 4f88cead..00000000
Binary files a/locale/ro/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ro/freedombone-utils-backup.json b/locale/ro/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ro/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ro/freedombone-utils-config.json b/locale/ro/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ro/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-database.json b/locale/ro/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ro/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-depends.json b/locale/ro/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ro/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-final.json b/locale/ro/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ro/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-git.json b/locale/ro/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ro/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-help.json b/locale/ro/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ro/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-interactive.json b/locale/ro/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ro/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-keys.json b/locale/ro/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ro/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-onion.json b/locale/ro/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ro/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-rng.json b/locale/ro/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ro/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-selector.json b/locale/ro/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ro/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-setup.json b/locale/ro/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ro/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-validation.json b/locale/ro/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ro/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-web.json b/locale/ro/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ro/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-utils-wifi.json b/locale/ro/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ro/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ro/freedombone-wifi.json b/locale/ro/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ro/freedombone-wifi.json
+++ b/locale/ro/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ro/freedombone.json
+++ b/locale/ro/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-addremove.json b/locale/ru/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ru/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-adduser.json b/locale/ru/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ru/freedombone-adduser.json
+++ b/locale/ru/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ru/freedombone-app-blog.json b/locale/ru/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ru/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-blogstatic.json b/locale/ru/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ru/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-cjdns.json b/locale/ru/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ru/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-dlna.json b/locale/ru/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ru/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-dokuwiki.json b/locale/ru/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ru/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-emacs.json b/locale/ru/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ru/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-etherpad.json b/locale/ru/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ru/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-gnusocial.json b/locale/ru/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ru/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-gogs.json b/locale/ru/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ru/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-htmly.json b/locale/ru/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ru/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-hubzilla.json b/locale/ru/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ru/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-ipfs.json b/locale/ru/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ru/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-irc.json b/locale/ru/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ru/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-jitsi.json b/locale/ru/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ru/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-mediagoblin.json b/locale/ru/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ru/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-mumble.json b/locale/ru/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ru/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-pelican.json b/locale/ru/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ru/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-pihole.json b/locale/ru/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ru/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-postactiv.json b/locale/ru/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ru/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-rss.json b/locale/ru/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ru/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-searx.json b/locale/ru/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ru/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-sip.json b/locale/ru/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ru/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-syncthing.json b/locale/ru/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ru/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-tahoelafs.json b/locale/ru/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ru/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-tox.json b/locale/ru/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ru/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-vim.json b/locale/ru/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ru/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-webmail.json b/locale/ru/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ru/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-wiki.json b/locale/ru/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ru/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-xmpp.json b/locale/ru/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ru/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-app-zeronet.json b/locale/ru/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ru/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-backup-local.json b/locale/ru/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ru/freedombone-backup-local.json
+++ b/locale/ru/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-backup-remote.json b/locale/ru/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ru/freedombone-backup-remote.json
+++ b/locale/ru/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-base-chaoskey.json b/locale/ru/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ru/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-base-email.json b/locale/ru/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ru/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-config.json b/locale/ru/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ru/freedombone-config.json
+++ b/locale/ru/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ru/freedombone-controlpanel-user.json b/locale/ru/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ru/freedombone-controlpanel-user.json
+++ b/locale/ru/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ru/freedombone-controlpanel.json b/locale/ru/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ru/freedombone-controlpanel.json
+++ b/locale/ru/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ru/freedombone-image-customise.json b/locale/ru/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ru/freedombone-image-customise.json
+++ b/locale/ru/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ru/freedombone-image-mesh.json b/locale/ru/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ru/freedombone-image-mesh.json
+++ b/locale/ru/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-image.json b/locale/ru/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ru/freedombone-image.json
+++ b/locale/ru/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-keydrive.json b/locale/ru/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ru/freedombone-keydrive.json
+++ b/locale/ru/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ru/freedombone-mesh-batman.json b/locale/ru/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ru/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-mesh-blog.json b/locale/ru/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ru/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-mesh-install.json b/locale/ru/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ru/freedombone-mesh-install.json
+++ b/locale/ru/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-mesh-reset.json b/locale/ru/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ru/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-mesh-visit-site.json b/locale/ru/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ru/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-mirrors.json b/locale/ru/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ru/freedombone-mirrors.json
+++ b/locale/ru/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-pin-cert.json b/locale/ru/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ru/freedombone-pin-cert.json
+++ b/locale/ru/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-recoverkey.json b/locale/ru/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ru/freedombone-recoverkey.json
+++ b/locale/ru/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ru/freedombone-restore-local.json b/locale/ru/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ru/freedombone-restore-local.json
+++ b/locale/ru/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ru/freedombone-restore-remote.json b/locale/ru/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ru/freedombone-restore-remote.json
+++ b/locale/ru/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-rmuser.json b/locale/ru/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ru/freedombone-rmuser.json
+++ b/locale/ru/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-sec.json b/locale/ru/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ru/freedombone-sec.json
+++ b/locale/ru/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ru/freedombone-tests.json b/locale/ru/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ru/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-update-date.json b/locale/ru/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ru/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ru/freedombone-update-date.mo b/locale/ru/freedombone-update-date.mo
deleted file mode 100644
index 8cc55eca..00000000
Binary files a/locale/ru/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ru/freedombone-utils-backup.json b/locale/ru/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ru/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ru/freedombone-utils-config.json b/locale/ru/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ru/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-database.json b/locale/ru/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ru/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-depends.json b/locale/ru/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ru/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-final.json b/locale/ru/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ru/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-git.json b/locale/ru/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ru/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-help.json b/locale/ru/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ru/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-interactive.json b/locale/ru/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ru/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-keys.json b/locale/ru/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ru/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-onion.json b/locale/ru/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ru/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-rng.json b/locale/ru/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ru/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-selector.json b/locale/ru/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ru/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-setup.json b/locale/ru/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ru/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-validation.json b/locale/ru/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ru/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-web.json b/locale/ru/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ru/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-utils-wifi.json b/locale/ru/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ru/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ru/freedombone-wifi.json b/locale/ru/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ru/freedombone-wifi.json
+++ b/locale/ru/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ru/freedombone.json
+++ b/locale/ru/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-addremove.json b/locale/sk/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/sk/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-adduser.json b/locale/sk/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/sk/freedombone-adduser.json
+++ b/locale/sk/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/sk/freedombone-app-blog.json b/locale/sk/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/sk/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-blogstatic.json b/locale/sk/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sk/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-cjdns.json b/locale/sk/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/sk/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-dlna.json b/locale/sk/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/sk/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-dokuwiki.json b/locale/sk/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/sk/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-emacs.json b/locale/sk/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/sk/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-etherpad.json b/locale/sk/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/sk/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-gnusocial.json b/locale/sk/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/sk/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-gogs.json b/locale/sk/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/sk/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-htmly.json b/locale/sk/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/sk/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-hubzilla.json b/locale/sk/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/sk/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-ipfs.json b/locale/sk/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/sk/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-irc.json b/locale/sk/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/sk/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-jitsi.json b/locale/sk/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/sk/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-mediagoblin.json b/locale/sk/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/sk/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-mumble.json b/locale/sk/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/sk/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-pelican.json b/locale/sk/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sk/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-pihole.json b/locale/sk/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/sk/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-postactiv.json b/locale/sk/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/sk/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-rss.json b/locale/sk/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/sk/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-searx.json b/locale/sk/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/sk/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-sip.json b/locale/sk/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/sk/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-syncthing.json b/locale/sk/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/sk/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-tahoelafs.json b/locale/sk/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/sk/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-tox.json b/locale/sk/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/sk/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-vim.json b/locale/sk/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/sk/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-webmail.json b/locale/sk/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/sk/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-wiki.json b/locale/sk/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/sk/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-xmpp.json b/locale/sk/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/sk/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-app-zeronet.json b/locale/sk/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/sk/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-backup-local.json b/locale/sk/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/sk/freedombone-backup-local.json
+++ b/locale/sk/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-backup-remote.json b/locale/sk/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/sk/freedombone-backup-remote.json
+++ b/locale/sk/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-base-chaoskey.json b/locale/sk/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/sk/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-base-email.json b/locale/sk/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/sk/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-config.json b/locale/sk/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/sk/freedombone-config.json
+++ b/locale/sk/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/sk/freedombone-controlpanel-user.json b/locale/sk/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/sk/freedombone-controlpanel-user.json
+++ b/locale/sk/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/sk/freedombone-controlpanel.json b/locale/sk/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/sk/freedombone-controlpanel.json
+++ b/locale/sk/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/sk/freedombone-image-customise.json b/locale/sk/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/sk/freedombone-image-customise.json
+++ b/locale/sk/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/sk/freedombone-image-mesh.json b/locale/sk/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/sk/freedombone-image-mesh.json
+++ b/locale/sk/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-image.json b/locale/sk/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/sk/freedombone-image.json
+++ b/locale/sk/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-keydrive.json b/locale/sk/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/sk/freedombone-keydrive.json
+++ b/locale/sk/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/sk/freedombone-mesh-batman.json b/locale/sk/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/sk/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-mesh-blog.json b/locale/sk/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/sk/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-mesh-install.json b/locale/sk/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/sk/freedombone-mesh-install.json
+++ b/locale/sk/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-mesh-reset.json b/locale/sk/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/sk/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-mesh-visit-site.json b/locale/sk/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/sk/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-mirrors.json b/locale/sk/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/sk/freedombone-mirrors.json
+++ b/locale/sk/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-pin-cert.json b/locale/sk/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/sk/freedombone-pin-cert.json
+++ b/locale/sk/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-recoverkey.json b/locale/sk/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/sk/freedombone-recoverkey.json
+++ b/locale/sk/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/sk/freedombone-restore-local.json b/locale/sk/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/sk/freedombone-restore-local.json
+++ b/locale/sk/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/sk/freedombone-restore-remote.json b/locale/sk/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/sk/freedombone-restore-remote.json
+++ b/locale/sk/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-rmuser.json b/locale/sk/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/sk/freedombone-rmuser.json
+++ b/locale/sk/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-sec.json b/locale/sk/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/sk/freedombone-sec.json
+++ b/locale/sk/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/sk/freedombone-tests.json b/locale/sk/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/sk/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-update-date.json b/locale/sk/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/sk/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/sk/freedombone-update-date.mo b/locale/sk/freedombone-update-date.mo
deleted file mode 100644
index 19953c5d..00000000
Binary files a/locale/sk/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/sk/freedombone-utils-backup.json b/locale/sk/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/sk/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/sk/freedombone-utils-config.json b/locale/sk/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/sk/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-database.json b/locale/sk/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/sk/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-depends.json b/locale/sk/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/sk/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-final.json b/locale/sk/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/sk/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-git.json b/locale/sk/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/sk/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-help.json b/locale/sk/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/sk/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-interactive.json b/locale/sk/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/sk/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-keys.json b/locale/sk/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/sk/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-onion.json b/locale/sk/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/sk/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-rng.json b/locale/sk/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/sk/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-selector.json b/locale/sk/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/sk/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-setup.json b/locale/sk/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/sk/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-validation.json b/locale/sk/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/sk/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-web.json b/locale/sk/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/sk/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-utils-wifi.json b/locale/sk/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/sk/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/sk/freedombone-wifi.json b/locale/sk/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/sk/freedombone-wifi.json
+++ b/locale/sk/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/sk/freedombone.json
+++ b/locale/sk/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-addremove.json b/locale/sl/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/sl/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-adduser.json b/locale/sl/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/sl/freedombone-adduser.json
+++ b/locale/sl/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/sl/freedombone-app-blog.json b/locale/sl/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/sl/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-blogstatic.json b/locale/sl/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sl/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-cjdns.json b/locale/sl/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/sl/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-dlna.json b/locale/sl/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/sl/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-dokuwiki.json b/locale/sl/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/sl/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-emacs.json b/locale/sl/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/sl/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-etherpad.json b/locale/sl/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/sl/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-gnusocial.json b/locale/sl/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/sl/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-gogs.json b/locale/sl/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/sl/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-htmly.json b/locale/sl/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/sl/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-hubzilla.json b/locale/sl/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/sl/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-ipfs.json b/locale/sl/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/sl/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-irc.json b/locale/sl/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/sl/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-jitsi.json b/locale/sl/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/sl/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-mediagoblin.json b/locale/sl/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/sl/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-mumble.json b/locale/sl/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/sl/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-pelican.json b/locale/sl/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sl/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-pihole.json b/locale/sl/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/sl/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-postactiv.json b/locale/sl/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/sl/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-rss.json b/locale/sl/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/sl/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-searx.json b/locale/sl/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/sl/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-sip.json b/locale/sl/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/sl/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-syncthing.json b/locale/sl/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/sl/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-tahoelafs.json b/locale/sl/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/sl/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-tox.json b/locale/sl/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/sl/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-vim.json b/locale/sl/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/sl/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-webmail.json b/locale/sl/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/sl/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-wiki.json b/locale/sl/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/sl/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-xmpp.json b/locale/sl/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/sl/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-app-zeronet.json b/locale/sl/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/sl/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-backup-local.json b/locale/sl/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/sl/freedombone-backup-local.json
+++ b/locale/sl/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-backup-remote.json b/locale/sl/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/sl/freedombone-backup-remote.json
+++ b/locale/sl/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-base-chaoskey.json b/locale/sl/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/sl/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-base-email.json b/locale/sl/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/sl/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-config.json b/locale/sl/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/sl/freedombone-config.json
+++ b/locale/sl/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/sl/freedombone-controlpanel-user.json b/locale/sl/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/sl/freedombone-controlpanel-user.json
+++ b/locale/sl/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/sl/freedombone-controlpanel.json b/locale/sl/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/sl/freedombone-controlpanel.json
+++ b/locale/sl/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/sl/freedombone-image-customise.json b/locale/sl/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/sl/freedombone-image-customise.json
+++ b/locale/sl/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/sl/freedombone-image-mesh.json b/locale/sl/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/sl/freedombone-image-mesh.json
+++ b/locale/sl/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-image.json b/locale/sl/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/sl/freedombone-image.json
+++ b/locale/sl/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-keydrive.json b/locale/sl/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/sl/freedombone-keydrive.json
+++ b/locale/sl/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/sl/freedombone-mesh-batman.json b/locale/sl/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/sl/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-mesh-blog.json b/locale/sl/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/sl/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-mesh-install.json b/locale/sl/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/sl/freedombone-mesh-install.json
+++ b/locale/sl/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-mesh-reset.json b/locale/sl/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/sl/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-mesh-visit-site.json b/locale/sl/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/sl/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-mirrors.json b/locale/sl/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/sl/freedombone-mirrors.json
+++ b/locale/sl/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-pin-cert.json b/locale/sl/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/sl/freedombone-pin-cert.json
+++ b/locale/sl/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-recoverkey.json b/locale/sl/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/sl/freedombone-recoverkey.json
+++ b/locale/sl/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/sl/freedombone-restore-local.json b/locale/sl/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/sl/freedombone-restore-local.json
+++ b/locale/sl/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/sl/freedombone-restore-remote.json b/locale/sl/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/sl/freedombone-restore-remote.json
+++ b/locale/sl/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-rmuser.json b/locale/sl/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/sl/freedombone-rmuser.json
+++ b/locale/sl/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-sec.json b/locale/sl/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/sl/freedombone-sec.json
+++ b/locale/sl/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/sl/freedombone-tests.json b/locale/sl/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/sl/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-update-date.json b/locale/sl/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/sl/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/sl/freedombone-update-date.mo b/locale/sl/freedombone-update-date.mo
deleted file mode 100644
index 70ffcbc2..00000000
Binary files a/locale/sl/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/sl/freedombone-utils-backup.json b/locale/sl/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/sl/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/sl/freedombone-utils-config.json b/locale/sl/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/sl/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-database.json b/locale/sl/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/sl/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-depends.json b/locale/sl/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/sl/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-final.json b/locale/sl/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/sl/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-git.json b/locale/sl/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/sl/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-help.json b/locale/sl/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/sl/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-interactive.json b/locale/sl/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/sl/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-keys.json b/locale/sl/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/sl/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-onion.json b/locale/sl/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/sl/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-rng.json b/locale/sl/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/sl/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-selector.json b/locale/sl/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/sl/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-setup.json b/locale/sl/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/sl/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-validation.json b/locale/sl/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/sl/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-web.json b/locale/sl/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/sl/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-utils-wifi.json b/locale/sl/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/sl/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/sl/freedombone-wifi.json b/locale/sl/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/sl/freedombone-wifi.json
+++ b/locale/sl/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/sl/freedombone.json
+++ b/locale/sl/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-addremove.json b/locale/sm/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/sm/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-adduser.json b/locale/sm/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/sm/freedombone-adduser.json
+++ b/locale/sm/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/sm/freedombone-app-blog.json b/locale/sm/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/sm/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-blogstatic.json b/locale/sm/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sm/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-cjdns.json b/locale/sm/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/sm/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-dlna.json b/locale/sm/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/sm/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-dokuwiki.json b/locale/sm/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/sm/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-emacs.json b/locale/sm/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/sm/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-etherpad.json b/locale/sm/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/sm/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-gnusocial.json b/locale/sm/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/sm/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-gogs.json b/locale/sm/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/sm/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-htmly.json b/locale/sm/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/sm/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-hubzilla.json b/locale/sm/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/sm/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-ipfs.json b/locale/sm/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/sm/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-irc.json b/locale/sm/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/sm/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-jitsi.json b/locale/sm/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/sm/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-mediagoblin.json b/locale/sm/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/sm/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-mumble.json b/locale/sm/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/sm/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-pelican.json b/locale/sm/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sm/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-pihole.json b/locale/sm/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/sm/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-postactiv.json b/locale/sm/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/sm/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-rss.json b/locale/sm/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/sm/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-searx.json b/locale/sm/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/sm/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-sip.json b/locale/sm/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/sm/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-syncthing.json b/locale/sm/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/sm/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-tahoelafs.json b/locale/sm/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/sm/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-tox.json b/locale/sm/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/sm/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-vim.json b/locale/sm/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/sm/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-webmail.json b/locale/sm/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/sm/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-wiki.json b/locale/sm/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/sm/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-xmpp.json b/locale/sm/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/sm/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-app-zeronet.json b/locale/sm/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/sm/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-backup-local.json b/locale/sm/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/sm/freedombone-backup-local.json
+++ b/locale/sm/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-backup-remote.json b/locale/sm/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/sm/freedombone-backup-remote.json
+++ b/locale/sm/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-base-chaoskey.json b/locale/sm/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/sm/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-base-email.json b/locale/sm/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/sm/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-config.json b/locale/sm/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/sm/freedombone-config.json
+++ b/locale/sm/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/sm/freedombone-controlpanel-user.json b/locale/sm/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/sm/freedombone-controlpanel-user.json
+++ b/locale/sm/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/sm/freedombone-controlpanel.json b/locale/sm/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/sm/freedombone-controlpanel.json
+++ b/locale/sm/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/sm/freedombone-image-customise.json b/locale/sm/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/sm/freedombone-image-customise.json
+++ b/locale/sm/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/sm/freedombone-image-mesh.json b/locale/sm/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/sm/freedombone-image-mesh.json
+++ b/locale/sm/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-image.json b/locale/sm/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/sm/freedombone-image.json
+++ b/locale/sm/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-keydrive.json b/locale/sm/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/sm/freedombone-keydrive.json
+++ b/locale/sm/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/sm/freedombone-mesh-batman.json b/locale/sm/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/sm/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-mesh-blog.json b/locale/sm/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/sm/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-mesh-install.json b/locale/sm/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/sm/freedombone-mesh-install.json
+++ b/locale/sm/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-mesh-reset.json b/locale/sm/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/sm/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-mesh-visit-site.json b/locale/sm/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/sm/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-mirrors.json b/locale/sm/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/sm/freedombone-mirrors.json
+++ b/locale/sm/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-pin-cert.json b/locale/sm/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/sm/freedombone-pin-cert.json
+++ b/locale/sm/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-recoverkey.json b/locale/sm/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/sm/freedombone-recoverkey.json
+++ b/locale/sm/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/sm/freedombone-restore-local.json b/locale/sm/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/sm/freedombone-restore-local.json
+++ b/locale/sm/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/sm/freedombone-restore-remote.json b/locale/sm/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/sm/freedombone-restore-remote.json
+++ b/locale/sm/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-rmuser.json b/locale/sm/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/sm/freedombone-rmuser.json
+++ b/locale/sm/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-sec.json b/locale/sm/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/sm/freedombone-sec.json
+++ b/locale/sm/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/sm/freedombone-tests.json b/locale/sm/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/sm/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-update-date.json b/locale/sm/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/sm/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/sm/freedombone-update-date.mo b/locale/sm/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/sm/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/sm/freedombone-utils-backup.json b/locale/sm/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/sm/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/sm/freedombone-utils-config.json b/locale/sm/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/sm/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-database.json b/locale/sm/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/sm/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-depends.json b/locale/sm/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/sm/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-final.json b/locale/sm/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/sm/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-git.json b/locale/sm/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/sm/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-help.json b/locale/sm/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/sm/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-interactive.json b/locale/sm/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/sm/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-keys.json b/locale/sm/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/sm/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-onion.json b/locale/sm/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/sm/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-rng.json b/locale/sm/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/sm/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-selector.json b/locale/sm/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/sm/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-setup.json b/locale/sm/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/sm/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-validation.json b/locale/sm/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/sm/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-web.json b/locale/sm/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/sm/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-utils-wifi.json b/locale/sm/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/sm/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/sm/freedombone-wifi.json b/locale/sm/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/sm/freedombone-wifi.json
+++ b/locale/sm/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/sm/freedombone.json
+++ b/locale/sm/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-addremove.json b/locale/so/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/so/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-adduser.json b/locale/so/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/so/freedombone-adduser.json
+++ b/locale/so/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/so/freedombone-app-blog.json b/locale/so/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/so/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-blogstatic.json b/locale/so/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/so/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-cjdns.json b/locale/so/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/so/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-dlna.json b/locale/so/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/so/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-dokuwiki.json b/locale/so/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/so/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-emacs.json b/locale/so/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/so/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-etherpad.json b/locale/so/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/so/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-gnusocial.json b/locale/so/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/so/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-gogs.json b/locale/so/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/so/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-htmly.json b/locale/so/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/so/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-hubzilla.json b/locale/so/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/so/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-ipfs.json b/locale/so/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/so/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-irc.json b/locale/so/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/so/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-jitsi.json b/locale/so/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/so/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-mediagoblin.json b/locale/so/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/so/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-mumble.json b/locale/so/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/so/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-pelican.json b/locale/so/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/so/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-pihole.json b/locale/so/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/so/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-postactiv.json b/locale/so/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/so/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-rss.json b/locale/so/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/so/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-searx.json b/locale/so/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/so/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-sip.json b/locale/so/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/so/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-syncthing.json b/locale/so/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/so/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-tahoelafs.json b/locale/so/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/so/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-tox.json b/locale/so/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/so/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-vim.json b/locale/so/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/so/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-webmail.json b/locale/so/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/so/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-wiki.json b/locale/so/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/so/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-xmpp.json b/locale/so/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/so/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-app-zeronet.json b/locale/so/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/so/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-backup-local.json b/locale/so/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/so/freedombone-backup-local.json
+++ b/locale/so/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-backup-remote.json b/locale/so/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/so/freedombone-backup-remote.json
+++ b/locale/so/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-base-chaoskey.json b/locale/so/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/so/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-base-email.json b/locale/so/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/so/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-config.json b/locale/so/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/so/freedombone-config.json
+++ b/locale/so/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/so/freedombone-controlpanel-user.json b/locale/so/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/so/freedombone-controlpanel-user.json
+++ b/locale/so/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/so/freedombone-controlpanel.json b/locale/so/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/so/freedombone-controlpanel.json
+++ b/locale/so/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/so/freedombone-image-customise.json b/locale/so/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/so/freedombone-image-customise.json
+++ b/locale/so/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/so/freedombone-image-mesh.json b/locale/so/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/so/freedombone-image-mesh.json
+++ b/locale/so/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-image.json b/locale/so/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/so/freedombone-image.json
+++ b/locale/so/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-keydrive.json b/locale/so/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/so/freedombone-keydrive.json
+++ b/locale/so/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/so/freedombone-mesh-batman.json b/locale/so/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/so/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-mesh-blog.json b/locale/so/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/so/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-mesh-install.json b/locale/so/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/so/freedombone-mesh-install.json
+++ b/locale/so/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-mesh-reset.json b/locale/so/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/so/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-mesh-visit-site.json b/locale/so/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/so/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-mirrors.json b/locale/so/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/so/freedombone-mirrors.json
+++ b/locale/so/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-pin-cert.json b/locale/so/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/so/freedombone-pin-cert.json
+++ b/locale/so/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-recoverkey.json b/locale/so/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/so/freedombone-recoverkey.json
+++ b/locale/so/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/so/freedombone-restore-local.json b/locale/so/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/so/freedombone-restore-local.json
+++ b/locale/so/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/so/freedombone-restore-remote.json b/locale/so/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/so/freedombone-restore-remote.json
+++ b/locale/so/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-rmuser.json b/locale/so/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/so/freedombone-rmuser.json
+++ b/locale/so/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-sec.json b/locale/so/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/so/freedombone-sec.json
+++ b/locale/so/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/so/freedombone-tests.json b/locale/so/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/so/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-update-date.json b/locale/so/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/so/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/so/freedombone-update-date.mo b/locale/so/freedombone-update-date.mo
deleted file mode 100644
index d1f861d3..00000000
Binary files a/locale/so/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/so/freedombone-utils-backup.json b/locale/so/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/so/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/so/freedombone-utils-config.json b/locale/so/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/so/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-database.json b/locale/so/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/so/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-depends.json b/locale/so/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/so/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-final.json b/locale/so/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/so/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-git.json b/locale/so/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/so/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-help.json b/locale/so/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/so/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-interactive.json b/locale/so/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/so/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-keys.json b/locale/so/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/so/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-onion.json b/locale/so/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/so/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-rng.json b/locale/so/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/so/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-selector.json b/locale/so/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/so/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-setup.json b/locale/so/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/so/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-validation.json b/locale/so/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/so/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-web.json b/locale/so/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/so/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-utils-wifi.json b/locale/so/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/so/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/so/freedombone-wifi.json b/locale/so/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/so/freedombone-wifi.json
+++ b/locale/so/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/so/freedombone.json
+++ b/locale/so/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-addremove.json b/locale/sq/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/sq/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-adduser.json b/locale/sq/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/sq/freedombone-adduser.json
+++ b/locale/sq/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/sq/freedombone-app-blog.json b/locale/sq/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/sq/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-blogstatic.json b/locale/sq/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sq/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-cjdns.json b/locale/sq/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/sq/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-dlna.json b/locale/sq/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/sq/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-dokuwiki.json b/locale/sq/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/sq/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-emacs.json b/locale/sq/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/sq/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-etherpad.json b/locale/sq/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/sq/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-gnusocial.json b/locale/sq/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/sq/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-gogs.json b/locale/sq/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/sq/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-htmly.json b/locale/sq/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/sq/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-hubzilla.json b/locale/sq/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/sq/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-ipfs.json b/locale/sq/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/sq/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-irc.json b/locale/sq/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/sq/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-jitsi.json b/locale/sq/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/sq/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-mediagoblin.json b/locale/sq/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/sq/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-mumble.json b/locale/sq/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/sq/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-pelican.json b/locale/sq/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sq/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-pihole.json b/locale/sq/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/sq/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-postactiv.json b/locale/sq/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/sq/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-rss.json b/locale/sq/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/sq/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-searx.json b/locale/sq/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/sq/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-sip.json b/locale/sq/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/sq/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-syncthing.json b/locale/sq/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/sq/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-tahoelafs.json b/locale/sq/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/sq/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-tox.json b/locale/sq/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/sq/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-vim.json b/locale/sq/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/sq/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-webmail.json b/locale/sq/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/sq/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-wiki.json b/locale/sq/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/sq/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-xmpp.json b/locale/sq/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/sq/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-app-zeronet.json b/locale/sq/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/sq/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-backup-local.json b/locale/sq/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/sq/freedombone-backup-local.json
+++ b/locale/sq/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-backup-remote.json b/locale/sq/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/sq/freedombone-backup-remote.json
+++ b/locale/sq/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-base-chaoskey.json b/locale/sq/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/sq/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-base-email.json b/locale/sq/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/sq/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-config.json b/locale/sq/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/sq/freedombone-config.json
+++ b/locale/sq/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/sq/freedombone-controlpanel-user.json b/locale/sq/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/sq/freedombone-controlpanel-user.json
+++ b/locale/sq/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/sq/freedombone-controlpanel.json b/locale/sq/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/sq/freedombone-controlpanel.json
+++ b/locale/sq/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/sq/freedombone-image-customise.json b/locale/sq/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/sq/freedombone-image-customise.json
+++ b/locale/sq/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/sq/freedombone-image-mesh.json b/locale/sq/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/sq/freedombone-image-mesh.json
+++ b/locale/sq/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-image.json b/locale/sq/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/sq/freedombone-image.json
+++ b/locale/sq/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-keydrive.json b/locale/sq/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/sq/freedombone-keydrive.json
+++ b/locale/sq/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/sq/freedombone-mesh-batman.json b/locale/sq/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/sq/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-mesh-blog.json b/locale/sq/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/sq/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-mesh-install.json b/locale/sq/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/sq/freedombone-mesh-install.json
+++ b/locale/sq/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-mesh-reset.json b/locale/sq/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/sq/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-mesh-visit-site.json b/locale/sq/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/sq/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-mirrors.json b/locale/sq/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/sq/freedombone-mirrors.json
+++ b/locale/sq/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-pin-cert.json b/locale/sq/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/sq/freedombone-pin-cert.json
+++ b/locale/sq/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-recoverkey.json b/locale/sq/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/sq/freedombone-recoverkey.json
+++ b/locale/sq/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/sq/freedombone-restore-local.json b/locale/sq/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/sq/freedombone-restore-local.json
+++ b/locale/sq/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/sq/freedombone-restore-remote.json b/locale/sq/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/sq/freedombone-restore-remote.json
+++ b/locale/sq/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-rmuser.json b/locale/sq/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/sq/freedombone-rmuser.json
+++ b/locale/sq/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-sec.json b/locale/sq/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/sq/freedombone-sec.json
+++ b/locale/sq/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/sq/freedombone-tests.json b/locale/sq/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/sq/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-update-date.json b/locale/sq/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/sq/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/sq/freedombone-update-date.mo b/locale/sq/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/sq/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/sq/freedombone-utils-backup.json b/locale/sq/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/sq/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/sq/freedombone-utils-config.json b/locale/sq/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/sq/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-database.json b/locale/sq/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/sq/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-depends.json b/locale/sq/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/sq/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-final.json b/locale/sq/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/sq/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-git.json b/locale/sq/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/sq/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-help.json b/locale/sq/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/sq/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-interactive.json b/locale/sq/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/sq/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-keys.json b/locale/sq/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/sq/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-onion.json b/locale/sq/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/sq/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-rng.json b/locale/sq/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/sq/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-selector.json b/locale/sq/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/sq/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-setup.json b/locale/sq/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/sq/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-validation.json b/locale/sq/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/sq/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-web.json b/locale/sq/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/sq/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-utils-wifi.json b/locale/sq/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/sq/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/sq/freedombone-wifi.json b/locale/sq/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/sq/freedombone-wifi.json
+++ b/locale/sq/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/sq/freedombone.json
+++ b/locale/sq/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-addremove.json b/locale/sr/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/sr/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-adduser.json b/locale/sr/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/sr/freedombone-adduser.json
+++ b/locale/sr/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/sr/freedombone-app-blog.json b/locale/sr/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/sr/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-blogstatic.json b/locale/sr/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sr/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-cjdns.json b/locale/sr/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/sr/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-dlna.json b/locale/sr/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/sr/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-dokuwiki.json b/locale/sr/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/sr/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-emacs.json b/locale/sr/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/sr/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-etherpad.json b/locale/sr/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/sr/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-gnusocial.json b/locale/sr/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/sr/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-gogs.json b/locale/sr/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/sr/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-htmly.json b/locale/sr/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/sr/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-hubzilla.json b/locale/sr/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/sr/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-ipfs.json b/locale/sr/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/sr/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-irc.json b/locale/sr/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/sr/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-jitsi.json b/locale/sr/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/sr/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-mediagoblin.json b/locale/sr/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/sr/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-mumble.json b/locale/sr/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/sr/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-pelican.json b/locale/sr/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sr/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-pihole.json b/locale/sr/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/sr/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-postactiv.json b/locale/sr/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/sr/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-rss.json b/locale/sr/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/sr/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-searx.json b/locale/sr/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/sr/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-sip.json b/locale/sr/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/sr/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-syncthing.json b/locale/sr/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/sr/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-tahoelafs.json b/locale/sr/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/sr/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-tox.json b/locale/sr/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/sr/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-vim.json b/locale/sr/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/sr/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-webmail.json b/locale/sr/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/sr/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-wiki.json b/locale/sr/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/sr/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-xmpp.json b/locale/sr/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/sr/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-app-zeronet.json b/locale/sr/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/sr/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-backup-local.json b/locale/sr/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/sr/freedombone-backup-local.json
+++ b/locale/sr/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-backup-remote.json b/locale/sr/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/sr/freedombone-backup-remote.json
+++ b/locale/sr/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-base-chaoskey.json b/locale/sr/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/sr/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-base-email.json b/locale/sr/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/sr/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-config.json b/locale/sr/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/sr/freedombone-config.json
+++ b/locale/sr/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/sr/freedombone-controlpanel-user.json b/locale/sr/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/sr/freedombone-controlpanel-user.json
+++ b/locale/sr/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/sr/freedombone-controlpanel.json b/locale/sr/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/sr/freedombone-controlpanel.json
+++ b/locale/sr/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/sr/freedombone-image-customise.json b/locale/sr/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/sr/freedombone-image-customise.json
+++ b/locale/sr/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/sr/freedombone-image-mesh.json b/locale/sr/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/sr/freedombone-image-mesh.json
+++ b/locale/sr/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-image.json b/locale/sr/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/sr/freedombone-image.json
+++ b/locale/sr/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-keydrive.json b/locale/sr/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/sr/freedombone-keydrive.json
+++ b/locale/sr/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/sr/freedombone-mesh-batman.json b/locale/sr/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/sr/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-mesh-blog.json b/locale/sr/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/sr/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-mesh-install.json b/locale/sr/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/sr/freedombone-mesh-install.json
+++ b/locale/sr/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-mesh-reset.json b/locale/sr/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/sr/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-mesh-visit-site.json b/locale/sr/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/sr/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-mirrors.json b/locale/sr/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/sr/freedombone-mirrors.json
+++ b/locale/sr/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-pin-cert.json b/locale/sr/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/sr/freedombone-pin-cert.json
+++ b/locale/sr/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-recoverkey.json b/locale/sr/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/sr/freedombone-recoverkey.json
+++ b/locale/sr/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/sr/freedombone-restore-local.json b/locale/sr/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/sr/freedombone-restore-local.json
+++ b/locale/sr/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/sr/freedombone-restore-remote.json b/locale/sr/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/sr/freedombone-restore-remote.json
+++ b/locale/sr/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-rmuser.json b/locale/sr/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/sr/freedombone-rmuser.json
+++ b/locale/sr/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-sec.json b/locale/sr/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/sr/freedombone-sec.json
+++ b/locale/sr/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/sr/freedombone-tests.json b/locale/sr/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/sr/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-update-date.json b/locale/sr/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/sr/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/sr/freedombone-update-date.mo b/locale/sr/freedombone-update-date.mo
deleted file mode 100644
index 8cc55eca..00000000
Binary files a/locale/sr/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/sr/freedombone-utils-backup.json b/locale/sr/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/sr/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/sr/freedombone-utils-config.json b/locale/sr/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/sr/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-database.json b/locale/sr/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/sr/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-depends.json b/locale/sr/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/sr/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-final.json b/locale/sr/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/sr/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-git.json b/locale/sr/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/sr/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-help.json b/locale/sr/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/sr/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-interactive.json b/locale/sr/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/sr/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-keys.json b/locale/sr/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/sr/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-onion.json b/locale/sr/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/sr/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-rng.json b/locale/sr/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/sr/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-selector.json b/locale/sr/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/sr/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-setup.json b/locale/sr/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/sr/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-validation.json b/locale/sr/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/sr/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-web.json b/locale/sr/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/sr/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-utils-wifi.json b/locale/sr/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/sr/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/sr/freedombone-wifi.json b/locale/sr/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/sr/freedombone-wifi.json
+++ b/locale/sr/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/sr/freedombone.json
+++ b/locale/sr/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-addremove.json b/locale/sv/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/sv/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-adduser.json b/locale/sv/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/sv/freedombone-adduser.json
+++ b/locale/sv/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/sv/freedombone-app-blog.json b/locale/sv/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/sv/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-blogstatic.json b/locale/sv/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sv/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-cjdns.json b/locale/sv/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/sv/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-dlna.json b/locale/sv/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/sv/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-dokuwiki.json b/locale/sv/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/sv/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-emacs.json b/locale/sv/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/sv/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-etherpad.json b/locale/sv/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/sv/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-gnusocial.json b/locale/sv/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/sv/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-gogs.json b/locale/sv/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/sv/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-htmly.json b/locale/sv/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/sv/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-hubzilla.json b/locale/sv/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/sv/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-ipfs.json b/locale/sv/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/sv/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-irc.json b/locale/sv/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/sv/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-jitsi.json b/locale/sv/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/sv/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-mediagoblin.json b/locale/sv/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/sv/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-mumble.json b/locale/sv/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/sv/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-pelican.json b/locale/sv/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/sv/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-pihole.json b/locale/sv/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/sv/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-postactiv.json b/locale/sv/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/sv/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-rss.json b/locale/sv/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/sv/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-searx.json b/locale/sv/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/sv/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-sip.json b/locale/sv/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/sv/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-syncthing.json b/locale/sv/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/sv/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-tahoelafs.json b/locale/sv/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/sv/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-tox.json b/locale/sv/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/sv/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-vim.json b/locale/sv/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/sv/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-webmail.json b/locale/sv/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/sv/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-wiki.json b/locale/sv/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/sv/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-xmpp.json b/locale/sv/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/sv/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-app-zeronet.json b/locale/sv/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/sv/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-backup-local.json b/locale/sv/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/sv/freedombone-backup-local.json
+++ b/locale/sv/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-backup-remote.json b/locale/sv/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/sv/freedombone-backup-remote.json
+++ b/locale/sv/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-base-chaoskey.json b/locale/sv/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/sv/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-base-email.json b/locale/sv/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/sv/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-config.json b/locale/sv/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/sv/freedombone-config.json
+++ b/locale/sv/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/sv/freedombone-controlpanel-user.json b/locale/sv/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/sv/freedombone-controlpanel-user.json
+++ b/locale/sv/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/sv/freedombone-controlpanel.json b/locale/sv/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/sv/freedombone-controlpanel.json
+++ b/locale/sv/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/sv/freedombone-image-customise.json b/locale/sv/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/sv/freedombone-image-customise.json
+++ b/locale/sv/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/sv/freedombone-image-mesh.json b/locale/sv/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/sv/freedombone-image-mesh.json
+++ b/locale/sv/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-image.json b/locale/sv/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/sv/freedombone-image.json
+++ b/locale/sv/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-keydrive.json b/locale/sv/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/sv/freedombone-keydrive.json
+++ b/locale/sv/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/sv/freedombone-mesh-batman.json b/locale/sv/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/sv/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-mesh-blog.json b/locale/sv/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/sv/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-mesh-install.json b/locale/sv/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/sv/freedombone-mesh-install.json
+++ b/locale/sv/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-mesh-reset.json b/locale/sv/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/sv/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-mesh-visit-site.json b/locale/sv/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/sv/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-mirrors.json b/locale/sv/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/sv/freedombone-mirrors.json
+++ b/locale/sv/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-pin-cert.json b/locale/sv/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/sv/freedombone-pin-cert.json
+++ b/locale/sv/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-recoverkey.json b/locale/sv/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/sv/freedombone-recoverkey.json
+++ b/locale/sv/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/sv/freedombone-restore-local.json b/locale/sv/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/sv/freedombone-restore-local.json
+++ b/locale/sv/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/sv/freedombone-restore-remote.json b/locale/sv/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/sv/freedombone-restore-remote.json
+++ b/locale/sv/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-rmuser.json b/locale/sv/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/sv/freedombone-rmuser.json
+++ b/locale/sv/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-sec.json b/locale/sv/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/sv/freedombone-sec.json
+++ b/locale/sv/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/sv/freedombone-tests.json b/locale/sv/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/sv/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-update-date.json b/locale/sv/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/sv/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/sv/freedombone-update-date.mo b/locale/sv/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/sv/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/sv/freedombone-utils-backup.json b/locale/sv/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/sv/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/sv/freedombone-utils-config.json b/locale/sv/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/sv/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-database.json b/locale/sv/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/sv/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-depends.json b/locale/sv/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/sv/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-final.json b/locale/sv/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/sv/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-git.json b/locale/sv/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/sv/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-help.json b/locale/sv/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/sv/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-interactive.json b/locale/sv/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/sv/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-keys.json b/locale/sv/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/sv/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-onion.json b/locale/sv/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/sv/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-rng.json b/locale/sv/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/sv/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-selector.json b/locale/sv/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/sv/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-setup.json b/locale/sv/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/sv/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-validation.json b/locale/sv/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/sv/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-web.json b/locale/sv/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/sv/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-utils-wifi.json b/locale/sv/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/sv/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/sv/freedombone-wifi.json b/locale/sv/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/sv/freedombone-wifi.json
+++ b/locale/sv/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/sv/freedombone.json
+++ b/locale/sv/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-addremove.json b/locale/ta/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/ta/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-adduser.json b/locale/ta/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/ta/freedombone-adduser.json
+++ b/locale/ta/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/ta/freedombone-app-blog.json b/locale/ta/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/ta/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-blogstatic.json b/locale/ta/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ta/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-cjdns.json b/locale/ta/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/ta/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-dlna.json b/locale/ta/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/ta/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-dokuwiki.json b/locale/ta/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/ta/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-emacs.json b/locale/ta/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/ta/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-etherpad.json b/locale/ta/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/ta/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-gnusocial.json b/locale/ta/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/ta/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-gogs.json b/locale/ta/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/ta/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-htmly.json b/locale/ta/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/ta/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-hubzilla.json b/locale/ta/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/ta/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-ipfs.json b/locale/ta/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/ta/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-irc.json b/locale/ta/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/ta/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-jitsi.json b/locale/ta/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/ta/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-mediagoblin.json b/locale/ta/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/ta/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-mumble.json b/locale/ta/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/ta/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-pelican.json b/locale/ta/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/ta/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-pihole.json b/locale/ta/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/ta/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-postactiv.json b/locale/ta/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/ta/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-rss.json b/locale/ta/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/ta/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-searx.json b/locale/ta/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/ta/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-sip.json b/locale/ta/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/ta/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-syncthing.json b/locale/ta/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/ta/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-tahoelafs.json b/locale/ta/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/ta/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-tox.json b/locale/ta/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/ta/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-vim.json b/locale/ta/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/ta/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-webmail.json b/locale/ta/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/ta/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-wiki.json b/locale/ta/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/ta/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-xmpp.json b/locale/ta/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/ta/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-app-zeronet.json b/locale/ta/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/ta/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-backup-local.json b/locale/ta/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/ta/freedombone-backup-local.json
+++ b/locale/ta/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-backup-remote.json b/locale/ta/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/ta/freedombone-backup-remote.json
+++ b/locale/ta/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-base-chaoskey.json b/locale/ta/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/ta/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-base-email.json b/locale/ta/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/ta/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-config.json b/locale/ta/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/ta/freedombone-config.json
+++ b/locale/ta/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/ta/freedombone-controlpanel-user.json b/locale/ta/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/ta/freedombone-controlpanel-user.json
+++ b/locale/ta/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/ta/freedombone-controlpanel.json b/locale/ta/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/ta/freedombone-controlpanel.json
+++ b/locale/ta/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/ta/freedombone-image-customise.json b/locale/ta/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/ta/freedombone-image-customise.json
+++ b/locale/ta/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/ta/freedombone-image-mesh.json b/locale/ta/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/ta/freedombone-image-mesh.json
+++ b/locale/ta/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-image.json b/locale/ta/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/ta/freedombone-image.json
+++ b/locale/ta/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-keydrive.json b/locale/ta/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/ta/freedombone-keydrive.json
+++ b/locale/ta/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/ta/freedombone-mesh-batman.json b/locale/ta/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/ta/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-mesh-blog.json b/locale/ta/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/ta/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-mesh-install.json b/locale/ta/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/ta/freedombone-mesh-install.json
+++ b/locale/ta/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-mesh-reset.json b/locale/ta/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/ta/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-mesh-visit-site.json b/locale/ta/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/ta/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-mirrors.json b/locale/ta/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/ta/freedombone-mirrors.json
+++ b/locale/ta/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-pin-cert.json b/locale/ta/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/ta/freedombone-pin-cert.json
+++ b/locale/ta/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-recoverkey.json b/locale/ta/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/ta/freedombone-recoverkey.json
+++ b/locale/ta/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/ta/freedombone-restore-local.json b/locale/ta/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/ta/freedombone-restore-local.json
+++ b/locale/ta/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/ta/freedombone-restore-remote.json b/locale/ta/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/ta/freedombone-restore-remote.json
+++ b/locale/ta/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-rmuser.json b/locale/ta/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/ta/freedombone-rmuser.json
+++ b/locale/ta/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-sec.json b/locale/ta/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/ta/freedombone-sec.json
+++ b/locale/ta/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/ta/freedombone-tests.json b/locale/ta/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/ta/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-update-date.json b/locale/ta/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/ta/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/ta/freedombone-update-date.mo b/locale/ta/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/ta/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/ta/freedombone-utils-backup.json b/locale/ta/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/ta/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/ta/freedombone-utils-config.json b/locale/ta/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/ta/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-database.json b/locale/ta/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/ta/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-depends.json b/locale/ta/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/ta/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-final.json b/locale/ta/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/ta/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-git.json b/locale/ta/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/ta/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-help.json b/locale/ta/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/ta/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-interactive.json b/locale/ta/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/ta/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-keys.json b/locale/ta/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/ta/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-onion.json b/locale/ta/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/ta/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-rng.json b/locale/ta/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/ta/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-selector.json b/locale/ta/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/ta/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-setup.json b/locale/ta/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/ta/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-validation.json b/locale/ta/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/ta/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-web.json b/locale/ta/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/ta/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-utils-wifi.json b/locale/ta/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/ta/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/ta/freedombone-wifi.json b/locale/ta/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/ta/freedombone-wifi.json
+++ b/locale/ta/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/ta/freedombone.json
+++ b/locale/ta/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-addremove.json b/locale/th/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/th/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-adduser.json b/locale/th/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/th/freedombone-adduser.json
+++ b/locale/th/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/th/freedombone-app-blog.json b/locale/th/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/th/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-blogstatic.json b/locale/th/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/th/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-cjdns.json b/locale/th/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/th/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-dlna.json b/locale/th/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/th/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-dokuwiki.json b/locale/th/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/th/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-emacs.json b/locale/th/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/th/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-etherpad.json b/locale/th/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/th/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-gnusocial.json b/locale/th/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/th/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-gogs.json b/locale/th/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/th/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-htmly.json b/locale/th/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/th/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-hubzilla.json b/locale/th/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/th/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-ipfs.json b/locale/th/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/th/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-irc.json b/locale/th/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/th/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-jitsi.json b/locale/th/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/th/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-mediagoblin.json b/locale/th/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/th/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-mumble.json b/locale/th/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/th/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-pelican.json b/locale/th/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/th/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-pihole.json b/locale/th/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/th/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-postactiv.json b/locale/th/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/th/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-rss.json b/locale/th/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/th/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-searx.json b/locale/th/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/th/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-sip.json b/locale/th/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/th/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-syncthing.json b/locale/th/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/th/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-tahoelafs.json b/locale/th/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/th/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-tox.json b/locale/th/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/th/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-vim.json b/locale/th/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/th/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-webmail.json b/locale/th/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/th/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-wiki.json b/locale/th/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/th/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-xmpp.json b/locale/th/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/th/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-app-zeronet.json b/locale/th/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/th/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-backup-local.json b/locale/th/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/th/freedombone-backup-local.json
+++ b/locale/th/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-backup-remote.json b/locale/th/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/th/freedombone-backup-remote.json
+++ b/locale/th/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-base-chaoskey.json b/locale/th/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/th/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-base-email.json b/locale/th/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/th/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-config.json b/locale/th/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/th/freedombone-config.json
+++ b/locale/th/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/th/freedombone-controlpanel-user.json b/locale/th/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/th/freedombone-controlpanel-user.json
+++ b/locale/th/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/th/freedombone-controlpanel.json b/locale/th/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/th/freedombone-controlpanel.json
+++ b/locale/th/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/th/freedombone-image-customise.json b/locale/th/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/th/freedombone-image-customise.json
+++ b/locale/th/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/th/freedombone-image-mesh.json b/locale/th/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/th/freedombone-image-mesh.json
+++ b/locale/th/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-image.json b/locale/th/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/th/freedombone-image.json
+++ b/locale/th/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-keydrive.json b/locale/th/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/th/freedombone-keydrive.json
+++ b/locale/th/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/th/freedombone-mesh-batman.json b/locale/th/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/th/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-mesh-blog.json b/locale/th/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/th/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-mesh-install.json b/locale/th/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/th/freedombone-mesh-install.json
+++ b/locale/th/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-mesh-reset.json b/locale/th/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/th/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-mesh-visit-site.json b/locale/th/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/th/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-mirrors.json b/locale/th/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/th/freedombone-mirrors.json
+++ b/locale/th/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-pin-cert.json b/locale/th/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/th/freedombone-pin-cert.json
+++ b/locale/th/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-recoverkey.json b/locale/th/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/th/freedombone-recoverkey.json
+++ b/locale/th/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/th/freedombone-restore-local.json b/locale/th/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/th/freedombone-restore-local.json
+++ b/locale/th/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/th/freedombone-restore-remote.json b/locale/th/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/th/freedombone-restore-remote.json
+++ b/locale/th/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-rmuser.json b/locale/th/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/th/freedombone-rmuser.json
+++ b/locale/th/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-sec.json b/locale/th/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/th/freedombone-sec.json
+++ b/locale/th/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/th/freedombone-tests.json b/locale/th/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/th/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-update-date.json b/locale/th/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/th/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/th/freedombone-update-date.mo b/locale/th/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/th/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/th/freedombone-utils-backup.json b/locale/th/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/th/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/th/freedombone-utils-config.json b/locale/th/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/th/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-database.json b/locale/th/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/th/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-depends.json b/locale/th/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/th/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-final.json b/locale/th/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/th/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-git.json b/locale/th/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/th/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-help.json b/locale/th/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/th/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-interactive.json b/locale/th/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/th/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-keys.json b/locale/th/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/th/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-onion.json b/locale/th/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/th/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-rng.json b/locale/th/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/th/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-selector.json b/locale/th/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/th/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-setup.json b/locale/th/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/th/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-validation.json b/locale/th/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/th/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-web.json b/locale/th/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/th/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-utils-wifi.json b/locale/th/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/th/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/th/freedombone-wifi.json b/locale/th/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/th/freedombone-wifi.json
+++ b/locale/th/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/th/freedombone.json
+++ b/locale/th/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-addremove.json b/locale/tl/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/tl/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-adduser.json b/locale/tl/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/tl/freedombone-adduser.json
+++ b/locale/tl/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/tl/freedombone-app-blog.json b/locale/tl/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/tl/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-blogstatic.json b/locale/tl/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/tl/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-cjdns.json b/locale/tl/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/tl/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-dlna.json b/locale/tl/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/tl/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-dokuwiki.json b/locale/tl/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/tl/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-emacs.json b/locale/tl/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/tl/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-etherpad.json b/locale/tl/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/tl/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-gnusocial.json b/locale/tl/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/tl/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-gogs.json b/locale/tl/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/tl/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-htmly.json b/locale/tl/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/tl/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-hubzilla.json b/locale/tl/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/tl/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-ipfs.json b/locale/tl/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/tl/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-irc.json b/locale/tl/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/tl/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-jitsi.json b/locale/tl/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/tl/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-mediagoblin.json b/locale/tl/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/tl/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-mumble.json b/locale/tl/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/tl/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-pelican.json b/locale/tl/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/tl/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-pihole.json b/locale/tl/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/tl/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-postactiv.json b/locale/tl/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/tl/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-rss.json b/locale/tl/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/tl/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-searx.json b/locale/tl/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/tl/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-sip.json b/locale/tl/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/tl/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-syncthing.json b/locale/tl/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/tl/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-tahoelafs.json b/locale/tl/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/tl/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-tox.json b/locale/tl/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/tl/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-vim.json b/locale/tl/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/tl/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-webmail.json b/locale/tl/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/tl/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-wiki.json b/locale/tl/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/tl/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-xmpp.json b/locale/tl/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/tl/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-app-zeronet.json b/locale/tl/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/tl/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-backup-local.json b/locale/tl/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/tl/freedombone-backup-local.json
+++ b/locale/tl/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-backup-remote.json b/locale/tl/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/tl/freedombone-backup-remote.json
+++ b/locale/tl/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-base-chaoskey.json b/locale/tl/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/tl/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-base-email.json b/locale/tl/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/tl/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-config.json b/locale/tl/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/tl/freedombone-config.json
+++ b/locale/tl/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/tl/freedombone-controlpanel-user.json b/locale/tl/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/tl/freedombone-controlpanel-user.json
+++ b/locale/tl/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/tl/freedombone-controlpanel.json b/locale/tl/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/tl/freedombone-controlpanel.json
+++ b/locale/tl/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/tl/freedombone-image-customise.json b/locale/tl/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/tl/freedombone-image-customise.json
+++ b/locale/tl/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/tl/freedombone-image-mesh.json b/locale/tl/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/tl/freedombone-image-mesh.json
+++ b/locale/tl/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-image.json b/locale/tl/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/tl/freedombone-image.json
+++ b/locale/tl/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-keydrive.json b/locale/tl/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/tl/freedombone-keydrive.json
+++ b/locale/tl/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/tl/freedombone-mesh-batman.json b/locale/tl/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/tl/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-mesh-blog.json b/locale/tl/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/tl/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-mesh-install.json b/locale/tl/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/tl/freedombone-mesh-install.json
+++ b/locale/tl/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-mesh-reset.json b/locale/tl/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/tl/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-mesh-visit-site.json b/locale/tl/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/tl/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-mirrors.json b/locale/tl/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/tl/freedombone-mirrors.json
+++ b/locale/tl/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-pin-cert.json b/locale/tl/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/tl/freedombone-pin-cert.json
+++ b/locale/tl/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-recoverkey.json b/locale/tl/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/tl/freedombone-recoverkey.json
+++ b/locale/tl/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/tl/freedombone-restore-local.json b/locale/tl/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/tl/freedombone-restore-local.json
+++ b/locale/tl/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/tl/freedombone-restore-remote.json b/locale/tl/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/tl/freedombone-restore-remote.json
+++ b/locale/tl/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-rmuser.json b/locale/tl/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/tl/freedombone-rmuser.json
+++ b/locale/tl/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-sec.json b/locale/tl/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/tl/freedombone-sec.json
+++ b/locale/tl/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/tl/freedombone-tests.json b/locale/tl/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/tl/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-update-date.json b/locale/tl/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/tl/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/tl/freedombone-update-date.mo b/locale/tl/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/tl/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/tl/freedombone-utils-backup.json b/locale/tl/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/tl/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/tl/freedombone-utils-config.json b/locale/tl/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/tl/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-database.json b/locale/tl/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/tl/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-depends.json b/locale/tl/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/tl/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-final.json b/locale/tl/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/tl/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-git.json b/locale/tl/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/tl/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-help.json b/locale/tl/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/tl/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-interactive.json b/locale/tl/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/tl/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-keys.json b/locale/tl/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/tl/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-onion.json b/locale/tl/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/tl/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-rng.json b/locale/tl/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/tl/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-selector.json b/locale/tl/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/tl/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-setup.json b/locale/tl/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/tl/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-validation.json b/locale/tl/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/tl/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-web.json b/locale/tl/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/tl/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-utils-wifi.json b/locale/tl/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/tl/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/tl/freedombone-wifi.json b/locale/tl/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/tl/freedombone-wifi.json
+++ b/locale/tl/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/tl/freedombone.json
+++ b/locale/tl/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-addremove.json b/locale/to/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/to/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-adduser.json b/locale/to/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/to/freedombone-adduser.json
+++ b/locale/to/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/to/freedombone-app-blog.json b/locale/to/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/to/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-blogstatic.json b/locale/to/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/to/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-cjdns.json b/locale/to/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/to/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-dlna.json b/locale/to/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/to/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-dokuwiki.json b/locale/to/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/to/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-emacs.json b/locale/to/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/to/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-etherpad.json b/locale/to/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/to/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-gnusocial.json b/locale/to/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/to/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-gogs.json b/locale/to/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/to/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-htmly.json b/locale/to/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/to/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-hubzilla.json b/locale/to/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/to/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-ipfs.json b/locale/to/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/to/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-irc.json b/locale/to/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/to/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-jitsi.json b/locale/to/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/to/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-mediagoblin.json b/locale/to/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/to/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-mumble.json b/locale/to/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/to/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-pelican.json b/locale/to/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/to/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-pihole.json b/locale/to/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/to/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-postactiv.json b/locale/to/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/to/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-rss.json b/locale/to/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/to/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-searx.json b/locale/to/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/to/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-sip.json b/locale/to/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/to/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-syncthing.json b/locale/to/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/to/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-tahoelafs.json b/locale/to/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/to/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-tox.json b/locale/to/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/to/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-vim.json b/locale/to/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/to/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-webmail.json b/locale/to/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/to/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-wiki.json b/locale/to/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/to/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-xmpp.json b/locale/to/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/to/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-app-zeronet.json b/locale/to/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/to/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-backup-local.json b/locale/to/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/to/freedombone-backup-local.json
+++ b/locale/to/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-backup-remote.json b/locale/to/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/to/freedombone-backup-remote.json
+++ b/locale/to/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-base-chaoskey.json b/locale/to/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/to/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-base-email.json b/locale/to/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/to/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-config.json b/locale/to/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/to/freedombone-config.json
+++ b/locale/to/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/to/freedombone-controlpanel-user.json b/locale/to/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/to/freedombone-controlpanel-user.json
+++ b/locale/to/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/to/freedombone-controlpanel.json b/locale/to/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/to/freedombone-controlpanel.json
+++ b/locale/to/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/to/freedombone-image-customise.json b/locale/to/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/to/freedombone-image-customise.json
+++ b/locale/to/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/to/freedombone-image-mesh.json b/locale/to/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/to/freedombone-image-mesh.json
+++ b/locale/to/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-image.json b/locale/to/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/to/freedombone-image.json
+++ b/locale/to/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-keydrive.json b/locale/to/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/to/freedombone-keydrive.json
+++ b/locale/to/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/to/freedombone-mesh-batman.json b/locale/to/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/to/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-mesh-blog.json b/locale/to/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/to/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-mesh-install.json b/locale/to/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/to/freedombone-mesh-install.json
+++ b/locale/to/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-mesh-reset.json b/locale/to/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/to/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-mesh-visit-site.json b/locale/to/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/to/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-mirrors.json b/locale/to/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/to/freedombone-mirrors.json
+++ b/locale/to/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-pin-cert.json b/locale/to/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/to/freedombone-pin-cert.json
+++ b/locale/to/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-recoverkey.json b/locale/to/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/to/freedombone-recoverkey.json
+++ b/locale/to/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/to/freedombone-restore-local.json b/locale/to/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/to/freedombone-restore-local.json
+++ b/locale/to/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/to/freedombone-restore-remote.json b/locale/to/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/to/freedombone-restore-remote.json
+++ b/locale/to/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-rmuser.json b/locale/to/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/to/freedombone-rmuser.json
+++ b/locale/to/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-sec.json b/locale/to/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/to/freedombone-sec.json
+++ b/locale/to/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/to/freedombone-tests.json b/locale/to/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/to/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-update-date.json b/locale/to/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/to/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/to/freedombone-update-date.mo b/locale/to/freedombone-update-date.mo
deleted file mode 100644
index 2f44c545..00000000
Binary files a/locale/to/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/to/freedombone-utils-backup.json b/locale/to/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/to/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/to/freedombone-utils-config.json b/locale/to/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/to/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-database.json b/locale/to/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/to/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-depends.json b/locale/to/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/to/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-final.json b/locale/to/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/to/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-git.json b/locale/to/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/to/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-help.json b/locale/to/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/to/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-interactive.json b/locale/to/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/to/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-keys.json b/locale/to/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/to/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-onion.json b/locale/to/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/to/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-rng.json b/locale/to/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/to/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-selector.json b/locale/to/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/to/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-setup.json b/locale/to/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/to/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-validation.json b/locale/to/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/to/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-web.json b/locale/to/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/to/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-utils-wifi.json b/locale/to/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/to/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/to/freedombone-wifi.json b/locale/to/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/to/freedombone-wifi.json
+++ b/locale/to/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/to/freedombone.json
+++ b/locale/to/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-addremove.json b/locale/tr/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/tr/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-adduser.json b/locale/tr/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/tr/freedombone-adduser.json
+++ b/locale/tr/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/tr/freedombone-app-blog.json b/locale/tr/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/tr/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-blogstatic.json b/locale/tr/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/tr/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-cjdns.json b/locale/tr/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/tr/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-dlna.json b/locale/tr/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/tr/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-dokuwiki.json b/locale/tr/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/tr/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-emacs.json b/locale/tr/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/tr/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-etherpad.json b/locale/tr/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/tr/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-gnusocial.json b/locale/tr/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/tr/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-gogs.json b/locale/tr/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/tr/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-htmly.json b/locale/tr/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/tr/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-hubzilla.json b/locale/tr/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/tr/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-ipfs.json b/locale/tr/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/tr/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-irc.json b/locale/tr/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/tr/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-jitsi.json b/locale/tr/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/tr/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-mediagoblin.json b/locale/tr/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/tr/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-mumble.json b/locale/tr/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/tr/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-pelican.json b/locale/tr/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/tr/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-pihole.json b/locale/tr/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/tr/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-postactiv.json b/locale/tr/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/tr/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-rss.json b/locale/tr/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/tr/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-searx.json b/locale/tr/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/tr/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-sip.json b/locale/tr/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/tr/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-syncthing.json b/locale/tr/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/tr/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-tahoelafs.json b/locale/tr/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/tr/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-tox.json b/locale/tr/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/tr/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-vim.json b/locale/tr/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/tr/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-webmail.json b/locale/tr/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/tr/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-wiki.json b/locale/tr/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/tr/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-xmpp.json b/locale/tr/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/tr/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-app-zeronet.json b/locale/tr/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/tr/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-backup-local.json b/locale/tr/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/tr/freedombone-backup-local.json
+++ b/locale/tr/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-backup-remote.json b/locale/tr/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/tr/freedombone-backup-remote.json
+++ b/locale/tr/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-base-chaoskey.json b/locale/tr/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/tr/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-base-email.json b/locale/tr/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/tr/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-config.json b/locale/tr/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/tr/freedombone-config.json
+++ b/locale/tr/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/tr/freedombone-controlpanel-user.json b/locale/tr/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/tr/freedombone-controlpanel-user.json
+++ b/locale/tr/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/tr/freedombone-controlpanel.json b/locale/tr/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/tr/freedombone-controlpanel.json
+++ b/locale/tr/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/tr/freedombone-image-customise.json b/locale/tr/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/tr/freedombone-image-customise.json
+++ b/locale/tr/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/tr/freedombone-image-mesh.json b/locale/tr/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/tr/freedombone-image-mesh.json
+++ b/locale/tr/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-image.json b/locale/tr/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/tr/freedombone-image.json
+++ b/locale/tr/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-keydrive.json b/locale/tr/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/tr/freedombone-keydrive.json
+++ b/locale/tr/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/tr/freedombone-mesh-batman.json b/locale/tr/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/tr/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-mesh-blog.json b/locale/tr/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/tr/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-mesh-install.json b/locale/tr/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/tr/freedombone-mesh-install.json
+++ b/locale/tr/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-mesh-reset.json b/locale/tr/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/tr/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-mesh-visit-site.json b/locale/tr/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/tr/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-mirrors.json b/locale/tr/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/tr/freedombone-mirrors.json
+++ b/locale/tr/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-pin-cert.json b/locale/tr/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/tr/freedombone-pin-cert.json
+++ b/locale/tr/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-recoverkey.json b/locale/tr/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/tr/freedombone-recoverkey.json
+++ b/locale/tr/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/tr/freedombone-restore-local.json b/locale/tr/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/tr/freedombone-restore-local.json
+++ b/locale/tr/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/tr/freedombone-restore-remote.json b/locale/tr/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/tr/freedombone-restore-remote.json
+++ b/locale/tr/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-rmuser.json b/locale/tr/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/tr/freedombone-rmuser.json
+++ b/locale/tr/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-sec.json b/locale/tr/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/tr/freedombone-sec.json
+++ b/locale/tr/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/tr/freedombone-tests.json b/locale/tr/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/tr/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-update-date.json b/locale/tr/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/tr/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/tr/freedombone-update-date.mo b/locale/tr/freedombone-update-date.mo
deleted file mode 100644
index a3e1e919..00000000
Binary files a/locale/tr/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/tr/freedombone-utils-backup.json b/locale/tr/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/tr/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/tr/freedombone-utils-config.json b/locale/tr/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/tr/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-database.json b/locale/tr/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/tr/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-depends.json b/locale/tr/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/tr/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-final.json b/locale/tr/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/tr/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-git.json b/locale/tr/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/tr/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-help.json b/locale/tr/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/tr/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-interactive.json b/locale/tr/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/tr/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-keys.json b/locale/tr/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/tr/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-onion.json b/locale/tr/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/tr/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-rng.json b/locale/tr/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/tr/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-selector.json b/locale/tr/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/tr/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-setup.json b/locale/tr/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/tr/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-validation.json b/locale/tr/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/tr/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-web.json b/locale/tr/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/tr/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-utils-wifi.json b/locale/tr/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/tr/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/tr/freedombone-wifi.json b/locale/tr/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/tr/freedombone-wifi.json
+++ b/locale/tr/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/tr/freedombone.json
+++ b/locale/tr/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-addremove.json b/locale/uk/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/uk/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-adduser.json b/locale/uk/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/uk/freedombone-adduser.json
+++ b/locale/uk/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/uk/freedombone-app-blog.json b/locale/uk/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/uk/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-blogstatic.json b/locale/uk/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/uk/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-cjdns.json b/locale/uk/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/uk/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-dlna.json b/locale/uk/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/uk/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-dokuwiki.json b/locale/uk/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/uk/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-emacs.json b/locale/uk/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/uk/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-etherpad.json b/locale/uk/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/uk/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-gnusocial.json b/locale/uk/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/uk/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-gogs.json b/locale/uk/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/uk/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-htmly.json b/locale/uk/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/uk/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-hubzilla.json b/locale/uk/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/uk/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-ipfs.json b/locale/uk/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/uk/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-irc.json b/locale/uk/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/uk/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-jitsi.json b/locale/uk/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/uk/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-mediagoblin.json b/locale/uk/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/uk/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-mumble.json b/locale/uk/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/uk/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-pelican.json b/locale/uk/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/uk/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-pihole.json b/locale/uk/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/uk/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-postactiv.json b/locale/uk/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/uk/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-rss.json b/locale/uk/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/uk/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-searx.json b/locale/uk/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/uk/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-sip.json b/locale/uk/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/uk/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-syncthing.json b/locale/uk/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/uk/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-tahoelafs.json b/locale/uk/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/uk/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-tox.json b/locale/uk/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/uk/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-vim.json b/locale/uk/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/uk/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-webmail.json b/locale/uk/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/uk/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-wiki.json b/locale/uk/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/uk/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-xmpp.json b/locale/uk/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/uk/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-app-zeronet.json b/locale/uk/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/uk/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-backup-local.json b/locale/uk/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/uk/freedombone-backup-local.json
+++ b/locale/uk/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-backup-remote.json b/locale/uk/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/uk/freedombone-backup-remote.json
+++ b/locale/uk/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-base-chaoskey.json b/locale/uk/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/uk/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-base-email.json b/locale/uk/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/uk/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-config.json b/locale/uk/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/uk/freedombone-config.json
+++ b/locale/uk/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/uk/freedombone-controlpanel-user.json b/locale/uk/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/uk/freedombone-controlpanel-user.json
+++ b/locale/uk/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/uk/freedombone-controlpanel.json b/locale/uk/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/uk/freedombone-controlpanel.json
+++ b/locale/uk/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/uk/freedombone-image-customise.json b/locale/uk/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/uk/freedombone-image-customise.json
+++ b/locale/uk/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/uk/freedombone-image-mesh.json b/locale/uk/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/uk/freedombone-image-mesh.json
+++ b/locale/uk/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-image.json b/locale/uk/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/uk/freedombone-image.json
+++ b/locale/uk/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-keydrive.json b/locale/uk/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/uk/freedombone-keydrive.json
+++ b/locale/uk/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/uk/freedombone-mesh-batman.json b/locale/uk/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/uk/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-mesh-blog.json b/locale/uk/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/uk/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-mesh-install.json b/locale/uk/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/uk/freedombone-mesh-install.json
+++ b/locale/uk/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-mesh-reset.json b/locale/uk/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/uk/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-mesh-visit-site.json b/locale/uk/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/uk/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-mirrors.json b/locale/uk/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/uk/freedombone-mirrors.json
+++ b/locale/uk/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-pin-cert.json b/locale/uk/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/uk/freedombone-pin-cert.json
+++ b/locale/uk/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-recoverkey.json b/locale/uk/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/uk/freedombone-recoverkey.json
+++ b/locale/uk/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/uk/freedombone-restore-local.json b/locale/uk/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/uk/freedombone-restore-local.json
+++ b/locale/uk/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/uk/freedombone-restore-remote.json b/locale/uk/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/uk/freedombone-restore-remote.json
+++ b/locale/uk/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-rmuser.json b/locale/uk/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/uk/freedombone-rmuser.json
+++ b/locale/uk/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-sec.json b/locale/uk/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/uk/freedombone-sec.json
+++ b/locale/uk/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/uk/freedombone-tests.json b/locale/uk/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/uk/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-update-date.json b/locale/uk/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/uk/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/uk/freedombone-update-date.mo b/locale/uk/freedombone-update-date.mo
deleted file mode 100644
index 8cc55eca..00000000
Binary files a/locale/uk/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/uk/freedombone-utils-backup.json b/locale/uk/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/uk/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/uk/freedombone-utils-config.json b/locale/uk/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/uk/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-database.json b/locale/uk/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/uk/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-depends.json b/locale/uk/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/uk/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-final.json b/locale/uk/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/uk/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-git.json b/locale/uk/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/uk/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-help.json b/locale/uk/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/uk/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-interactive.json b/locale/uk/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/uk/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-keys.json b/locale/uk/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/uk/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-onion.json b/locale/uk/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/uk/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-rng.json b/locale/uk/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/uk/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-selector.json b/locale/uk/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/uk/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-setup.json b/locale/uk/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/uk/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-validation.json b/locale/uk/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/uk/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-web.json b/locale/uk/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/uk/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-utils-wifi.json b/locale/uk/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/uk/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/uk/freedombone-wifi.json b/locale/uk/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/uk/freedombone-wifi.json
+++ b/locale/uk/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/uk/freedombone.json
+++ b/locale/uk/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-addremove.json b/locale/vi/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/vi/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-adduser.json b/locale/vi/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/vi/freedombone-adduser.json
+++ b/locale/vi/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/vi/freedombone-app-blog.json b/locale/vi/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/vi/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-blogstatic.json b/locale/vi/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/vi/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-cjdns.json b/locale/vi/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/vi/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-dlna.json b/locale/vi/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/vi/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-dokuwiki.json b/locale/vi/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/vi/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-emacs.json b/locale/vi/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/vi/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-etherpad.json b/locale/vi/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/vi/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-gnusocial.json b/locale/vi/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/vi/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-gogs.json b/locale/vi/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/vi/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-htmly.json b/locale/vi/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/vi/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-hubzilla.json b/locale/vi/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/vi/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-ipfs.json b/locale/vi/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/vi/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-irc.json b/locale/vi/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/vi/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-jitsi.json b/locale/vi/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/vi/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-mediagoblin.json b/locale/vi/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/vi/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-mumble.json b/locale/vi/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/vi/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-pelican.json b/locale/vi/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/vi/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-pihole.json b/locale/vi/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/vi/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-postactiv.json b/locale/vi/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/vi/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-rss.json b/locale/vi/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/vi/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-searx.json b/locale/vi/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/vi/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-sip.json b/locale/vi/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/vi/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-syncthing.json b/locale/vi/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/vi/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-tahoelafs.json b/locale/vi/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/vi/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-tox.json b/locale/vi/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/vi/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-vim.json b/locale/vi/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/vi/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-webmail.json b/locale/vi/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/vi/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-wiki.json b/locale/vi/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/vi/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-xmpp.json b/locale/vi/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/vi/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-app-zeronet.json b/locale/vi/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/vi/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-backup-local.json b/locale/vi/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/vi/freedombone-backup-local.json
+++ b/locale/vi/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-backup-remote.json b/locale/vi/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/vi/freedombone-backup-remote.json
+++ b/locale/vi/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-base-chaoskey.json b/locale/vi/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/vi/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-base-email.json b/locale/vi/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/vi/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-config.json b/locale/vi/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/vi/freedombone-config.json
+++ b/locale/vi/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/vi/freedombone-controlpanel-user.json b/locale/vi/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/vi/freedombone-controlpanel-user.json
+++ b/locale/vi/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/vi/freedombone-controlpanel.json b/locale/vi/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/vi/freedombone-controlpanel.json
+++ b/locale/vi/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/vi/freedombone-image-customise.json b/locale/vi/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/vi/freedombone-image-customise.json
+++ b/locale/vi/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/vi/freedombone-image-mesh.json b/locale/vi/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/vi/freedombone-image-mesh.json
+++ b/locale/vi/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-image.json b/locale/vi/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/vi/freedombone-image.json
+++ b/locale/vi/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-keydrive.json b/locale/vi/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/vi/freedombone-keydrive.json
+++ b/locale/vi/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/vi/freedombone-mesh-batman.json b/locale/vi/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/vi/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-mesh-blog.json b/locale/vi/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/vi/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-mesh-install.json b/locale/vi/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/vi/freedombone-mesh-install.json
+++ b/locale/vi/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-mesh-reset.json b/locale/vi/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/vi/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-mesh-visit-site.json b/locale/vi/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/vi/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-mirrors.json b/locale/vi/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/vi/freedombone-mirrors.json
+++ b/locale/vi/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-pin-cert.json b/locale/vi/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/vi/freedombone-pin-cert.json
+++ b/locale/vi/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-recoverkey.json b/locale/vi/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/vi/freedombone-recoverkey.json
+++ b/locale/vi/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/vi/freedombone-restore-local.json b/locale/vi/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/vi/freedombone-restore-local.json
+++ b/locale/vi/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/vi/freedombone-restore-remote.json b/locale/vi/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/vi/freedombone-restore-remote.json
+++ b/locale/vi/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-rmuser.json b/locale/vi/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/vi/freedombone-rmuser.json
+++ b/locale/vi/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-sec.json b/locale/vi/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/vi/freedombone-sec.json
+++ b/locale/vi/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/vi/freedombone-tests.json b/locale/vi/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/vi/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-update-date.json b/locale/vi/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/vi/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/vi/freedombone-update-date.mo b/locale/vi/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/vi/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/vi/freedombone-utils-backup.json b/locale/vi/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/vi/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/vi/freedombone-utils-config.json b/locale/vi/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/vi/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-database.json b/locale/vi/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/vi/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-depends.json b/locale/vi/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/vi/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-final.json b/locale/vi/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/vi/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-git.json b/locale/vi/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/vi/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-help.json b/locale/vi/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/vi/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-interactive.json b/locale/vi/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/vi/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-keys.json b/locale/vi/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/vi/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-onion.json b/locale/vi/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/vi/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-rng.json b/locale/vi/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/vi/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-selector.json b/locale/vi/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/vi/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-setup.json b/locale/vi/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/vi/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-validation.json b/locale/vi/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/vi/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-web.json b/locale/vi/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/vi/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-utils-wifi.json b/locale/vi/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/vi/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/vi/freedombone-wifi.json b/locale/vi/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/vi/freedombone-wifi.json
+++ b/locale/vi/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/vi/freedombone.json
+++ b/locale/vi/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-addremove.json b/locale/zh_cn/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/zh_cn/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-adduser.json b/locale/zh_cn/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/zh_cn/freedombone-adduser.json
+++ b/locale/zh_cn/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/zh_cn/freedombone-app-blog.json b/locale/zh_cn/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-blogstatic.json b/locale/zh_cn/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-cjdns.json b/locale/zh_cn/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-dlna.json b/locale/zh_cn/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-dokuwiki.json b/locale/zh_cn/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-emacs.json b/locale/zh_cn/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-etherpad.json b/locale/zh_cn/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-gnusocial.json b/locale/zh_cn/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-gogs.json b/locale/zh_cn/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-htmly.json b/locale/zh_cn/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-hubzilla.json b/locale/zh_cn/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-ipfs.json b/locale/zh_cn/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-irc.json b/locale/zh_cn/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-jitsi.json b/locale/zh_cn/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-mediagoblin.json b/locale/zh_cn/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-mumble.json b/locale/zh_cn/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-pelican.json b/locale/zh_cn/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-pihole.json b/locale/zh_cn/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-postactiv.json b/locale/zh_cn/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-rss.json b/locale/zh_cn/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-searx.json b/locale/zh_cn/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-sip.json b/locale/zh_cn/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-syncthing.json b/locale/zh_cn/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-tahoelafs.json b/locale/zh_cn/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-tox.json b/locale/zh_cn/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-vim.json b/locale/zh_cn/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-webmail.json b/locale/zh_cn/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-wiki.json b/locale/zh_cn/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-xmpp.json b/locale/zh_cn/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-app-zeronet.json b/locale/zh_cn/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/zh_cn/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-backup-local.json b/locale/zh_cn/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/zh_cn/freedombone-backup-local.json
+++ b/locale/zh_cn/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-backup-remote.json b/locale/zh_cn/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/zh_cn/freedombone-backup-remote.json
+++ b/locale/zh_cn/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-base-chaoskey.json b/locale/zh_cn/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/zh_cn/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-base-email.json b/locale/zh_cn/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/zh_cn/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-config.json b/locale/zh_cn/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/zh_cn/freedombone-config.json
+++ b/locale/zh_cn/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/zh_cn/freedombone-controlpanel-user.json b/locale/zh_cn/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/zh_cn/freedombone-controlpanel-user.json
+++ b/locale/zh_cn/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/zh_cn/freedombone-controlpanel.json b/locale/zh_cn/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/zh_cn/freedombone-controlpanel.json
+++ b/locale/zh_cn/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/zh_cn/freedombone-image-customise.json b/locale/zh_cn/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/zh_cn/freedombone-image-customise.json
+++ b/locale/zh_cn/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/zh_cn/freedombone-image-mesh.json b/locale/zh_cn/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/zh_cn/freedombone-image-mesh.json
+++ b/locale/zh_cn/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-image.json b/locale/zh_cn/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/zh_cn/freedombone-image.json
+++ b/locale/zh_cn/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-keydrive.json b/locale/zh_cn/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/zh_cn/freedombone-keydrive.json
+++ b/locale/zh_cn/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/zh_cn/freedombone-mesh-batman.json b/locale/zh_cn/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/zh_cn/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-mesh-blog.json b/locale/zh_cn/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/zh_cn/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-mesh-install.json b/locale/zh_cn/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/zh_cn/freedombone-mesh-install.json
+++ b/locale/zh_cn/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-mesh-reset.json b/locale/zh_cn/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/zh_cn/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-mesh-visit-site.json b/locale/zh_cn/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/zh_cn/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-mirrors.json b/locale/zh_cn/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/zh_cn/freedombone-mirrors.json
+++ b/locale/zh_cn/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-pin-cert.json b/locale/zh_cn/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/zh_cn/freedombone-pin-cert.json
+++ b/locale/zh_cn/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-recoverkey.json b/locale/zh_cn/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/zh_cn/freedombone-recoverkey.json
+++ b/locale/zh_cn/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/zh_cn/freedombone-restore-local.json b/locale/zh_cn/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/zh_cn/freedombone-restore-local.json
+++ b/locale/zh_cn/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/zh_cn/freedombone-restore-remote.json b/locale/zh_cn/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/zh_cn/freedombone-restore-remote.json
+++ b/locale/zh_cn/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-rmuser.json b/locale/zh_cn/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/zh_cn/freedombone-rmuser.json
+++ b/locale/zh_cn/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-sec.json b/locale/zh_cn/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/zh_cn/freedombone-sec.json
+++ b/locale/zh_cn/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-tests.json b/locale/zh_cn/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/zh_cn/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-update-date.json b/locale/zh_cn/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/zh_cn/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-update-date.mo b/locale/zh_cn/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/zh_cn/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/zh_cn/freedombone-utils-backup.json b/locale/zh_cn/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/zh_cn/freedombone-utils-config.json b/locale/zh_cn/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-database.json b/locale/zh_cn/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-depends.json b/locale/zh_cn/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-final.json b/locale/zh_cn/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-git.json b/locale/zh_cn/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-help.json b/locale/zh_cn/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-interactive.json b/locale/zh_cn/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-keys.json b/locale/zh_cn/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-onion.json b/locale/zh_cn/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-rng.json b/locale/zh_cn/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-selector.json b/locale/zh_cn/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-setup.json b/locale/zh_cn/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-validation.json b/locale/zh_cn/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-web.json b/locale/zh_cn/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-utils-wifi.json b/locale/zh_cn/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/zh_cn/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/zh_cn/freedombone-wifi.json b/locale/zh_cn/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/zh_cn/freedombone-wifi.json
+++ b/locale/zh_cn/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/zh_cn/freedombone.json
+++ b/locale/zh_cn/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-addremove.json b/locale/zh_tw/freedombone-addremove.json
new file mode 100644
index 00000000..bead2501
--- /dev/null
+++ b/locale/zh_tw/freedombone-addremove.json
@@ -0,0 +1,7 @@
+{
+ "Freedombone": "",
+ "Add/Remove Applications": "",
+ "Remove applications": "",
+ "\\nYou have chosen to remove $n apps.\\n\\n $removals\\n\\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\\n\\nAre you sure that you wish to continue?": "",
+ "\\nYou have chosen to install $n apps.\\n\\n $installs\\n\\nIf you choose 'yes' then these will now be installed.\\n\\nAre you sure that you wish to continue?": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-adduser.json b/locale/zh_tw/freedombone-adduser.json
index 179e11c3..6f08850f 100644
--- a/locale/zh_tw/freedombone-adduser.json
+++ b/locale/zh_tw/freedombone-adduser.json
@@ -3,12 +3,9 @@
"$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": "",
+ "Adding user to ${app_name}": "",
+ "Failed with error code ${retval}": "",
"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": ""
diff --git a/locale/zh_tw/freedombone-app-blog.json b/locale/zh_tw/freedombone-app-blog.json
new file mode 100644
index 00000000..78068795
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-blog.json
@@ -0,0 +1,27 @@
+{
+ "Change blog avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your blog avatar has been changed": "",
+ "Freedombone Configuration": "",
+ "Blog Configuration": "",
+ "\\nPlease enter your blog details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring blog installation": "",
+ "No content directory found after restoring blog": "",
+ "Backing up blog": "",
+ "Backup of blog complete": "",
+ "Blog domain specified but not found in $temp_backup_dir": "",
+ "Restoring blog installation $FULLBLOG_DOMAIN_NAME": "",
+ "Restore of blog complete": "",
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-blogstatic.json b/locale/zh_tw/freedombone-app-blogstatic.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-blogstatic.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-cjdns.json b/locale/zh_tw/freedombone-app-cjdns.json
new file mode 100644
index 00000000..76bf098a
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-cjdns.json
@@ -0,0 +1,10 @@
+{
+ "Restoring cjdns installation": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-dlna.json b/locale/zh_tw/freedombone-app-dlna.json
new file mode 100644
index 00000000..9413aa45
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-dlna.json
@@ -0,0 +1,13 @@
+{
+ "Freedombone Control Panel": "",
+ "Media Menu": "",
+ "Choose an operation:": "",
+ "Attach a drive containing playable media": "",
+ "Remove a drive containing playable media": "",
+ "Exit": "",
+ "Restoring DLNA cache": "",
+ "Backing up DLNA cache": "",
+ "Backup of DLNA cache complete": "",
+ "Restore of DLNA complete": "",
+ "ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-dokuwiki.json b/locale/zh_tw/freedombone-app-dokuwiki.json
new file mode 100644
index 00000000..d8ef0540
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-dokuwiki.json
@@ -0,0 +1,10 @@
+{
+ "Restoring Dokuwiki installation": "",
+ "Restore of Dokuwiki complete": "",
+ "Backing up dokuwiki": "",
+ "Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME": "",
+ "Dokuwiki password": "",
+ "Dokuwiki onion domain: ${DOKUWIKI_ONION_HOSTNAME}": "",
+ "Dokuwiki username: $MY_USERNAME": "",
+ "Dokuwiki password: $DOKUWIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-emacs.json b/locale/zh_tw/freedombone-app-emacs.json
new file mode 100644
index 00000000..ca7e8e4b
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-emacs.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Emacs config for $USERNAME": "",
+ "Restoring Emacs config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-etherpad.json b/locale/zh_tw/freedombone-app-etherpad.json
new file mode 100644
index 00000000..3065e3fc
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-etherpad.json
@@ -0,0 +1,18 @@
+{
+ "Welcome to ${ETHERPAD_TITLE}!\\n\\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!": "",
+ "Etherpad Title": "",
+ "Freedombone Control Panel": "",
+ "Title has been set": "",
+ "Etherpad Welcome Message": "",
+ "Welcome message has been set": "",
+ "Etherpad Settings": "",
+ "Choose an operation:": "",
+ "Set Title": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "etherpad domain specified but not found in ${temp_backup_dir}": "",
+ "Etherpad administrator": "",
+ "Etherpad administrator nickname: $MY_USERNAME": "",
+ "Etherpad administrator password: $ETHERPAD_ADMIN_PASSWORD": "",
+ "Etherpad onion domain: ${ETHERPAD_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-gnusocial.json b/locale/zh_tw/freedombone-app-gnusocial.json
new file mode 100644
index 00000000..11db1871
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-gnusocial.json
@@ -0,0 +1,28 @@
+{
+ "Freedombone Configuration": "",
+ "GNU Social Configuration": "",
+ "\\nPlease enter your GNU Social 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:": "",
+ "Domain:": "",
+ "Welcome Message:": "",
+ "Background image URL:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "GNU Social": "",
+ "Freedombone Control Panel": "",
+ "Set GNU Social login background": "",
+ "The background image has been set": "",
+ "Set GNU Social welcome message": "",
+ "Welcome message has been set": "",
+ "Choose an operation:": "",
+ "Set a login screen background image": "",
+ "Set a welcome message": "",
+ "Exit": "",
+ "Restoring gnusocial": "",
+ "Restore of gnusocial complete": "",
+ "Backing up GNU social installation": "",
+ "gnusocial domain specified but not found in ${temp_backup_dir}": "",
+ "Gnusocial administrator": "",
+ "Gnusocial administrator nickname: $MY_USERNAME": "",
+ "Gnusocial administrator password: $GNUSOCIAL_ADMIN_PASSWORD": "",
+ "Gnusocial onion domain: ${GNUSOCIAL_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-gogs.json b/locale/zh_tw/freedombone-app-gogs.json
new file mode 100644
index 00000000..a040aeff
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-gogs.json
@@ -0,0 +1,11 @@
+{
+ "Backing up gogs": "",
+ "Gogs backup complete": "",
+ "Restoring Gogs settings": "",
+ "Restoring Gogs repos": "",
+ "Restoring Gogs authorized_keys": "",
+ "Obtaining Gogs settings backup": "",
+ "Obtaining Gogs repos backup": "",
+ "Obtaining Gogs authorized_keys backup": "",
+ "Restore of Gogs complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-htmly.json b/locale/zh_tw/freedombone-app-htmly.json
new file mode 100644
index 00000000..88fd48f4
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-htmly.json
@@ -0,0 +1,18 @@
+{
+ "Change htmly avatar": "",
+ "Freedombone Control Panel": "",
+ "Enter a URL for an image. It should be approximately a square image.": "",
+ "Your htmly avatar has been changed": "",
+ "Restoring htmly installation": "",
+ "No content directory found after restoring htmly": "",
+ "Backing up htmly": "",
+ "Backup of htmly complete": "",
+ "Htmly domain specified but not found in $temp_backup_dir": "",
+ "Restoring htmly installation $HTMLY_DOMAIN_NAME": "",
+ "Restore of htmly complete": "",
+ "Your htmly username: $MY_USERNAME": "",
+ "Your htmly password is: $HTMLY_ADMIN_PASSWORD": "",
+ "Log into your htmly at https://$HTMLY_DOMAIN_NAME/login": "",
+ "Htmly onion domain: ${HTMLY_ONION_HOSTNAME}": "",
+ "Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-hubzilla.json b/locale/zh_tw/freedombone-app-hubzilla.json
new file mode 100644
index 00000000..705cd7c0
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-hubzilla.json
@@ -0,0 +1,20 @@
+{
+ "Renew SSL certificate": "",
+ "Freedombone Control Panel": "",
+ "\\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": "",
+ "Hubzilla": "",
+ "Choose an operation:": "",
+ "Set channel directory server": "",
+ "Back to main menu": "",
+ "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": "",
+ "Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-ipfs.json b/locale/zh_tw/freedombone-app-ipfs.json
new file mode 100644
index 00000000..9f0a53f7
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-ipfs.json
@@ -0,0 +1,7 @@
+{
+ "Restoring IPFS": "",
+ "Restore of IPFS complete": "",
+ "Backing up IPFS": "",
+ "Backup of IPFS complete": "",
+ "ipfs was not found in downloaded package": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-irc.json b/locale/zh_tw/freedombone-app-irc.json
new file mode 100644
index 00000000..7dadc52b
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-irc.json
@@ -0,0 +1,13 @@
+{
+ "IRC Password": "",
+ "Freedombone Control Panel": "",
+ "Password for all IRC users, or press Enter for no password": "",
+ "The IRC password was changed": "",
+ "IRC Menu": "",
+ "No IRC server is installed": "",
+ "Choose an operation:": "",
+ "Set a password for all IRC users": "",
+ "Show current IRC login password": "",
+ "Exit": "",
+ "ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-jitsi.json b/locale/zh_tw/freedombone-app-jitsi.json
new file mode 100644
index 00000000..656364bb
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-jitsi.json
@@ -0,0 +1,4 @@
+{
+ "Jitsi ${jitsi_subdomain_name} onion domain: ${new_domain}": "",
+ "Jitsi onion domain: ${JITSI_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-mediagoblin.json b/locale/zh_tw/freedombone-app-mediagoblin.json
new file mode 100644
index 00000000..b7903aa5
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-mediagoblin.json
@@ -0,0 +1,12 @@
+{
+ "Freedombone Configuration": "",
+ "Mediagoblin Configuration": "",
+ "\\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up Mediagoblin": "",
+ "Backup of Mediagoblin complete": "",
+ "Restoring Mediagoblin installation": "",
+ "Restore of Mediagoblin complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-mumble.json b/locale/zh_tw/freedombone-app-mumble.json
new file mode 100644
index 00000000..a60d0310
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-mumble.json
@@ -0,0 +1,12 @@
+{
+ "Backing up Mumble settings": "",
+ "Mumble settings backup complete": "",
+ "Restoring mumble settings": "",
+ "Backing up mumble settings": "",
+ "Backup of mumble settings complete": "",
+ "Restoring Mumble settings": "",
+ "Restore of Mumble complete": "",
+ "Mumble Server": "",
+ "Mumble onion domain:$MUMBLE_ONION_HOSTNAME": "",
+ "Mumble server password: $MUMBLE_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-pelican.json b/locale/zh_tw/freedombone-app-pelican.json
new file mode 100644
index 00000000..e55d00d2
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-pelican.json
@@ -0,0 +1,3 @@
+{
+ "Freedombone Blog": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-pihole.json b/locale/zh_tw/freedombone-app-pihole.json
new file mode 100644
index 00000000..5a2b27b1
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-pihole.json
@@ -0,0 +1,34 @@
+{
+ "Ad Blocker Upstream DNS": "",
+ "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": "",
+ "Pause Ad Blocker": "",
+ "Ad blocking is paused": "",
+ "Resume Ad Blocker": "",
+ "Ad blocking has resumed": "",
+ "Freedombone Control Panel": "",
+ "Ad Blocker": "",
+ "Choose an operation:": "",
+ "Edit ads list": "",
+ "Edit blacklisted domain names": "",
+ "Edit whitelisted domain names": "",
+ "Change upstream DNS servers": "",
+ "Pause blocker": "",
+ "Resume blocker": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-postactiv.json b/locale/zh_tw/freedombone-app-postactiv.json
new file mode 100644
index 00000000..83c0f91c
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-postactiv.json
@@ -0,0 +1,14 @@
+{
+ "Freedombone Configuration": "",
+ "PostActiv Configuration": "",
+ "\\nPlease enter your postactiv details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "postactiv domain specified but not found in ${temp_backup_dir}": "",
+ "postactiv": "",
+ "Postactiv administrator": "",
+ "Postactiv administrator nickname: $MY_USERNAME": "",
+ "Postactiv administrator password: $POSTACTIV_ADMIN_PASSWORD": "",
+ "Postactiv onion domain: ${POSTACTIV_ONION_HOSTNAME}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-rss.json b/locale/zh_tw/freedombone-app-rss.json
new file mode 100644
index 00000000..1029cc40
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-rss.json
@@ -0,0 +1,13 @@
+{
+ "Backing up ttrss": "",
+ "ttrss backup complete": "",
+ "Backing up RSS reader installation": "",
+ "RSS reader domain specified but not found in /etc/share/ttrss}": "",
+ "Restoring ttrss": "",
+ "Restore of ttrss complete": "",
+ "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}": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-searx.json b/locale/zh_tw/freedombone-app-searx.json
new file mode 100644
index 00000000..b2c25745
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-searx.json
@@ -0,0 +1,5 @@
+{
+ "Search engine login": "",
+ "Search engine onion domain: ${SEARX_ONION_HOSTNAME}": "",
+ "Your search engine password is: $SEARX_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-sip.json b/locale/zh_tw/freedombone-app-sip.json
new file mode 100644
index 00000000..502b8b52
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-sip.json
@@ -0,0 +1,12 @@
+{
+ "Backing up SIP settings": "",
+ "SIP settings backup complete": "",
+ "Restoring SIP settings": "",
+ "Restore of SIP settings complete": "",
+ "Backup SIP settings complete": "",
+ "SIP Server": "",
+ "SIP onion_domain: $SIP_ONION_HOSTNAME": "",
+ "SIP server username: $MY_USERNAME": "",
+ "SIP server extension: 201": "",
+ "SIP server password: $SIP_SERVER_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-syncthing.json b/locale/zh_tw/freedombone-app-syncthing.json
new file mode 100644
index 00000000..7f5297a7
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-syncthing.json
@@ -0,0 +1,33 @@
+{
+ "# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID": "",
+ "Device ID for ${PROJECT_NAME}": "",
+ "Freedombone User Control Panel": "",
+ "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": "",
+ "File Synchronization": "",
+ "Choose an operation:": "",
+ "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": "",
+ "Back to main menu": "",
+ "Backing up syncthing files for $USERNAME": "",
+ "Restoring syncthing configuration": "",
+ "Restoring syncthing shared files": "",
+ "Restoring syncthing files for $USERNAME": "",
+ "Backing up syncthing configuration": "",
+ "Backup of syncthing configuration complete": "",
+ "Backing up syncthing shared files": "",
+ "Backup of syncthing shared files complete": "",
+ "Restore of syncthing files for $USERNAME complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-tahoelafs.json b/locale/zh_tw/freedombone-app-tahoelafs.json
new file mode 100644
index 00000000..36e92e77
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-tahoelafs.json
@@ -0,0 +1,4 @@
+{
+ "Restoring Tahoe-LAFS introducer": "",
+ "Restore complete": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-tox.json b/locale/zh_tw/freedombone-app-tox.json
new file mode 100644
index 00000000..d98d7748
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-tox.json
@@ -0,0 +1,15 @@
+{
+ "Backing up Tox": "",
+ "Backup of Tox complete": "",
+ "Restoring Tox node settings": "",
+ "Restore of Tox node complete": "",
+ "Your Tox node public key is": "",
+ "tox onion domain: ${TOX_ONION_HOSTNAME}": "",
+ "Your Tox node public key is: $TOX_PUBLIC_KEY": "",
+ "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Account to run Tox's DHT bootstrap daemon": "",
+ "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
+ "Tox client was not installed to $TOXIC_FILE": "",
+ "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-vim.json b/locale/zh_tw/freedombone-app-vim.json
new file mode 100644
index 00000000..e043eaf9
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-vim.json
@@ -0,0 +1,4 @@
+{
+ "Backing up Vim config for $USERNAME": "",
+ "Restoring Vim config for $USERNAME": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-webmail.json b/locale/zh_tw/freedombone-app-webmail.json
new file mode 100644
index 00000000..96cce2c9
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-webmail.json
@@ -0,0 +1,9 @@
+{
+ "Backing up webmail": "",
+ "Backing up webmail complete": "",
+ "Restoring webmail": "",
+ "Restore of webmail complete": "",
+ "To access webmail open https://$DEFAULT_DOMAIN_NAME/webmail/index.php": "",
+ "To access webmail open http://$WEBMAIL_ONION_HOSTNAME": "",
+ "MariaDB webmail admin password: $WEBMAIL_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-wiki.json b/locale/zh_tw/freedombone-app-wiki.json
new file mode 100644
index 00000000..f9ce9f76
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-wiki.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Configuration": "",
+ "Wiki Configuration": "",
+ "\\nPlease enter your wiki details:": "",
+ "Title:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Backing up $source_directory to $dest_directory": "",
+ "Backup to $dest_directory complete": "",
+ "Restoring Wiki installation": "",
+ "Restore of Wiki complete": "",
+ "Backing up wiki": "",
+ "Restoring Wiki installation $WIKI_DOMAIN_NAME": "",
+ "Wiki password": "",
+ "Wiki onion domain: ${WIKI_ONION_HOSTNAME}": "",
+ "Wiki username: $MY_USERNAME": "",
+ "Wiki password: $WIKI_ADMIN_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-xmpp.json b/locale/zh_tw/freedombone-app-xmpp.json
new file mode 100644
index 00000000..28e2a47a
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-xmpp.json
@@ -0,0 +1,9 @@
+{
+ "Restoring xmpp settings": "",
+ "Restore of xmpp settings complete": "",
+ "Backing up the xmpp settings": "",
+ "Backup of xmpp settings complete": "",
+ "ERROR: prosody does not appear to have installed. $CHECK_MESSAGE": "",
+ "XMPP onion domain: ${XMPP_ONION_HOSTNAME}": "",
+ "Your XMPP password is: $XMPP_PASSWORD": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-app-zeronet.json b/locale/zh_tw/freedombone-app-zeronet.json
new file mode 100644
index 00000000..3f0d5b96
--- /dev/null
+++ b/locale/zh_tw/freedombone-app-zeronet.json
@@ -0,0 +1,23 @@
+{
+ "Address: $ZERONET_BLOG_ADDRESS": "",
+ "Public key: $ZERONET_BLOG_PRIVATE_KEY": "",
+ "Unable to find site directory: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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: $MESH_INSTALL_DIR/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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-backup-local.json b/locale/zh_tw/freedombone-backup-local.json
index ade08545..8b9bda6e 100644
--- a/locale/zh_tw/freedombone-backup-local.json
+++ b/locale/zh_tw/freedombone-backup-local.json
@@ -1,21 +1,11 @@
{
- "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 Emacs config for $USERNAME": "",
"Backing up config files for $USERNAME": "",
"Backing up monkeysphere files for $USERNAME": "",
"Backing up local files for $USERNAME": "",
@@ -29,10 +19,6 @@
"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": ""
+ "Backup to USB drive is complete. You can now unplug it.": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-backup-remote.json b/locale/zh_tw/freedombone-backup-remote.json
index f54a28c5..0ee5618e 100644
--- a/locale/zh_tw/freedombone-backup-remote.json
+++ b/locale/zh_tw/freedombone-backup-remote.json
@@ -1,10 +1,5 @@
{
"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": "",
@@ -23,32 +18,10 @@
"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": ""
+ "Unable to export database settings": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-base-chaoskey.json b/locale/zh_tw/freedombone-base-chaoskey.json
new file mode 100644
index 00000000..90adc625
--- /dev/null
+++ b/locale/zh_tw/freedombone-base-chaoskey.json
@@ -0,0 +1,6 @@
+{
+ "chaoskey tarball: $CHAOSKEY_TARBALL": "",
+ "Hash does not match. This could indicate that the tarball has been tampered with.": "",
+ "chaoskey expected tarball hash: $CHAOSKEY_HASH": "",
+ "chaoskey actual hash: $hash": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-base-email.json b/locale/zh_tw/freedombone-base-email.json
new file mode 100644
index 00000000..e25d1452
--- /dev/null
+++ b/locale/zh_tw/freedombone-base-email.json
@@ -0,0 +1,26 @@
+{
+ "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": "",
+ "ERROR: Exim does not appear to have installed. $CHECK_MESSAGE": "",
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "Added onion site for ${onion_service_name}": "",
+ "${onion_service_name} onion site hostname not found": "",
+ "# 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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-config.json b/locale/zh_tw/freedombone-config.json
index e41171d3..3c55c989 100644
--- a/locale/zh_tw/freedombone-config.json
+++ b/locale/zh_tw/freedombone-config.json
@@ -1,19 +1,101 @@
{
- "Welcome to \\$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
": "",
+ "Welcome to \\$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
": "",
"${PROJECT_NAME}-config -f [config filename] -m [min password length]": "",
+ "Freedombone Configuration": "",
+ "Your email address": "",
+ "Your main domain name": "",
+ "\\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain:": "",
+ "Code:": "",
+ "mail subdomain Code:": "",
+ "XMPP subdomain Code:": "",
+ "Which domain name should your email/XMPP/IRC/Mumble be associated with?": "",
+ "Domain name validation": "",
+ "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.": "",
+ "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": "",
+ "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": "",
+ "Type of Random Number Generator:": "",
+ "OneRNG Device": "",
+ "Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation": "",
+ "\\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": "",
+ "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)": "",
+ "Type of Installation": "",
"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.": "",
@@ -96,135 +178,5 @@
"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:": "",
- "Media Server Configuration": "",
- "\\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server 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/zh_tw/freedombone-controlpanel-user.json b/locale/zh_tw/freedombone-controlpanel-user.json
index 1512dd45..c0a63d27 100644
--- a/locale/zh_tw/freedombone-controlpanel-user.json
+++ b/locale/zh_tw/freedombone-controlpanel-user.json
@@ -25,6 +25,14 @@
"No email address was given": "",
"No folder name was given": "",
"Email rule for $RULE_EMAIL was added": "",
+ "Trust a PGP/GPG key or website domain": "",
+ "Set the trust level for $TRUST_ADDRESS:": "",
+ "I don't know or won't say": "",
+ "I do NOT trust": "",
+ "I trust marginally": "",
+ "I trust fully": "",
+ "I trust ultimately": "",
+ "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"When email arrives with subject containing:": "",
"No subject text was given": "",
"Email rule for subject '$RULE_SUBJECT' was added": "",
@@ -71,33 +79,11 @@
"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": "",
"Sign a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be signed.\\n\\nIf you are signing a website domain then include the https:// at the beginning.\\n\\nIf you are signing an ssh key then include ssh:// before the domain name.": "",
"Sign a PGP/GPG key": "",
"$SIGN_ADDRESS was signed": "",
- "Trust a PGP/GPG key or website domain": "",
"Enter the Key ID, address or domain to be trusted.\\n\\nIf you are trusting a website domain then include the https:// at the beginning.\\n\\nIf you are trusting an ssh key then include ssh:// before the domain name.": "",
- "Set the trust level for $TRUST_ADDRESS:": "",
- "I don't know or won't say": "",
- "I do NOT trust": "",
- "I trust marginally": "",
- "I trust fully": "",
- "I trust ultimately": "",
- "$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}": "",
"My Encryption Keys": "",
"Choose an operation:": "",
"Show your PGP/GPG key": "",
@@ -111,19 +97,13 @@
"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": "",
"Monkeysphere sign server keys": "",
"Freedombone Security Configuration": "",
"\\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?": "",
+ "Freedombone": "",
+ "Run an App": "",
"User Control Panel": "",
"Use Email": "",
- "Use Tox Chat": "",
- "Use XMPP Chat": "",
- "Use IRC": "",
"Browse the Web": "",
"Set an outgoing email proxy": "",
"Administrator controls": "",
diff --git a/locale/zh_tw/freedombone-controlpanel.json b/locale/zh_tw/freedombone-controlpanel.json
index ab859ac6..329ec52f 100644
--- a/locale/zh_tw/freedombone-controlpanel.json
+++ b/locale/zh_tw/freedombone-controlpanel.json
@@ -21,12 +21,6 @@
"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": "",
@@ -36,12 +30,6 @@
"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": "",
@@ -82,41 +70,19 @@
"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}": "",
+ "Detected USB drive $USB_DRIVE": "",
+ "all": "",
+ "Exit": "",
+ "Restore apps": "",
+ "Restore apps from USB drive $USB_DRIVE": "",
+ "Freedombone": "",
+ "Restore all apps from USB": "",
+ "Restore failed with code $retcode": "",
+ "Restore all apps from $1": "",
+ "Restore complete": "",
+ "Restore apps from USB": "",
+ "Restore of ${app_name} failed with code $retcode": "",
+ "Restore apps from $1": "",
"Restore data from USB": "",
"Plug in your backup USB drive": "",
"Restore data from remote server": "",
@@ -131,25 +97,10 @@
"\\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": "",
+ "Format USB drive $USB_DRIVE": "",
+ "\\nPlease confirm that you wish to format drive\\n\\n ${USB_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!": "",
+ "Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST.": "",
+ "Remove backups from a USB drive $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.": "",
@@ -158,16 +109,19 @@
"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": "",
+ "Return to using a dynamic IP address": "",
+ "\\nDo you wish to go back to using a dynamic IP address?": "",
+ "System is rebooting. You may need to close this terminal and log in from a new one.": "",
"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": "",
+ "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 ${IPv4_address_base}.x\\n\\nIf you leave this field blank then the system will revert to using a dynamic IP address.": "",
"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 ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar": "",
+ "Static local IP address": "",
+ "\\nSet a static address for the wifi adapter?\\n\\nIf you select 'no' then wired ethernet will be used.": "",
+ "\\nFor the change to take effect your system will now need to reboot. Do this now?": "",
"Wifi Settings": "",
- "Wifi settings were changed": "",
+ "Wifi settings were changed.": "",
+ "Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect.": "",
"Hotspot Settings": "",
"Enabled (yes/no):": "",
"SSID:": "",
@@ -176,54 +130,67 @@
"No wifi hotspot passphrase was given": "",
"Wifi hotspot passphrase was too short": "",
"Hotspot settings were changed": "",
+ "Reinstall MariaDB": "",
+ "\\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\\n\\nAre you sure that you wish to continue?": "",
+ "MariaDB has been reinstalled": "",
+ "Firewall Settings": "",
+ "Email Domains": "",
+ "Enter the list of email domains to use, separated by semicolons": "",
+ "Email domains were changed": "",
+ "Email Domains not set": "",
+ "There should be no spaces in the list": "",
+ "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:": "",
"Backup and Restore": "",
"Choose an operation:": "",
"Backup data to USB drive": "",
"Restore GPG key from USB keydrive": "",
"Restore data from USB drive": "",
+ "Reinstall mariadb": "",
"Configure remote backups": "",
"Restore from remote backup": "",
"Backup GPG key to USB (master keydrive)": "",
"Backup GPG key to USB (fragment keydrive)": "",
+ "Format a USB drive (LUKS encrypted)": "",
+ "Remove backups from a USB drive": "",
"Back to main menu": "",
- "Email Filtering Rules": "",
+ "Email Menu": "",
"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": "",
+ "Outgoing Email Proxy": "",
+ "Extra email domains": "",
"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": "",
+ "No wifi adaptors were detected": "",
"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": "",
+ "Change Settings for an App": "",
"Control Panel": "",
"About this system": "",
+ "Show Firewall": "",
"Reset Tripwire": "",
+ "App Settings": "",
+ "Add/Remove Apps": "",
"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/zh_tw/freedombone-image-customise.json b/locale/zh_tw/freedombone-image-customise.json
index 1177bb66..ccd87939 100644
--- a/locale/zh_tw/freedombone-image-customise.json
+++ b/locale/zh_tw/freedombone-image-customise.json
@@ -1,19 +1,14 @@
{
+ "Freedombone Mesh": "",
+ "Welcome to the Freedombone mesh.\\n\\nThe first thing you will need to do is set a username so that other peers can find you.": "",
"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\t\t\t\t\tInitial base install\n\nYour system is not yet installed. To complete the process run the\nfollowing commands, then enter your details.\n\n\tsudo su\n\t${PROJECT_NAME} menuconfig\n\n": "",
+ "\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": "",
+ "\n .---. . .\n | | |\n |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.\n | | (.-' (.-' ( | ( )| | | | )( )| | (.-'\n ' ' --' --' -' - -' ' ' -' -' -' ' - --'\n\n Freedom in the Mesh\n": "",
"Using ssh public key:": "",
"Install failed. Press x to continue...": "",
- "Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "File not found /usr/local/bin/tox-bootstrapd": "",
- "Account to run Tox's DHT bootstrap daemon": "",
- "Unable to install toxid, returned $?": "",
- "Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
- "Tox client was not installed to $TOXIC_FILE": "",
- "Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed.": "",
"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/zh_tw/freedombone-image-mesh.json b/locale/zh_tw/freedombone-image-mesh.json
index 78ccf0d6..54ff5d59 100644
--- a/locale/zh_tw/freedombone-image-mesh.json
+++ b/locale/zh_tw/freedombone-image-mesh.json
@@ -1,21 +1,5 @@
{
"avahi name changed to P${PEER_ID}.local": "",
- "Regenerating ssh host keys": "",
- "zeronet daemon updated to P${PEER_ID}.local": "",
- "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": "",
- "Home directory for $DEFAULT_USERNAME not found": ""
+ "new": "",
+ "amnesic": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-image.json b/locale/zh_tw/freedombone-image.json
index a4fd155c..cdf19cd2 100644
--- a/locale/zh_tw/freedombone-image.json
+++ b/locale/zh_tw/freedombone-image.json
@@ -6,5 +6,6 @@
" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT\n\nPassword: $PASSWORD\n": "",
" Username: $USERNAME\nPassword: $PASSWORD\n": "",
"\nUsername: $USERNAME\nPassword: $PASSWORD\n": "",
+ "\nImage was created.\n": "",
"Username: $USERNAME\nPassword: $PASSWORD": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-keydrive.json b/locale/zh_tw/freedombone-keydrive.json
index eb6c94ef..55186ebb 100644
--- a/locale/zh_tw/freedombone-keydrive.json
+++ b/locale/zh_tw/freedombone-keydrive.json
@@ -3,6 +3,7 @@
"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": "",
+ "LetsEncrypt keys copied to $USB_DRIVE": "",
"GPG Keyring copied to $USB_DRIVE. You may now remove the drive.": "",
"Unable to copy gpg keyring to $USB_DRIVE": "",
"Made directory $FRAGMENTS_DIR": "",
diff --git a/locale/zh_tw/freedombone-mesh-batman.json b/locale/zh_tw/freedombone-mesh-batman.json
new file mode 100644
index 00000000..30c81cd6
--- /dev/null
+++ b/locale/zh_tw/freedombone-mesh-batman.json
@@ -0,0 +1,3 @@
+{
+ "${WIFI_SSID}-hotspot": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-mesh-blog.json b/locale/zh_tw/freedombone-mesh-blog.json
new file mode 100644
index 00000000..55d57df8
--- /dev/null
+++ b/locale/zh_tw/freedombone-mesh-blog.json
@@ -0,0 +1,19 @@
+{
+ "Freedombone Blog": "",
+ "${TOX_NICK}'s Blog": "",
+ "Date: ${DATESTR}": "",
+ "Author: $(toxid --showuser)": "",
+ "Add your text here": "",
+ "Blog Post Title": "",
+ "Delete the previous blog entry": "",
+ "Freedombone Mesh": "",
+ "\\nAre you sure that you wish to delete the previous blog entry?": "",
+ "Select Blog Theme": "",
+ "Blogging": "",
+ "Choose an operation:": "",
+ "View a blog": "",
+ "New blog entry": "",
+ "Edit the previous blog entry": "",
+ "Change theme": "",
+ "Exit": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-mesh-install.json b/locale/zh_tw/freedombone-mesh-install.json
index 633b692d..0660b279 100644
--- a/locale/zh_tw/freedombone-mesh-install.json
+++ b/locale/zh_tw/freedombone-mesh-install.json
@@ -1,7 +1,3 @@
{
- "${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": ""
+ "${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-mesh-reset.json b/locale/zh_tw/freedombone-mesh-reset.json
new file mode 100644
index 00000000..f9108f83
--- /dev/null
+++ b/locale/zh_tw/freedombone-mesh-reset.json
@@ -0,0 +1,6 @@
+{
+ "New Identity": "",
+ "Freedombone Mesh": "",
+ "\\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it.": "",
+ "You now have a new identity": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-mesh-visit-site.json b/locale/zh_tw/freedombone-mesh-visit-site.json
new file mode 100644
index 00000000..28011144
--- /dev/null
+++ b/locale/zh_tw/freedombone-mesh-visit-site.json
@@ -0,0 +1,6 @@
+{
+ "Visit IPFS site": "",
+ "Freedombone mesh": "",
+ "Enter the username or Tox ID for the site you wish to visit": "",
+ "An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-mirrors.json b/locale/zh_tw/freedombone-mirrors.json
index bcebe53c..ba851a39 100644
--- a/locale/zh_tw/freedombone-mirrors.json
+++ b/locale/zh_tw/freedombone-mirrors.json
@@ -4,5 +4,6 @@
" -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": "",
+ "The app $SYNC_SINGLE_APP was not found": "",
"WARNING: failed to mirror repo ${repo_url}": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-pin-cert.json b/locale/zh_tw/freedombone-pin-cert.json
index dc2fd0c1..7f530554 100644
--- a/locale/zh_tw/freedombone-pin-cert.json
+++ b/locale/zh_tw/freedombone-pin-cert.json
@@ -1,3 +1,6 @@
{
- "No certificate found for $DOMAIN_NAME": ""
+ "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH": "",
+ "Removed pinning for ${DOMAIN_NAME}": "",
+ "No private key certificate found for $DOMAIN_NAME": "",
+ "No fullchain certificate found for $DOMAIN_NAME": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-recoverkey.json b/locale/zh_tw/freedombone-recoverkey.json
index c48d4852..4db7eed5 100644
--- a/locale/zh_tw/freedombone-recoverkey.json
+++ b/locale/zh_tw/freedombone-recoverkey.json
@@ -1,11 +1,5 @@
{
"${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/zh_tw/freedombone-restore-local.json b/locale/zh_tw/freedombone-restore-local.json
index 833227c8..14ed0628 100644
--- a/locale/zh_tw/freedombone-restore-local.json
+++ b/locale/zh_tw/freedombone-restore-local.json
@@ -1,16 +1,8 @@
{
- "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": "",
@@ -27,7 +19,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -36,21 +27,7 @@
"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/zh_tw/freedombone-restore-remote.json b/locale/zh_tw/freedombone-restore-remote.json
index fbe522f8..fd8deeab 100644
--- a/locale/zh_tw/freedombone-restore-remote.json
+++ b/locale/zh_tw/freedombone-restore-remote.json
@@ -2,9 +2,6 @@
"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": "",
@@ -20,7 +17,6 @@
"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 monkeysphere ids for $USERNAME": "",
@@ -29,14 +25,6 @@
"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": ""
+ "Restoring emails for $USERNAME": "",
+ "*** Remote restore was successful ***": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-rmuser.json b/locale/zh_tw/freedombone-rmuser.json
index 77abc300..9219f6bc 100644
--- a/locale/zh_tw/freedombone-rmuser.json
+++ b/locale/zh_tw/freedombone-rmuser.json
@@ -1,10 +1,11 @@
{
- "Home directory does not exist for $MY_USERNAME": "",
+ "Home directory does not exist for $REMOVE_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": ""
+ "Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?": "",
+ "User $REMOVE_USERNAME was not removed": "",
+ "Removing user from ${app_name}": "",
+ "User $REMOVE_USERNAME was removed": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-sec.json b/locale/zh_tw/freedombone-sec.json
index 58927988..d19689dc 100644
--- a/locale/zh_tw/freedombone-sec.json
+++ b/locale/zh_tw/freedombone-sec.json
@@ -1,5 +1,7 @@
{
+ "SSH Passwords": "",
"Freedombone Security Configuration": "",
+ "\\nAllow SSH login using passwords?": "",
"\\nWeb/IMAP Ciphers:": "",
"Protocols:": "",
"Ciphers:": "",
@@ -7,8 +9,6 @@
"MACs:": "",
"KEX:": "",
"Host key algorithms:": "",
- "SSH Passwords": "",
- "\\nAllow SSH login using passwords?": "",
"\\nXMPP Ciphers:": "",
"ECC Curve:": "",
"Final Confirmation": "",
@@ -36,6 +36,18 @@
"Register a website with monkeysphere": "",
"Enter the website domain name (without https://)": "",
"$domain has been registered": "",
+ "Remove pinning for a domain": "",
+ "Removed pinning from $domain": "",
+ "Freedombone Control Panel": "",
+ "Security Settings": "",
+ "Choose an operation:": "",
+ "Regenerate ssh host keys": "",
+ "Regenerate Diffie-Hellman keys": "",
+ "Update cipersuite": "",
+ "Renew Let's Encrypt certificate": "",
+ "Enable GPG based authentication (monkeysphere)": "",
+ "Allow ssh login with passwords": "",
+ "Go Back/Exit": "",
"Import file $IMPORT_FILE not found": "",
"Security settings exported to $EXPORT_FILE": ""
}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-tests.json b/locale/zh_tw/freedombone-tests.json
new file mode 100644
index 00000000..1cb73fa7
--- /dev/null
+++ b/locale/zh_tw/freedombone-tests.json
@@ -0,0 +1,4 @@
+{
+ "${PROJECT_NAME}-tests": "",
+ "Application ${app_name} does not contain a function called '${fn_type}_${app_name}'": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-update-date.json b/locale/zh_tw/freedombone-update-date.json
deleted file mode 100644
index 948bd604..00000000
--- a/locale/zh_tw/freedombone-update-date.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Date went backwards between tlsdate updates. ": "",
- "tlsdate anomaly": "",
- "Incorrect date: $DATE_BEFORE -> $DATE_AFTER": ""
-}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-update-date.mo b/locale/zh_tw/freedombone-update-date.mo
deleted file mode 100644
index 80c25fbd..00000000
Binary files a/locale/zh_tw/freedombone-update-date.mo and /dev/null differ
diff --git a/locale/zh_tw/freedombone-utils-backup.json b/locale/zh_tw/freedombone-utils-backup.json
new file mode 100644
index 00000000..3279f0ab
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-backup.json
@@ -0,0 +1,29 @@
+{
+ "Please attach a USB drive": "",
+ "There was a problem mounting the USB drive to $USB_MOUNT": "",
+ "Unable to unmount the drive.": "",
+ "Unmount encrypted USB": "",
+ "No MariaDB password was given": "",
+ "Obtaining ${1} database backup": "",
+ "${1} database could not be saved": "",
+ "${1} database could not be dumped": "",
+ "Database dump was created for ${1}": "",
+ "WARNING: directory does not exist: ${1}": "",
+ "Backup key could not be found": "",
+ "Error backing up ${1} database to ${local_database_dir}/${1}.sql": "",
+ "Setting permissions": "",
+ "Unable to export ${1} database": "",
+ "${PROJECT_NAME} backup to friends": "",
+ "Unable to dump ${1} database": "",
+ "Backup ${app_name}": "",
+ "Backup ${app_name} completed": "",
+ "Restoring ${app_name}": "",
+ "Restored ${app_name}": "",
+ "Restoring ${1} database": "",
+ "Unable to restore ${1} database": "",
+ "Restoring ${1} installation": "",
+ "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/zh_tw/freedombone-utils-config.json b/locale/zh_tw/freedombone-utils-config.json
new file mode 100644
index 00000000..876433af
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-config.json
@@ -0,0 +1,5 @@
+{
+ "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.": "",
+ "The configuration file $CONFIGURATION_FILE was not found": "",
+ "Domain ${domain_value} collides with another app. The domain for each app should be unique.": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-database.json b/locale/zh_tw/freedombone-utils-database.json
new file mode 100644
index 00000000..30174d01
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-database.json
@@ -0,0 +1,4 @@
+{
+ "Your MariaDB password is: $MARIADB_PASSWORD": "",
+ "ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-depends.json b/locale/zh_tw/freedombone-utils-depends.json
new file mode 100644
index 00000000..afe24c10
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-depends.json
@@ -0,0 +1,3 @@
+{
+ "Dependency error: The function ${1} has not been defined": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-final.json b/locale/zh_tw/freedombone-utils-final.json
new file mode 100644
index 00000000..74d539d4
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-final.json
@@ -0,0 +1,4 @@
+{
+ "\n *** ${PROJECT_NAME} installation is complete ***\n\n Ensure that ports are forwarded from your internet router\n": "",
+ "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-git.json b/locale/zh_tw/freedombone-utils-git.json
new file mode 100644
index 00000000..cd912c34
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-git.json
@@ -0,0 +1,3 @@
+{
+ "Unable to checkout $1 $2": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-help.json b/locale/zh_tw/freedombone-utils-help.json
new file mode 100644
index 00000000..0044082a
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-help.json
@@ -0,0 +1,3 @@
+{
+ "${PROJECT_NAME} -c [configuration file]": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-interactive.json b/locale/zh_tw/freedombone-utils-interactive.json
new file mode 100644
index 00000000..fbac96dc
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-interactive.json
@@ -0,0 +1,16 @@
+{
+ "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 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?": "",
+ "Freedombone Configuration": "",
+ "${site_name^} Configuration": "",
+ "\\nPlease enter your ${site_name^} details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:": "",
+ "Domain:": "",
+ "Code:": "",
+ "Domain name validation": "",
+ "Title:": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-keys.json b/locale/zh_tw/freedombone-utils-keys.json
new file mode 100644
index 00000000..6569f422
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-keys.json
@@ -0,0 +1,15 @@
+{
+ "Recover Encryption Keys": "",
+ "There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT": "",
+ "The directory $USB_MOUNT/.gnupg or $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": "",
+ "Encryption Keys Recovery": "",
+ "Freedombone Configuration": "",
+ "GPG/PGP keys for your system:": "",
+ "Generate new keys (new user)": "",
+ "Import keys from USB drive/s": "",
+ "Retrieve keys from friends servers": "",
+ "Do you wish to recover your previous encryption keys from a USB master keydrive?": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-onion.json b/locale/zh_tw/freedombone-utils-onion.json
new file mode 100644
index 00000000..707ca83a
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-onion.json
@@ -0,0 +1,4 @@
+{
+ "No Tor installation found. ${onion_service_name} onion site cannot be configured.": "",
+ "${onion_service_name} onion site hostname not found": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-rng.json b/locale/zh_tw/freedombone-utils-rng.json
new file mode 100644
index 00000000..309d17d8
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-rng.json
@@ -0,0 +1,9 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-selector.json b/locale/zh_tw/freedombone-utils-selector.json
new file mode 100644
index 00000000..e057b3df
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-selector.json
@@ -0,0 +1,23 @@
+{
+ "${app_name}_variables was not found": "",
+ "No variant name for choosing apps": "",
+ "${app_name} chosen": "",
+ "${a}": "",
+ "Removing users for application: ${a}": "",
+ "Removing application: ${a}": "",
+ "${a} was removed": "",
+ "Interactive installer": "",
+ "Interactive settings complete": "",
+ "Login for user ${USERNAME}=": "",
+ "Upgrading application from interactive: ${a}": "",
+ "${a} was upgraded from interactive": "",
+ "Installing application from interactive: ${a}": "",
+ "${a} was installed from interactive": "",
+ "${a} was not installed from interactive": "",
+ "Upgrading application: ${a}": "",
+ "${a} was upgraded": "",
+ "Installing application: ${a}": "",
+ "${a} was installed": "",
+ "${a} was not installed": "",
+ "${a} has been removed and so will not be reinstalled": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-setup.json b/locale/zh_tw/freedombone-utils-setup.json
new file mode 100644
index 00000000..0681a469
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-setup.json
@@ -0,0 +1,3 @@
+{
+ "System variant: $SYSTEM_TYPE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-validation.json b/locale/zh_tw/freedombone-utils-validation.json
new file mode 100644
index 00000000..8bb3e67e
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-validation.json
@@ -0,0 +1,4 @@
+{
+ "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": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-web.json b/locale/zh_tw/freedombone-utils-web.json
new file mode 100644
index 00000000..ad375fc9
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-web.json
@@ -0,0 +1,10 @@
+{
+ "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": "",
+ "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": "",
+ "ERROR: nginx does not appear to have installed. $CHECK_MESSAGE": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-utils-wifi.json b/locale/zh_tw/freedombone-utils-wifi.json
new file mode 100644
index 00000000..606d74c4
--- /dev/null
+++ b/locale/zh_tw/freedombone-utils-wifi.json
@@ -0,0 +1,8 @@
+{
+ "Freedombone Configuration": "",
+ "Wifi Settings ${wifi_ctr}": "",
+ "\\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:": "",
+ "SSID (can be 'any'):": "",
+ "Type (open/wpa2-psk):": "",
+ "Passphrase:": ""
+}
\ No newline at end of file
diff --git a/locale/zh_tw/freedombone-wifi.json b/locale/zh_tw/freedombone-wifi.json
index 73b09f04..0078dce4 100644
--- a/locale/zh_tw/freedombone-wifi.json
+++ b/locale/zh_tw/freedombone-wifi.json
@@ -1,9 +1,3 @@
{
- "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 e3bbbdca..d18c5b78 100644
--- a/locale/zh_tw/freedombone.json
+++ b/locale/zh_tw/freedombone.json
@@ -1,147 +1,4 @@
{
- "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.": "",
- "Unable to checkout $1 $2": "",
- "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\t Now on your internet router forward ports\n\t 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": "",
- "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": "",
- "Media Server": "",
- "Media server administrator nickname: mediadropadmin": "",
- "Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD": "",
- "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\t*** ${PROJECT_NAME} installation is complete. Rebooting... ***\n\n\tNow forward these ports from your internet router\n\n\tHTTP 80\n\tHTTPS 443\n\tSSH 2222\n\tDLNA 1900\n\tDLNA 8200\n\tXMPP 5222-5223\n\tXMPP 5269\n\tXMPP 5280-5281\n\tIRC 6697\n\tGit 9418\n\tEmail 25\n\tEmail 587\n\tEmail 465\n\tEmail 993\n\tVoIP 64738\n\tVoIP 5060\n\tTox 33445\n\t": "",
- "See /home/$MY_USERNAME/README for post-installation instructions.": ""
+ "'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:": ""
}
\ No newline at end of file
diff --git a/man/freedombone-addcert.1.gz b/man/freedombone-addcert.1.gz
index 3a739b21..cf5596b7 100644
Binary files a/man/freedombone-addcert.1.gz and b/man/freedombone-addcert.1.gz differ
diff --git a/man/freedombone-addemail.1.gz b/man/freedombone-addemail.1.gz
index e25d4ee0..d670da35 100644
Binary files a/man/freedombone-addemail.1.gz and b/man/freedombone-addemail.1.gz differ
diff --git a/man/freedombone-addlist.1.gz b/man/freedombone-addlist.1.gz
index bff5c6f6..4ebe6de3 100644
Binary files a/man/freedombone-addlist.1.gz and b/man/freedombone-addlist.1.gz differ
diff --git a/man/freedombone-addsipuser.1.gz b/man/freedombone-addsipuser.1.gz
index 8d917cd2..c6df5edc 100644
Binary files a/man/freedombone-addsipuser.1.gz and b/man/freedombone-addsipuser.1.gz differ
diff --git a/man/freedombone-adduser.1.gz b/man/freedombone-adduser.1.gz
index f810a6df..66ba6999 100644
Binary files a/man/freedombone-adduser.1.gz and b/man/freedombone-adduser.1.gz differ
diff --git a/man/freedombone-addxmpp.1.gz b/man/freedombone-addxmpp.1.gz
index 9d001af7..746a83e5 100644
Binary files a/man/freedombone-addxmpp.1.gz and b/man/freedombone-addxmpp.1.gz differ
diff --git a/man/freedombone-archive-mail.1.gz b/man/freedombone-archive-mail.1.gz
index ab90e298..e5e81c98 100644
Binary files a/man/freedombone-archive-mail.1.gz and b/man/freedombone-archive-mail.1.gz differ
diff --git a/man/freedombone-backup-local.1.gz b/man/freedombone-backup-local.1.gz
index 9a66ea2c..5ceb8ccd 100644
Binary files a/man/freedombone-backup-local.1.gz and b/man/freedombone-backup-local.1.gz differ
diff --git a/man/freedombone-backup-remote.1.gz b/man/freedombone-backup-remote.1.gz
index 6c0a482f..29ce3c4c 100644
Binary files a/man/freedombone-backup-remote.1.gz and b/man/freedombone-backup-remote.1.gz differ
diff --git a/man/freedombone-blog.1.gz b/man/freedombone-blog.1.gz
index f4725f55..cd9fd3f0 100644
Binary files a/man/freedombone-blog.1.gz and b/man/freedombone-blog.1.gz differ
diff --git a/man/freedombone-client.1.gz b/man/freedombone-client.1.gz
index a142f0f6..44476776 100644
Binary files a/man/freedombone-client.1.gz and b/man/freedombone-client.1.gz differ
diff --git a/man/freedombone-clientcert.1.gz b/man/freedombone-clientcert.1.gz
index 88a55f48..79b1b079 100644
Binary files a/man/freedombone-clientcert.1.gz and b/man/freedombone-clientcert.1.gz differ
diff --git a/man/freedombone-config.1.gz b/man/freedombone-config.1.gz
index 6be229c9..3ff2bba5 100644
Binary files a/man/freedombone-config.1.gz and b/man/freedombone-config.1.gz differ
diff --git a/man/freedombone-controlpanel-user.1.gz b/man/freedombone-controlpanel-user.1.gz
index 1616c8d0..24ab32fd 100644
Binary files a/man/freedombone-controlpanel-user.1.gz and b/man/freedombone-controlpanel-user.1.gz differ
diff --git a/man/freedombone-controlpanel.1.gz b/man/freedombone-controlpanel.1.gz
index c081a7ff..a7be54e8 100644
Binary files a/man/freedombone-controlpanel.1.gz and b/man/freedombone-controlpanel.1.gz differ
diff --git a/man/freedombone-dhparam.1.gz b/man/freedombone-dhparam.1.gz
index 6baa529d..18cb4bda 100644
Binary files a/man/freedombone-dhparam.1.gz and b/man/freedombone-dhparam.1.gz differ
diff --git a/man/freedombone-format.1.gz b/man/freedombone-format.1.gz
index 8ecf9ca8..9d761444 100644
Binary files a/man/freedombone-format.1.gz and b/man/freedombone-format.1.gz differ
diff --git a/man/freedombone-ignore.1.gz b/man/freedombone-ignore.1.gz
index 70ffc97a..a6c9d4d1 100644
Binary files a/man/freedombone-ignore.1.gz and b/man/freedombone-ignore.1.gz differ
diff --git a/man/freedombone-image.1.gz b/man/freedombone-image.1.gz
index 9e85f2d5..4f19c548 100644
Binary files a/man/freedombone-image.1.gz and b/man/freedombone-image.1.gz differ
diff --git a/man/freedombone-keydrive.1.gz b/man/freedombone-keydrive.1.gz
index 84eda312..1ac75038 100644
Binary files a/man/freedombone-keydrive.1.gz and b/man/freedombone-keydrive.1.gz differ
diff --git a/man/freedombone-logging.1.gz b/man/freedombone-logging.1.gz
index 8ca654d8..2b84e1e5 100644
Binary files a/man/freedombone-logging.1.gz and b/man/freedombone-logging.1.gz differ
diff --git a/man/freedombone-mesh.1.gz b/man/freedombone-mesh.1.gz
index d68e41d7..51cced10 100644
Binary files a/man/freedombone-mesh.1.gz and b/man/freedombone-mesh.1.gz differ
diff --git a/man/freedombone-mirrors.1.gz b/man/freedombone-mirrors.1.gz
index 0c929f9f..0eaec0ee 100644
Binary files a/man/freedombone-mirrors.1.gz and b/man/freedombone-mirrors.1.gz differ
diff --git a/man/freedombone-pass.1.gz b/man/freedombone-pass.1.gz
new file mode 100644
index 00000000..beccb64b
Binary files /dev/null and b/man/freedombone-pass.1.gz differ
diff --git a/man/freedombone-pin-cert.1.gz b/man/freedombone-pin-cert.1.gz
index ba101a08..1dfba8d8 100644
Binary files a/man/freedombone-pin-cert.1.gz and b/man/freedombone-pin-cert.1.gz differ
diff --git a/man/freedombone-recoverkey.1.gz b/man/freedombone-recoverkey.1.gz
index c2968e52..1c73d8a3 100644
Binary files a/man/freedombone-recoverkey.1.gz and b/man/freedombone-recoverkey.1.gz differ
diff --git a/man/freedombone-remote.1.gz b/man/freedombone-remote.1.gz
index 1b0c1daf..52f57034 100644
Binary files a/man/freedombone-remote.1.gz and b/man/freedombone-remote.1.gz differ
diff --git a/man/freedombone-renew-cert.1.gz b/man/freedombone-renew-cert.1.gz
index b9cc3f9d..4f57a4cb 100644
Binary files a/man/freedombone-renew-cert.1.gz and b/man/freedombone-renew-cert.1.gz differ
diff --git a/man/freedombone-repair-database.1.gz b/man/freedombone-repair-database.1.gz
index 5052e4d7..386b7502 100644
Binary files a/man/freedombone-repair-database.1.gz and b/man/freedombone-repair-database.1.gz differ
diff --git a/man/freedombone-restore-local.1.gz b/man/freedombone-restore-local.1.gz
index 53a0f6fe..ce4cd56c 100644
Binary files a/man/freedombone-restore-local.1.gz and b/man/freedombone-restore-local.1.gz differ
diff --git a/man/freedombone-restore-remote.1.gz b/man/freedombone-restore-remote.1.gz
index aa2a1acd..3e6b507a 100644
Binary files a/man/freedombone-restore-remote.1.gz and b/man/freedombone-restore-remote.1.gz differ
diff --git a/man/freedombone-rmemail.1.gz b/man/freedombone-rmemail.1.gz
index c2b09dd3..29a11d89 100644
Binary files a/man/freedombone-rmemail.1.gz and b/man/freedombone-rmemail.1.gz differ
diff --git a/man/freedombone-rmlist.1.gz b/man/freedombone-rmlist.1.gz
index 8190ec4c..94437026 100644
Binary files a/man/freedombone-rmlist.1.gz and b/man/freedombone-rmlist.1.gz differ
diff --git a/man/freedombone-rmsipuser.1.gz b/man/freedombone-rmsipuser.1.gz
index 18f8bd89..e2bfe24f 100644
Binary files a/man/freedombone-rmsipuser.1.gz and b/man/freedombone-rmsipuser.1.gz differ
diff --git a/man/freedombone-rmuser.1.gz b/man/freedombone-rmuser.1.gz
index c9a1a252..c2114e37 100644
Binary files a/man/freedombone-rmuser.1.gz and b/man/freedombone-rmuser.1.gz differ
diff --git a/man/freedombone-rmxmpp.1.gz b/man/freedombone-rmxmpp.1.gz
index c0839470..4eea0e8b 100644
Binary files a/man/freedombone-rmxmpp.1.gz and b/man/freedombone-rmxmpp.1.gz differ
diff --git a/man/freedombone-sec.1.gz b/man/freedombone-sec.1.gz
index ae48ed44..394e0799 100644
Binary files a/man/freedombone-sec.1.gz and b/man/freedombone-sec.1.gz differ
diff --git a/man/freedombone-splitkey.1.gz b/man/freedombone-splitkey.1.gz
index ab232028..bc3235ec 100644
Binary files a/man/freedombone-splitkey.1.gz and b/man/freedombone-splitkey.1.gz differ
diff --git a/man/freedombone-unignore.1.gz b/man/freedombone-unignore.1.gz
index 48078e5b..90a458b7 100644
Binary files a/man/freedombone-unignore.1.gz and b/man/freedombone-unignore.1.gz differ
diff --git a/man/freedombone-update-date.1.gz b/man/freedombone-update-date.1.gz
index 2985dc38..442a6729 100644
Binary files a/man/freedombone-update-date.1.gz and b/man/freedombone-update-date.1.gz differ
diff --git a/man/freedombone-wifi.1.gz b/man/freedombone-wifi.1.gz
index 3ecc44d4..ed9a7724 100644
Binary files a/man/freedombone-wifi.1.gz and b/man/freedombone-wifi.1.gz differ
diff --git a/man/freedombone-xmpp-pass.1.gz b/man/freedombone-xmpp-pass.1.gz
index 8f2310e4..02d846bd 100644
Binary files a/man/freedombone-xmpp-pass.1.gz and b/man/freedombone-xmpp-pass.1.gz differ
diff --git a/man/freedombone-zram.1.gz b/man/freedombone-zram.1.gz
index 1de44f5f..d4afa4b9 100644
Binary files a/man/freedombone-zram.1.gz and b/man/freedombone-zram.1.gz differ
diff --git a/man/freedombone.1.gz b/man/freedombone.1.gz
index 0ab568f0..6288bd1a 100644
Binary files a/man/freedombone.1.gz and b/man/freedombone.1.gz differ
diff --git a/src/cronic b/src/cronic
old mode 100644
new mode 100755
diff --git a/src/freedombone b/src/freedombone
index 38f9056f..b711994d 100755
--- a/src/freedombone
+++ b/src/freedombone
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2014-2016 Bob Mottram
+# Copyright (C) 2014-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -35,6 +35,7 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=$PROJECT_NAME
export TEXTDOMAINDIR="/usr/share/locale"
+<<<<<<< HEAD
DEFAULT_LANGUAGE=$(echo $LANG)
source /usr/local/bin/${PROJECT_NAME}-utils-git
@@ -346,11 +347,22 @@ MAX_PHP_MEMORY=64
# default MariaDB password
MARIADB_PASSWORD=
+=======
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
-# Directory where XMPP settings are stored
-XMPP_DIRECTORY="/var/lib/prosody"
-XMPP_PASSWORD=
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+<<<<<<< HEAD
# file containing a list of remote locations to backup to
# Format: [username@friendsdomain//home/username] [ssh_password]
# With the only space character being between the server and the password
@@ -738,22 +750,76 @@ function interactive_configuration {
esac
fi
}
+=======
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
command_options=$1
if [[ $command_options == "menuconfig-full" ]]; then
MINIMAL_INSTALL="no"
+<<<<<<< HEAD
command_options="menuconfig"
+=======
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
fi
if [[ $command_options == "menuconfig-onion" ]]; then
MINIMAL_INSTALL="yes"
ONION_ONLY="yes"
+<<<<<<< HEAD
command_options="menuconfig"
fi
if [[ $command_options == "menuconfig" ]]; then
interactive_configuration
+=======
+fi
+
+if [ ! $CONFIGURATION_FILE ]; then
+ CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
+fi
+if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+fi
+
+# before the interactive config so that wifi adaptors may be detected
+setup_wifi_atheros
+
+if [[ $command_options == "menuconfig"* ]]; then
+ if [[ "$2" == "--reset" ]]; then
+ if [ -f $CONFIGURATION_FILE ]; then
+ rm $CONFIGURATION_FILE
+ fi
+ if [ -f $COMPLETION_FILE ]; then
+ rm $COMPLETION_FILE
+ fi
+ if [ -f /usr/share/${PROJECT_NAME}/installed.txt ]; then
+ rm /usr/share/${PROJECT_NAME}/installed.txt
+ fi
+ if [ -f /root/removed ]; then
+ rm /root/removed
+ fi
+ fi
+
+ # clear the interactive file which indicates configuration success
+ interactive_file=$HOME/.${PROJECT_NAME}-interactive
+ if [ -f $interactive_file ]; then
+ rm $interactive_file
+ fi
+
+ interactive_configuration
+
+ # check that the interactive file was created
+ if [ ! -f $interactive_file ]; then
+ exit 6393562
+ fi
+ rm $interactive_file
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
else
while [[ $# > 1 ]]
do
@@ -775,6 +841,7 @@ else
shift
MY_USERNAME="$1"
;;
+<<<<<<< HEAD
# microblog domain name
--microblogdomain)
shift
@@ -800,6 +867,8 @@ else
shift
GIT_DOMAIN_NAME="$1"
;;
+=======
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
# default domain name
-d|--domain)
shift
@@ -829,11 +898,14 @@ else
--bbb)
INSTALLING_ON_BBB="yes"
;;
+<<<<<<< HEAD
# Domain name to use as a TLS time source
-t|--time)
shift
TLS_TIME_SOURCE1="$1"
;;
+=======
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
# Static IP address for the system
--ip)
shift
@@ -874,16 +946,20 @@ else
shift
USB_DRIVE=$1
;;
+<<<<<<< HEAD
# Enable CJDNS
--cjdns)
shift
ENABLE_CJDNS="yes"
;;
+=======
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
# Enable B.A.T.M.A.N
--batman)
shift
ENABLE_BATMAN="yes"
;;
+<<<<<<< HEAD
# Enable Babel
--babel)
shift
@@ -898,6 +974,17 @@ else
--vport)
shift
VOIP_PORT=$1
+=======
+ # Mumble server password
+ --vpass)
+ shift
+ MUMBLE_SERVER_PASSWORD=$1
+ ;;
+ # Mumble server port
+ --vport)
+ shift
+ MUMBLE_PORT=$1
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
;;
# DNS Nameserver 1
--ns1)
@@ -914,6 +1001,18 @@ else
shift
DEBIAN_REPO=$1
;;
+<<<<<<< HEAD
+=======
+ # clear the config file
+ --reset)
+ if [ -f $CONFIGURATION_FILE ]; then
+ rm $CONFIGURATION_FILE
+ fi
+ if [ -f $COMPLETION_FILE ]; then
+ rm $COMPLETION_FILE
+ fi
+ ;;
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
# minimal install
--minimal)
shift
@@ -934,12 +1033,24 @@ function parse_args {
exit 0
fi
+<<<<<<< HEAD
+=======
+ read_config_param 'DEFAULT_DOMAIN_NAME'
+ read_config_param 'MY_USERNAME'
+ read_config_param 'SYSTEM_TYPE'
+ read_config_param 'ONION_ONLY'
+
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
if [ ! -d /home/$MY_USERNAME ]; then
echo $"There is no user '$MY_USERNAME' on the system. Use 'adduser $MY_USERNAME' to create the user."
exit 1
fi
if [ ! "$DEFAULT_DOMAIN_NAME" ]; then
+<<<<<<< HEAD
if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
+=======
+ if [[ $SYSTEM_TYPE != "mesh"* ]]; then
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
echo 'No default domain specified'
show_help
exit 2
@@ -950,7 +1061,11 @@ function parse_args {
show_help
exit 3
fi
+<<<<<<< HEAD
if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
+=======
+ if [[ $SYSTEM_TYPE != "mesh"* ]]; then
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
if [[ $ONION_ONLY == "no" ]]; then
if [ ! $DDNS_USERNAME ]; then
echo $'Please provide the username for your dynamic DNS provider with the --ddnsuser option'
@@ -962,6 +1077,7 @@ function parse_args {
fi
fi
fi
+<<<<<<< HEAD
if [ ! $SYSTEM_TYPE ]; then
SYSTEM_TYPE=$VARIANT_FULL
fi
@@ -10938,139 +11054,41 @@ function install_final {
reboot
fi
}
+=======
+ if [ ! $SYSTEM_TYPE ]; then
+ SYSTEM_TYPE=$'full'
+ write_config_param "SYSTEM_TYPE" "$SYSTEM_TYPE"
+ fi
+
+ if [[ $(is_valid_variant) == "0" ]]; then
+ echo $"'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant. Possible variants are:"
+ show_available_variants
+ exit 367245
+ fi
+}
+
+# run some initial tests
+clear
+${PROJECT_NAME}-tests
+if [ ! "$?" = "0" ]; then
+ exit 768252
+fi
+
+clear
+echo ''
+echo $'Setting up the base installation'
+echo ''
+
+export DEBIAN_FRONTEND=noninteractive
+>>>>>>> 89720a42b8a173d9c9f27ed0af48c47db8f9b424
+
+upgrade_installation_from_previous_versions
+setup_utils
+setup_email
+setup_web
+setup_apps $command_options
+setup_final
-read_configuration
-set_default_onion_domains
-locale_setup
-parse_args
-check_domains
-install_not_on_BBB
-remove_default_user
-configure_firewall
-configure_firewall_ping
-configure_firewall_for_ssh
-configure_firewall_for_dns
-configure_firewall_for_ftp
-configure_firewall_for_web_access
-configure_firewall_for_voip
-configure_firewall_for_voip_turn
-configure_firewall_for_sip4
-configure_firewall_for_avahi
-configure_firewall_for_zeronet
-configure_firewall_for_ipfs
-create_repo_sources
-configure_dns
-initial_setup
-install_tor
-#resolve_dns_via_tor
-install_command_line_browser
-enable_ssh_via_onion
-check_date
-install_dynamicdns
-randomize_cron
-create_freedns_updater
-mark_admin_user_account
-enforce_good_passwords
-install_editor
-change_login_message
-enable_zram
-random_number_generator
-set_your_domain_name
-time_synchronisation_tlsdate
-configure_internet_protocol
-create_git_project
-setup_wifi
-configure_ssh
-configure_ssh_onion
-allow_ssh_to_onion_address
-remove_instructions_from_motd
-check_hwrng
-search_for_attached_usb_drive
-regenerate_ssh_keys
-create_mirrors
-create_upgrade_script
-letsencrypt_renewals
-install_zeronet
-install_watchdog_script
-configure_avahi
-create_avahi_onion_domains
-install_zeronet_blog
-install_zeronet_mail
-install_zeronet_forum
-#install_atheros_wifi
-configure_firewall_for_cjdns
-mesh_cjdns
-mesh_cjdns_tools
-configure_firewall_for_batman
-mesh_batman
-configure_firewall_for_babel
-mesh_babel
-route_outgoing_traffic_through_tor
-configure_email
-create_procmail
-handle_admin_emails
-spam_filtering
-configure_imap
-#configure_imap_client_certs
-configure_gpg
-refresh_gpg_keys
-configure_backup_key
-install_monkeysphere
-encrypt_incoming_email
-encrypt_outgoing_email
-email_client
-email_archiving
-email_from_address
-configure_firewall_for_email
-create_public_mailing_list
-#create_private_mailing_list
-encrypt_all_email
-import_email
-script_for_attaching_usb_drive
-install_web_server
-install_web_server_access_control
-configure_firewall_for_web_server
-configure_firewall_for_syncthing
-install_syncthing
-upgrade_golang
-install_gogs
-install_xmpp
-install_xmpp_client
-install_tox_node
-install_tox_client
-tox_avahi
-configure_firewall_for_xmpp
-install_irc_server
-configure_firewall_for_irc
-install_irc_client
-install_voip
-install_sip
-update_sipwitch_daemon
-install_wiki
-install_sip_turn
-install_blog
-mark_blog_domain
-install_gnu_social
-expire_gnu_social_posts
-install_gnu_social_theme
-install_gnu_social_markdown
-install_gnu_social_plugin_sharings
-install_gnu_social_plugin_sharings_theme
-install_rss_reader
-install_rss_reader_gnusocial
-install_rss_mobile_reader
-install_hubzilla
-#install_webmail
-#install_search_engine
-install_dlna_server
-configure_firewall_for_dlna
-#install_media_server
-#install_mediagoblin
-#install_ipfs
-repair_databases_script
-backup_to_friends_servers
-intrusion_detection
-install_final
echo "${PROJECT_NAME} installation is complete"
exit 0
diff --git a/src/freedombone-addcert b/src/freedombone-addcert
index 2e7c767d..e49492c6 100755
--- a/src/freedombone-addcert
+++ b/src/freedombone-addcert
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -36,10 +36,11 @@ export TEXTDOMAINDIR="/usr/share/locale"
CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
-source /usr/local/bin/${PROJECT_NAME}-utils-git
-if [ -f /usr/bin/${PROJECT_NAME}-utils-git ]; then
- source /usr/bin/${PROJECT_NAME}-utils-git
-fi
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
# Don't pin certs by default
PIN_CERTS=
@@ -56,52 +57,12 @@ NODH=
DH_KEYLENGTH=2048
INSTALL_DIR=/root/build
LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
-LETSENCRYPT_REPO="https://github.com/letsencrypt/letsencrypt"
MY_EMAIL_ADDRESS=
FRIENDS_MIRRORS_SERVER=
FRIENDS_MIRRORS_PASSWORD=
FRIENDS_MIRRORS_SSH_PORT=
MY_MIRRORS_PASSWORD=
-function read_repo_servers {
- if [ -f $CONFIGURATION_FILE ]; then
- if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- fi
-
- if [ ! $FRIENDS_MIRRORS_SERVER ]; then
- return
- fi
- if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
- return
- fi
-
- MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
- if [ ! -f $MAIN_COMMAND ]; then
- MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
- fi
-
- REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
-
- for line in "${REPOS[@]}"
- do
- repo_name=$(echo "$line" | awk -F '=' '{print $1}')
- mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
- friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
- ${repo_name}="${friends_repo_url}"
- done
-}
-
function show_help {
echo ''
echo $"${PROJECT_NAME}-addcert -h [hostname] -c [country code] -a [area] -l [location]"
@@ -128,66 +89,70 @@ function show_help {
while [[ $# > 1 ]]
do
-key="$1"
+ key="$1"
-case $key in
- --help)
- show_help
- ;;
- -h|--hostname)
+ case $key in
+ --help)
+ show_help
+ ;;
+ -h|--hostname)
+ shift
+ HOSTNAME="$1"
+ ;;
+ -e|--letsencrypt)
+ shift
+ LETSENCRYPT_HOSTNAME="$1"
+ ;;
+ --email)
+ shift
+ MY_EMAIL_ADDRESS="$1"
+ ;;
+ -s|--server)
+ shift
+ LETSENCRYPT_SERVER="$1"
+ ;;
+ -c|--country)
+ shift
+ COUNTRY_CODE="$1"
+ ;;
+ -a|--area)
+ shift
+ AREA="$1"
+ ;;
+ -l|--location)
+ shift
+ LOCATION="$1"
+ ;;
+ -o|--organisation)
+ shift
+ ORGANISATION="$1"
+ ;;
+ -u|--unit)
+ shift
+ UNIT="$1"
+ ;;
+ --ca)
+ shift
+ EXTENSIONS="-extensions v3_ca"
+ ORGANISATION="Freedombone-CA"
+ ;;
+ --nodh)
+ shift
+ NODH="true"
+ ;;
+ --dhkey)
+ shift
+ DH_KEYLENGTH=${1}
+ ;;
+ --pin)
+ shift
+ PIN_CERTS=${1}
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
shift
- HOSTNAME="$1"
- ;;
- -e|--letsencrypt)
- shift
- LETSENCRYPT_HOSTNAME="$1"
- ;;
- --email)
- shift
- MY_EMAIL_ADDRESS="$1"
- ;;
- -s|--server)
- shift
- LETSENCRYPT_SERVER="$1"
- ;;
- -c|--country)
- shift
- COUNTRY_CODE="$1"
- ;;
- -a|--area)
- shift
- AREA="$1"
- ;;
- -l|--location)
- shift
- LOCATION="$1"
- ;;
- -o|--organisation)
- shift
- ORGANISATION="$1"
- ;;
- -u|--unit)
- shift
- UNIT="$1"
- ;;
- --ca)
- shift
- EXTENSIONS="-extensions v3_ca"
- ORGANISATION="Freedombone-CA"
- ;;
- --nodh)
- shift
- NODH="true"
- ;;
- --dhkey)
- shift
- DH_KEYLENGTH=${1}
- ;;
- *)
- # unknown option
- ;;
-esac
-shift
done
if [ ! $HOSTNAME ]; then
@@ -214,41 +179,34 @@ function add_cert_letsencrypt {
# obtain the email address for the admin user
if [ ! $MY_EMAIL_ADDRESS ]; then
if [ -f $CONFIGURATION_FILE ]; then
- if grep -q "MY_EMAIL_ADDRESS=" $CONFIGURATION_FILE; then
- MY_EMAIL_ADDRESS=$(cat $CONFIGURATION_FILE | grep "MY_EMAIL_ADDRESS=" | awk -F '=' '{print $2}')
- fi
+ read_config_param MY_EMAIL_ADDRESS
fi
fi
if [ ! $MY_EMAIL_ADDRESS ]; then
if [ -f $COMPLETION_FILE ]; then
if grep -q "Admin user:" $COMPLETION_FILE; then
- ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ function_check get_completion_param
+ ADMIN_USER=$(get_completion_param "Admin user")
+ if [ ${#ADMIN_USER} -eq 0 ]; then
+ exit 463732
+ fi
MY_EMAIL_ADDRESS=$ADMIN_USER@$HOSTNAME
fi
fi
fi
- if [ ! -d $INSTALL_DIR ]; then
- mkdir -p $INSTALL_DIR
- fi
- cd $INSTALL_DIR
-
- # obtain the repo
- if [ ! -d ${INSTALL_DIR}/letsencrypt ]; then
- git_clone $LETSENCRYPT_REPO ${INSTALL_DIR}/letsencrypt
- if [ ! -d ${INSTALL_DIR}/letsencrypt ]; then
- exit 76283
+ if [ ! -f /usr/bin/certbot ]; then
+ apt-get -yq install certbot -t jessie-backports
+ if [ ! -f /usr/bin/certbot ]; then
+ echo $'LetsEncrypt certbot failed to install'
+ exit 762830
fi
- else
- cd ${INSTALL_DIR}/letsencrypt
- git_pull $LETSENCRYPT_REPO
fi
# stop the web server
systemctl stop nginx
- cd ${INSTALL_DIR}/letsencrypt
- ./letsencrypt-auto certonly --server $LETSENCRYPT_SERVER --standalone -d $LETSENCRYPT_HOSTNAME --renew-by-default --agree-tos --email $MY_EMAIL_ADDRESS
+ certbot certonly -n --server $LETSENCRYPT_SERVER --standalone -d $LETSENCRYPT_HOSTNAME --renew-by-default --agree-tos --email $MY_EMAIL_ADDRESS
if [ ! "$?" = "0" ]; then
echo $"Failed to install letsencrypt for domain $LETSENCRYPT_HOSTNAME"
systemctl start nginx
@@ -287,6 +245,8 @@ function add_cert_letsencrypt {
cp /etc/letsencrypt/live/${LETSENCRYPT_HOSTNAME}/fullchain.pem /etc/ssl/mycerts/${LETSENCRYPT_HOSTNAME}.pem
+ update_default_domain
+
systemctl start nginx
if [ $PIN_CERTS ]; then
@@ -304,9 +264,9 @@ function add_cert_selfsigned {
fi
openssl req -x509 ${EXTENSIONS} -nodes -days 3650 -sha256 \
- -subj "/O=$ORGANISATION/OU=$UNIT/C=$COUNTRY_CODE/ST=$AREA/L=$LOCATION/CN=$HOSTNAME" \
- -newkey rsa:4096 -keyout /etc/ssl/private/${CERTFILE}.key \
- -out /etc/ssl/certs/${CERTFILE}.crt
+ -subj "/O=$ORGANISATION/OU=$UNIT/C=$COUNTRY_CODE/ST=$AREA/L=$LOCATION/CN=$HOSTNAME" \
+ -newkey rsa:4096 -keyout /etc/ssl/private/${CERTFILE}.key \
+ -out /etc/ssl/certs/${CERTFILE}.crt
chmod 400 /etc/ssl/private/${CERTFILE}.key
chmod 640 /etc/ssl/certs/${CERTFILE}.crt
cp /etc/ssl/certs/${CERTFILE}.crt /etc/ssl/mycerts
diff --git a/src/freedombone-addemail b/src/freedombone-addemail
index 6f7b94e9..c4f7d22e 100755
--- a/src/freedombone-addemail
+++ b/src/freedombone-addemail
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -49,37 +49,37 @@ function show_help {
while [[ $# > 1 ]]
do
-key="$1"
+ key="$1"
-case $key in
+ case $key in
-h|--help)
- show_help
- ;;
+ show_help
+ ;;
-u|--user)
- shift
- MYUSERNAME="$1"
- ;;
+ shift
+ MYUSERNAME="$1"
+ ;;
-e|--email)
- shift
- EMAILADDRESS="$1"
- ;;
+ shift
+ EMAILADDRESS="$1"
+ ;;
-s|--subject)
- shift
- SUBJECT_TEXT="$1"
- ;;
+ shift
+ SUBJECT_TEXT="$1"
+ ;;
-g|--group)
- shift
- GROUP_NAME="$1"
- ;;
+ shift
+ GROUP_NAME="$1"
+ ;;
-p|--public)
- shift
- PUBLIC="$1"
- ;;
+ shift
+ PUBLIC="$1"
+ ;;
*)
- # unknown option
- ;;
-esac
-shift
+ # unknown option
+ ;;
+ esac
+ shift
done
if ! [[ $MYUSERNAME && $GROUP_NAME ]]; then
@@ -88,7 +88,7 @@ fi
if [ ${#EMAILADDRESS} -lt 2 ]; then
if [ ${#SUBJECT_TEXT} -lt 2 ]; then
- show_help
+ show_help
fi
fi
@@ -112,7 +112,16 @@ fi
chown -R $MYUSERNAME:$MYUSERNAME $LISTDIR
if ! grep -q "$proc_comment" $PM; then
if [[ $PUBLIC != "yes" ]]; then
- # private emails go after the encryption stage
+ # private emails go after the encryption stage
+ echo '' >> $PM
+ echo "$proc_comment" >> $PM
+ echo ":0" >> $PM
+ echo "$proc_rule" >> $PM
+ echo "$LISTDIR/new" >> $PM
+ echo "# End of rule" >> $PM
+ else
+ # public emails are copied before the encryption stage
+ if ! grep -q '# encrypt' $PM; then
echo '' >> $PM
echo "$proc_comment" >> $PM
echo ":0" >> $PM
@@ -120,39 +129,30 @@ if ! grep -q "$proc_comment" $PM; then
echo "$LISTDIR/new" >> $PM
echo "# End of rule" >> $PM
else
- # public emails are copied before the encryption stage
- if ! grep -q '# encrypt' $PM; then
- echo '' >> $PM
- echo "$proc_comment" >> $PM
- echo ":0" >> $PM
- echo "$proc_rule" >> $PM
- echo "$LISTDIR/new" >> $PM
- echo "# End of rule" >> $PM
- else
- filter=$(echo "$proc_comment\n:0\n${proc_rule}\n$LISTDIR/new\n# End of rule\n")
- sed -i "/# encrypt/i ${filter}" $PM
- fi
+ filter=$(echo "$proc_comment\n:0\n${proc_rule}\n$LISTDIR/new\n# End of rule\n")
+ sed -i "/# encrypt/i ${filter}" $PM
+ fi
fi
chown $MYUSERNAME:$MYUSERNAME $PM
fi
if [ ! -f "$MUTTRC" ]; then
- cp /etc/Muttrc $MUTTRC
- chown $MYUSERNAME:$MYUSERNAME $MUTTRC
+ cp /etc/Muttrc $MUTTRC
+ chown $MYUSERNAME:$MYUSERNAME $MUTTRC
fi
PROCMAILLOG=/home/$MYUSERNAME/log
if [ ! -d $PROCMAILLOG ]; then
- mkdir $PROCMAILLOG
- chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG
+ mkdir $PROCMAILLOG
+ chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG
fi
MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)
if [[ $MUTT_MAILBOXES != *$GROUP_NAME* ]]; then
- if ! grep -q "=$GROUP_NAME" $MUTTRC; then
+ if ! grep -q "=$GROUP_NAME" $MUTTRC; then
sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$GROUP_NAME|g" $MUTTRC
chown $MYUSERNAME:$MYUSERNAME $MUTTRC
- fi
+ fi
fi
exit 0
diff --git a/src/freedombone-addlist b/src/freedombone-addlist
index 5f4d4d02..4b65bdaf 100755
--- a/src/freedombone-addlist
+++ b/src/freedombone-addlist
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -49,37 +49,37 @@ function show_help {
while [[ $# > 1 ]]
do
-key="$1"
+ key="$1"
-case $key in
+ case $key in
-h|--help)
- show_help
- ;;
+ show_help
+ ;;
-u|--user)
- shift
- MYUSERNAME="$1"
- ;;
+ shift
+ MYUSERNAME="$1"
+ ;;
-l|--list)
- shift
- MAILINGLIST="$1"
- ;;
+ shift
+ MAILINGLIST="$1"
+ ;;
-s|--subject)
- shift
- SUBJECTTAG="$1"
- ;;
+ shift
+ SUBJECTTAG="$1"
+ ;;
-e|--email)
- shift
- LIST_ADDRESS="$1"
- ;;
+ shift
+ LIST_ADDRESS="$1"
+ ;;
-p|--public)
- shift
- PUBLIC="$1"
- ;;
+ shift
+ PUBLIC="$1"
+ ;;
*)
- # unknown option
- ;;
-esac
-shift
+ # unknown option
+ ;;
+ esac
+ shift
done
if [ ! $MYUSERNAME ]; then
@@ -110,33 +110,33 @@ chown -R $MYUSERNAME:$MYUSERNAME $LISTDIR
if [ ${#SUBJECTTAG} -gt 0 ]; then
# use the subject tag
if ! grep -q "Subject:.*()\[$SUBJECTTAG\]" $PM; then
- if [[ $PUBLIC != "yes" ]]; then
- # private emails go after the encryption stage
- filter="
+ if [[ $PUBLIC != "yes" ]]; then
+ # private emails go after the encryption stage
+ filter="
# Email rule for $MAILINGLIST subject [$SUBJECTTAG]
:0
* ^Subject:.*()\[$SUBJECTTAG\]
$LISTDIR/new
# End of rule
"
- echo "$filter" >> $PM
+ echo "$filter" >> $PM
+ else
+ # public emails are copied before hte encryption stage
+ if ! grep -q '# encrypt' $PM; then
+ filter="
+# Email rule for $MAILINGLIST subject [$SUBJECTTAG]
+:0
+ * ^Subject:.*()\[$SUBJECTTAG\]
+$LISTDIR/new
+# End of rule
+"
+ echo "$filter" >> $PM
else
- # public emails are copied before hte encryption stage
- if ! grep -q '# encrypt' $PM; then
- filter="
-# Email rule for $MAILINGLIST subject [$SUBJECTTAG]
-:0
- * ^Subject:.*()\[$SUBJECTTAG\]
-$LISTDIR/new
-# End of rule
-"
- echo "$filter" >> $PM
- else
- filter=$(echo "# Email rule for $MAILINGLIST subject [$SUBJECTTAG]\n:0\n * ^Subject:.*()\\\[$SUBJECTTAG\\\]\n$LISTDIR/new\n# End of rule\n")
- sed -i "/# encrypt/i ${filter}" $PM
- fi
+ filter=$(echo "# Email rule for $MAILINGLIST subject [$SUBJECTTAG]\n:0\n * ^Subject:.*()\\\[$SUBJECTTAG\\\]\n$LISTDIR/new\n# End of rule\n")
+ sed -i "/# encrypt/i ${filter}" $PM
fi
- chown $MYUSERNAME:$MYUSERNAME $PM
+ fi
+ chown $MYUSERNAME:$MYUSERNAME $PM
fi
else
exit $(${PROJECT_NAME}-addemail -u $MYUSERNAME -e $LIST_ADDRESS -g $MAILINGLIST --public $PUBLIC)
@@ -156,15 +156,15 @@ fi
MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)
if [[ $MUTT_MAILBOXES != *$MAILINGLIST* ]]; then
if ! grep -q "=$MAILINGLIST" $MUTTRC; then
- sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$MAILINGLIST|g" $MUTTRC
- chown $MYUSERNAME:$MYUSERNAME $MUTTRC
+ sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$MAILINGLIST|g" $MUTTRC
+ chown $MYUSERNAME:$MYUSERNAME $MUTTRC
fi
fi
if [ $LIST_ADDRESS ]; then
sed -i "s|unsubscribe $LIST_ADDRESS|subscribe $LIST_ADDRESS|g" $MUTTRC
if ! grep -q "subscribe $LIST_ADDRESS" $MUTTRC; then
- echo "subscribe $LIST_ADDRESS" >> $MUTTRC
+ echo "subscribe $LIST_ADDRESS" >> $MUTTRC
fi
fi
diff --git a/src/freedombone-addremove b/src/freedombone-addremove
new file mode 100755
index 00000000..2e1b648b
--- /dev/null
+++ b/src/freedombone-addremove
@@ -0,0 +1,255 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Add or remove apps
+#
+# License
+# =======
+#
+# Copyright (C) 2015-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-addremove
+export TEXTDOMAINDIR="/usr/share/locale"
+
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
+
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+
+function mark_unselected_apps_as_removed {
+ # Initially mark the apps not chosen on first install as being removed
+ # otherwise they may be automatically installed on the next update
+ select_all_apps=$1
+ if [[ "$select_all_apps" != "add-all" ]]; then
+ return
+ fi
+
+ if [ -f $REMOVED_APPS_FILE ]; then
+ rm $REMOVED_APPS_FILE
+ fi
+
+ app_index=0
+ for app_name in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
+ echo "_${app_name}_" >> $REMOVED_APPS_FILE
+ fi
+ app_index=$[app_index+1]
+ done
+}
+
+function app_expected_to_be_installed {
+ # is the given application expected to be installed by default?
+ select_all_apps="$1"
+ app_name="$2"
+
+ read_config_param ONION_ONLY
+
+ if [[ "$select_all_apps" == "add-all" ]]; then
+ if [[ $ONION_ONLY != 'no' && "$app_name" == "hubzilla" ]]; then
+ echo "0"
+ return
+ fi
+ if ! grep -q "IN_DEFAULT_INSTALL=1" /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}; then
+ echo "0"
+ return
+ fi
+ fi
+ echo "1"
+}
+
+function show_apps {
+ select_all_apps=$1
+ applist=""
+ n=1
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} == "0" && "$select_all_apps" != "add-all" ]]; then
+ applist="$applist $n $a off"
+ else
+ if [[ $(app_expected_to_be_installed "$select_all_apps" "$a") == "0" ]]; then
+ applist="$applist $n $a off"
+ else
+ applist="$applist $n $a on"
+ fi
+ fi
+ n=$[n+1]
+ app_index=$[app_index+1]
+ done
+
+ choices=$(dialog --stdout --backtitle $"Freedombone" \
+ --title $"Add/Remove Applications" \
+ --checklist $'Choose:' \
+ 27 40 20 $applist)
+
+ if [ $? -eq 0 ]; then
+ for choice in $choices
+ do
+ app_index=$[choice-1]
+ APPS_CHOSEN[$app_index]="1"
+ done
+ else
+ exit 0
+ fi
+}
+
+function remove_apps_selected {
+ # which apps need to be removed?
+ removals=""
+ app_index=0
+ n=0
+ for a in "${APPS_INSTALLED[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
+ if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
+ if [ ${n} -gt 0 ]; then
+ removals="$removals ${APPS_AVAILABLE[$app_index]}"
+ else
+ removals="${APPS_AVAILABLE[$app_index]}"
+ fi
+ n=$[n+1]
+ fi
+ fi
+ app_index=$[app_index+1]
+ done
+
+ # if no apps to be removed then don't do anything
+ if [ ${n} -eq 0 ]; then
+ return
+ fi
+
+ # ask for confirmation
+ dialog --title $"Remove applications" \
+ --backtitle $"Freedombone" \
+ --defaultno \
+ --yesno $"\nYou have chosen to remove $n apps.\n\n $removals\n\nIf you choose 'yes' then this will remove both the applications and their data/messages. If you don't have a backup then you will not be able to recover the data for these applications.\n\nAre you sure that you wish to continue?" 15 60
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+
+ clear
+
+ # remove the apps
+ read_configuration
+ remove_apps
+}
+
+function install_apps_selected {
+ # which apps need to be installed?
+ select_all_apps=$1
+ installs=""
+ app_index=0
+ n=0
+ for a in "${APPS_INSTALLED[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} == "0" ]]; then
+ if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
+ if [ ${n} -gt 0 ]; then
+ installs="$installs ${APPS_AVAILABLE[$app_index]}"
+ else
+ installs="${APPS_AVAILABLE[$app_index]}"
+ fi
+ n=$[n+1]
+ fi
+ fi
+ app_index=$[app_index+1]
+ done
+
+ # if no apps to be installed then don't do anything
+ if [ ${n} -eq 0 ]; then
+ return
+ fi
+
+ if [[ "$select_all_apps" != "add-all" ]]; then
+ # ask for confirmation
+ dialog --title $"Remove applications" \
+ --backtitle $"Freedombone" \
+ --defaultno \
+ --yesno $"\nYou have chosen to install $n apps.\n\n $installs\n\nIf you choose 'yes' then these will now be installed.\n\nAre you sure that you wish to continue?" 15 60
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ fi
+
+ clear
+
+ # install the apps
+ read_configuration
+ install_apps interactive
+ if [ ! $APP_INSTALLED_SUCCESS ]; then
+ echo $'One or more apps failed to install'
+ fi
+}
+
+if [[ $1 == "test"* ]]; then
+ ${PROJECT_NAME}-tests
+ if [ ! "$?" = "0" ]; then
+ exit 2
+ fi
+fi
+
+detect_installable_apps
+
+# if no applications were found
+if [[ ${#APPS_AVAILABLE[@]} == 0 ]]; then
+ exit 1
+fi
+
+show_apps $1
+mark_unselected_apps_as_removed $1
+
+clear
+
+remove_apps_selected
+
+if [[ $1 == "add-all" ]]; then
+ install_apps_selected add-all
+else
+ install_apps_selected
+fi
+
+exit 0
diff --git a/src/freedombone-addsipuser b/src/freedombone-addsipuser
index 1eb09841..c6c2d235 100755
--- a/src/freedombone-addsipuser
+++ b/src/freedombone-addsipuser
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -50,10 +50,10 @@ function show_help {
function sip_user_exists {
IFS=''
while read line; do
- if [[ "$line" == *"" ]]; then
- USER_EXISTS="yes"
- return
- fi
+ if [[ "$line" == *"" ]]; then
+ USER_EXISTS="yes"
+ return
+ fi
done < $CONFIG_FILE
}
@@ -61,28 +61,28 @@ function update_sip_user {
USER_FOUND=
NEW_CONFIG_FILE="${CONFIG_FILE}.new"
if [ -f $NEW_CONFIG_FILE ]; then
- rm -f $NEW_CONFIG_FILE
+ rm -f $NEW_CONFIG_FILE
fi
touch $NEW_CONFIG_FILE
IFS=''
while read line; do
- if [ ! $USER_FOUND ]; then
- if [[ "$line" == *"" ]]; then
- USER_FOUND="yes"
- fi
- else
- if [[ "$line" == *""* ]]; then
- line=" $EXTENSION "
- fi
- if [[ "$line" == *""* ]]; then
- line=" $PASSWORD "
- fi
- if [[ "$line" == *""* ]]; then
- line=" $MY_USERNAME $EXTENSION "
- USER_FOUND=
- fi
+ if [ ! $USER_FOUND ]; then
+ if [[ "$line" == *"" ]]; then
+ USER_FOUND="yes"
fi
- echo $line >> $NEW_CONFIG_FILE
+ else
+ if [[ "$line" == *""* ]]; then
+ line=" $EXTENSION "
+ fi
+ if [[ "$line" == *""* ]]; then
+ line=" $PASSWORD "
+ fi
+ if [[ "$line" == *""* ]]; then
+ line=" $MY_USERNAME $EXTENSION "
+ USER_FOUND=
+ fi
+ fi
+ echo $line >> $NEW_CONFIG_FILE
done < $CONFIG_FILE
mv $NEW_CONFIG_FILE $CONFIG_FILE
}
@@ -90,19 +90,19 @@ function update_sip_user {
function add_sip_user {
NEW_CONFIG_FILE="${CONFIG_FILE}.new"
if [ -f $NEW_CONFIG_FILE ]; then
- rm -f $NEW_CONFIG_FILE
+ rm -f $NEW_CONFIG_FILE
fi
touch $NEW_CONFIG_FILE
IFS=''
while read line; do
- if [[ "$line" == *'' ]]; then
- echo " " >> $NEW_CONFIG_FILE
- echo " $EXTENSION " >> $NEW_CONFIG_FILE
- echo " $PASSWORD " >> $NEW_CONFIG_FILE
- echo " $MY_USERNAME $EXTENSION " >> $NEW_CONFIG_FILE
- echo ' ' >> $NEW_CONFIG_FILE
- fi
- echo $line >> $NEW_CONFIG_FILE
+ if [[ "$line" == *'' ]]; then
+ echo " " >> $NEW_CONFIG_FILE
+ echo " $EXTENSION " >> $NEW_CONFIG_FILE
+ echo " $PASSWORD " >> $NEW_CONFIG_FILE
+ echo " $MY_USERNAME $EXTENSION " >> $NEW_CONFIG_FILE
+ echo ' ' >> $NEW_CONFIG_FILE
+ fi
+ echo $line >> $NEW_CONFIG_FILE
done < $CONFIG_FILE
mv $NEW_CONFIG_FILE $CONFIG_FILE
usermod -aG sipwitch $MY_USERNAME
@@ -113,24 +113,24 @@ do
key="$1"
case $key in
- -h|--help)
- show_help
- ;;
- -u|--user)
- shift
- MY_USERNAME="$1"
- ;;
- -e|--extension)
- shift
- EXTENSION="$1"
- ;;
- -p|--password)
- shift
- PASSWORD="$1"
- ;;
- *)
- # unknown option
- ;;
+ -h|--help)
+ show_help
+ ;;
+ -u|--user)
+ shift
+ MY_USERNAME="$1"
+ ;;
+ -e|--extension)
+ shift
+ EXTENSION="$1"
+ ;;
+ -p|--password)
+ shift
+ PASSWORD="$1"
+ ;;
+ *)
+ # unknown option
+ ;;
esac
shift
done
diff --git a/src/freedombone-adduser b/src/freedombone-adduser
index 943aa59d..70657e71 100755
--- a/src/freedombone-adduser
+++ b/src/freedombone-adduser
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -34,384 +34,212 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-adduser
export TEXTDOMAINDIR="/usr/share/locale"
-CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
-MY_USERNAME=$1
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+
+ADD_USERNAME=$1
SSH_PUBLIC_KEY="$2"
GPG_KEYSERVER='hkp://keys.gnupg.net'
SSH_PORT=2222
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
-SIP_EXTENSION=
-FULLBLOG_DOMAIN_NAME=
DEFAULT_DOMAIN_NAME=
-if [ ! $MY_USERNAME ]; then
- echo $'No username was given'
- exit 1
+if [ ! $ADD_USERNAME ]; then
+ echo $'No username was given'
+ exit 1
fi
-if [ -d /home/$MY_USERNAME ]; then
- echo $"The user $MY_USERNAME already exists"
- exit 2
+if [ -d /home/$ADD_USERNAME ]; then
+ echo $"The user $ADD_USERNAME already exists"
+ exit 2
fi
if [ ! -f $COMPLETION_FILE ]; then
- echo $"$COMPLETION_FILE not found"
- userdel -r $MY_USERNAME
- exit 3
+ echo $"$COMPLETION_FILE not found"
+ userdel -r $ADD_USERNAME
+ exit 3
fi
# Minimum number of characters in a password
-MINIMUM_PASSWORD_LENGTH=10
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-else
- if [ -f /usr/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
- fi
-fi
+MINIMUM_PASSWORD_LENGTH=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
NEW_USER_PASSWORD="$(openssl rand -base64 30 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
-useradd -m -p "$NEW_USER_PASSWORD" -s /bin/bash $MY_USERNAME
-adduser $MY_USERNAME sasl
+useradd -m -p "$NEW_USER_PASSWORD" -s /bin/bash $ADD_USERNAME
+adduser $ADD_USERNAME sasl
-if [ ! -d /home/$MY_USERNAME ]; then
- echo $'Home directory was not created'
- exit 4
+if [ ! -d /home/$ADD_USERNAME ]; then
+ echo $'Home directory was not created'
+ exit 4
fi
if [ "$SSH_PUBLIC_KEY" ]; then
- if [ ${#SSH_PUBLIC_KEY} -gt 5 ]; then
- if [ -f "$SSH_PUBLIC_KEY" ]; then
- mkdir /home/$MY_USERNAME/.ssh
- cp $SSH_PUBLIC_KEY /home/$MY_USERNAME/.ssh/authorized_keys
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
- echo $'ssh public key installed'
- else
- if [[ "$SSH_PUBLIC_KEY" == "ssh-"* ]]; then
- mkdir /home/$MY_USERNAME/.ssh
- echo "$SSH_PUBLIC_KEY" > /home/$MY_USERNAME/.ssh/authorized_keys
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
- echo $'ssh public key installed'
- else
- echo $'The second parameter does not look like an ssh key'
- exit 5
- fi
- fi
- fi
+ if [ ${#SSH_PUBLIC_KEY} -gt 5 ]; then
+ if [ -f "$SSH_PUBLIC_KEY" ]; then
+ mkdir /home/$ADD_USERNAME/.ssh
+ cp $SSH_PUBLIC_KEY /home/$ADD_USERNAME/.ssh/authorized_keys
+ chown -R $ADD_USERNAME:$ADD_USERNAME /home/$ADD_USERNAME/.ssh
+ echo $'ssh public key installed'
+ else
+ if [[ "$SSH_PUBLIC_KEY" == "ssh-"* ]]; then
+ mkdir /home/$ADD_USERNAME/.ssh
+ echo "$SSH_PUBLIC_KEY" > /home/$ADD_USERNAME/.ssh/authorized_keys
+ chown -R $ADD_USERNAME:$ADD_USERNAME /home/$ADD_USERNAME/.ssh
+ echo $'ssh public key installed'
+ else
+ echo $'The second parameter does not look like an ssh key'
+ exit 5
+ fi
+ fi
+ fi
fi
-if [ -d /home/$MY_USERNAME/Maildir ]; then
- if grep -q "set from=" /home/$MY_USERNAME/.muttrc; then
- sed -i "s|set from=.*|set from='$MY_USERNAME <$MY_USERNAME@$HOSTNAME>'|g" /home/$MY_USERNAME/.muttrc
- else
- echo "set from='$MY_USERNAME <$MY_USERNAME@$HOSTNAME>'" >> /home/$MY_USERNAME/.muttrc
- fi
+if [ -d /home/$ADD_USERNAME/Maildir ]; then
+ if grep -q "set from=" /home/$ADD_USERNAME/.muttrc; then
+ sed -i "s|set from=.*|set from='$ADD_USERNAME <$ADD_USERNAME@$HOSTNAME>'|g" /home/$ADD_USERNAME/.muttrc
+ else
+ echo "set from='$ADD_USERNAME <$ADD_USERNAME@$HOSTNAME>'" >> /home/$ADD_USERNAME/.muttrc
+ fi
- USERN='$USER@'
- sed -i "s|$USERN|$MY_USERNAME@|g" /home/$MY_USERNAME/.procmailrc
+ USERN='$USER@'
+ sed -i "s|$USERN|$ADD_USERNAME@|g" /home/$ADD_USERNAME/.procmailrc
fi
# generate a gpg key
-echo "Making a GPG key for $MY_USERNAME@$HOSTNAME"
-mkdir /home/$MY_USERNAME/.gnupg
-echo "keyserver $GPG_KEYSERVER" >> /home/$MY_USERNAME/.gnupg/gpg.conf
-echo 'keyserver-options auto-key-retrieve' >> /home/$MY_USERNAME/.gnupg/gpg.conf
-echo '' >> /home/$MY_USERNAME/.gnupg/gpg.conf
-echo '# default preferences' >> /home/$MY_USERNAME/.gnupg/gpg.conf
-echo 'personal-digest-preferences SHA256' >> /home/$MY_USERNAME/.gnupg/gpg.conf
-echo 'cert-digest-algo SHA256' >> /home/$MY_USERNAME/.gnupg/gpg.conf
-echo 'default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed' >> /home/$MY_USERNAME/.gnupg/gpg.conf
+echo "Making a GPG key for $ADD_USERNAME@$HOSTNAME"
+mkdir /home/$ADD_USERNAME/.gnupg
+echo "keyserver $GPG_KEYSERVER" >> /home/$ADD_USERNAME/.gnupg/gpg.conf
+echo 'keyserver-options auto-key-retrieve' >> /home/$ADD_USERNAME/.gnupg/gpg.conf
+echo '' >> /home/$ADD_USERNAME/.gnupg/gpg.conf
+echo '# default preferences' >> /home/$ADD_USERNAME/.gnupg/gpg.conf
+echo 'personal-digest-preferences SHA256' >> /home/$ADD_USERNAME/.gnupg/gpg.conf
+echo 'cert-digest-algo SHA256' >> /home/$ADD_USERNAME/.gnupg/gpg.conf
+echo 'default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed' >> /home/$ADD_USERNAME/.gnupg/gpg.conf
-chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
-chmod 700 /home/$MY_USERNAME/.gnupg
-chmod 600 /home/$MY_USERNAME/.gnupg/*
+chown -R $ADD_USERNAME:$ADD_USERNAME /home/$ADD_USERNAME/.gnupg
+chmod 700 /home/$ADD_USERNAME/.gnupg
+chmod 600 /home/$ADD_USERNAME/.gnupg/*
# Generate a GPG key
-echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
-echo 'Key-Length: 4096' >> /home/$MY_USERNAME/gpg-genkey.conf
-echo 'Subkey-Type: 1' >> /home/$MY_USERNAME/gpg-genkey.conf
-echo 'Subkey-Length: 4096' >> /home/$MY_USERNAME/gpg-genkey.conf
-echo "Name-Real: $MY_USERNAME" >> /home/$MY_USERNAME/gpg-genkey.conf
-echo "Name-Email: $MY_USERNAME@$HOSTNAME" >> /home/$MY_USERNAME/gpg-genkey.conf
-echo 'Expire-Date: 0' >> /home/$MY_USERNAME/gpg-genkey.conf
-chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
-su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
-shred -zu /home/$MY_USERNAME/gpg-genkey.conf
-MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$HOSTNAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
-MY_GPG_PUBLIC_KEY=/home/$MY_USERNAME/public_key.gpg
-su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
+echo 'Key-Type: 1' > /home/$ADD_USERNAME/gpg-genkey.conf
+echo 'Key-Length: 4096' >> /home/$ADD_USERNAME/gpg-genkey.conf
+echo 'Subkey-Type: 1' >> /home/$ADD_USERNAME/gpg-genkey.conf
+echo 'Subkey-Length: 4096' >> /home/$ADD_USERNAME/gpg-genkey.conf
+echo "Name-Real: $ADD_USERNAME" >> /home/$ADD_USERNAME/gpg-genkey.conf
+echo "Name-Email: $ADD_USERNAME@$HOSTNAME" >> /home/$ADD_USERNAME/gpg-genkey.conf
+echo 'Expire-Date: 0' >> /home/$ADD_USERNAME/gpg-genkey.conf
+chown $ADD_USERNAME:$ADD_USERNAME /home/$ADD_USERNAME/gpg-genkey.conf
+su -c "gpg --batch --gen-key /home/$ADD_USERNAME/gpg-genkey.conf" - $ADD_USERNAME
+shred -zu /home/$ADD_USERNAME/gpg-genkey.conf
+MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $ADD_USERNAME@$HOSTNAME | grep 'pub '" - $ADD_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+MY_GPG_PUBLIC_KEY=/home/$ADD_USERNAME/public_key.gpg
+su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $ADD_USERNAME
if [ ! -f $MY_GPG_PUBLIC_KEY ]; then
- echo "GPG public key was not generated for $MY_USERNAME@$HOSTNAME $MY_GPG_PUBLIC_KEY_ID"
- userdel -r $MY_USERNAME
- exit 7
+ echo "GPG public key was not generated for $ADD_USERNAME@$HOSTNAME $MY_GPG_PUBLIC_KEY_ID"
+ userdel -r $ADD_USERNAME
+ exit 7
fi
# add a monkeysphere subkey
-su -c "monkeysphere gen-subkey $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
+#echo $'Adding monkeysphere subkey'
+#su -c "monkeysphere gen-subkey" - $ADD_USERNAME
+#echo $'Adding monkeysphere subkey to ssh-agent'
+#su -c "monkeysphere s" - $ADD_USERNAME
# add authorized GPG email address
-mkdir /home/$MY_USERNAME/.monkeysphere
-chmod 755 /home/$MY_USERNAME/.monkeysphere
-echo "$MY_USERNAME <$MY_USERNAME@$HOSTNAME>" > /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
-chmod 644 /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
-chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.monkeysphere
+mkdir /home/$ADD_USERNAME/.monkeysphere
+chmod 755 /home/$ADD_USERNAME/.monkeysphere
+echo "$ADD_USERNAME <$ADD_USERNAME@$HOSTNAME>" > /home/$ADD_USERNAME/.monkeysphere/authorized_user_ids
+chmod 644 /home/$ADD_USERNAME/.monkeysphere/authorized_user_ids
+chown -R $ADD_USERNAME:$ADD_USERNAME /home/$ADD_USERNAME/.monkeysphere
+echo $'Updating monkeysphere users'
monkeysphere-authentication update-users
-if [ -f /home/$MY_USERNAME/.muttrc ]; then
- # encrypt outgoing mail to the "sent" folder
- if ! grep -q "pgp_encrypt_only_command" /home/$MY_USERNAME/.muttrc; then
- echo '' >> /home/$MY_USERNAME/.muttrc
- echo $'# Encrypt items in the Sent folder' >> /home/$MY_USERNAME/.muttrc
- echo "set pgp_encrypt_only_command=\"/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"" >> /home/$MY_USERNAME/.muttrc
- else
- sed -i "s|set pgp_encrypt_only_command.*|set pgp_encrypt_only_command=\"/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$MY_USERNAME/.muttrc
- fi
+if [ -f /home/$ADD_USERNAME/.muttrc ]; then
+ # encrypt outgoing mail to the "sent" folder
+ if ! grep -q "pgp_encrypt_only_command" /home/$ADD_USERNAME/.muttrc; then
+ echo '' >> /home/$ADD_USERNAME/.muttrc
+ echo $'# Encrypt items in the Sent folder' >> /home/$ADD_USERNAME/.muttrc
+ echo "set pgp_encrypt_only_command=\"/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"" >> /home/$ADD_USERNAME/.muttrc
+ else
+ sed -i "s|set pgp_encrypt_only_command.*|set pgp_encrypt_only_command=\"/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$ADD_USERNAME/.muttrc
+ fi
- if ! grep -q "pgp_encrypt_sign_command" /home/$MY_USERNAME/.muttrc; then
- echo "set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"" >> /home/$MY_USERNAME/.muttrc
- else
- sed -i "s|set pgp_encrypt_sign_command.*|set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$MY_USERNAME/.muttrc
- fi
+ if ! grep -q "pgp_encrypt_sign_command" /home/$ADD_USERNAME/.muttrc; then
+ echo "set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"" >> /home/$ADD_USERNAME/.muttrc
+ else
+ sed -i "s|set pgp_encrypt_sign_command.*|set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$ADD_USERNAME/.muttrc
+ fi
fi
-if ! grep -q "Change your GPG password" /home/$MY_USERNAME/README; then
- echo '' >> /home/$MY_USERNAME/README
- echo '' >> /home/$MY_USERNAME/README
- echo $'Change your GPG password' >> /home/$MY_USERNAME/README
- echo '========================' >> /home/$MY_USERNAME/README
- echo $"It's very important to add a password to your GPG key so that" >> /home/$MY_USERNAME/README
- echo $"if anyone does get access to your email they still won't be able" >> /home/$MY_USERNAME/README
- echo $'to read them without knowning the GPG password.' >> /home/$MY_USERNAME/README
- echo $'You can change the it with:' >> /home/$MY_USERNAME/README
- echo '' >> /home/$MY_USERNAME/README
- echo " gpg --edit-key $MY_GPG_PUBLIC_KEY_ID" >> /home/$MY_USERNAME/README
- echo ' passwd' >> /home/$MY_USERNAME/README
- echo ' save' >> /home/$MY_USERNAME/README
- echo ' quit' >> /home/$MY_USERNAME/README
+if ! grep -q "Change your GPG password" /home/$ADD_USERNAME/README; then
+ echo '' >> /home/$ADD_USERNAME/README
+ echo '' >> /home/$ADD_USERNAME/README
+ echo $'# Change your GPG password' >> /home/$ADD_USERNAME/README
+ echo $"It's very important to add a password to your GPG key so that" >> /home/$ADD_USERNAME/README
+ echo $"if anyone does get access to your email they still won't be able" >> /home/$ADD_USERNAME/README
+ echo $'to read them without knowning the GPG password.' >> /home/$ADD_USERNAME/README
+ echo $'You can change the it with:' >> /home/$ADD_USERNAME/README
+ echo '' >> /home/$ADD_USERNAME/README
+ echo " gpg --edit-key $MY_GPG_PUBLIC_KEY_ID" >> /home/$ADD_USERNAME/README
+ echo ' passwd' >> /home/$ADD_USERNAME/README
+ echo ' save' >> /home/$ADD_USERNAME/README
+ echo ' quit' >> /home/$ADD_USERNAME/README
fi
-if ! grep -q "Publish your GPG public key" /home/$MY_USERNAME/README; then
- echo '' >> /home/$MY_USERNAME/README
- echo '' >> /home/$MY_USERNAME/README
- echo $'Publish your GPG public key' >> /home/$MY_USERNAME/README
- echo '===========================' >> /home/$MY_USERNAME/README
- echo $'So that others can send emails to you securely you should' >> /home/$MY_USERNAME/README
- echo $'publish your GPG public key with the command:' >> /home/$MY_USERNAME/README
- echo '' >> /home/$MY_USERNAME/README
- echo " gpg --send-keys $MY_GPG_PUBLIC_KEY_ID" >> /home/$MY_USERNAME/README
-fi
+chown $ADD_USERNAME:$ADD_USERNAME /home/$ADD_USERNAME/README
+chown $ADD_USERNAME:$ADD_USERNAME $MY_GPG_PUBLIC_KEY
+chmod 600 /home/$ADD_USERNAME/README
-chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-chown $MY_USERNAME:$MY_USERNAME $MY_GPG_PUBLIC_KEY
-chmod 600 /home/$MY_USERNAME/README
-
-if grep -q "install_xmpp" $COMPLETION_FILE; then
- echo $"Adding an XMPP account for $MY_USERNAME"
- ${PROJECT_NAME}-addxmpp -e "$MY_USERNAME@$HOSTNAME" -p "$NEW_USER_PASSWORD"
- if [ ! "$?" = "0" ]; then
- echo $"XMPP account not created"
- userdel -r $MY_USERNAME
- exit 8
- fi
-fi
-
-if grep -q "install_xmpp_client" $COMPLETION_FILE; then
- echo $"Adding XMPP client setup"
- XMPP_CLIENT_DIR=/home/$MY_USERNAME/.local/share/profanity
- XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
- if [ ! -d $XMPP_CLIENT_DIR ]; then
- mkdir -p $XMPP_CLIENT_DIR
- fi
- if [ ! -d /home/$MY_USERNAME/.config/profanity ]; then
- mkdir -p /home/$MY_USERNAME/.config/profanity
- fi
- echo "[${MY_USERNAME}@${HOSTNAME}]" > $XMPP_CLIENT_ACCOUNTS
- echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
- echo "jid=${MY_USERNAME}@${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
- echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
- echo "muc.service=conference.${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
- echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
- echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
- echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
- echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
- echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
- echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
- echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
- echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
-
- echo '[connection]' > /home/$MY_USERNAME/.config/profanity/profrc
- echo "account=${MY_USERNAME}@${HOSTNAME}" >> /home/$MY_USERNAME/.config/profanity/profrc
-
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.local
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
-fi
-
-if grep -q "Blog domain" $COMPLETION_FILE; then
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
- if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users ]; then
- echo $'Blog users directory not found'
- if grep -q "install_xmpp" $COMPLETION_FILE; then
- ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
- fi
- userdel -r $MY_USERNAME
- exit 9
- fi
- NEW_USER_PASSWORD_HASH=$(freedombone-sec --bloghash "$NEW_USER_PASSWORD")
- if [ ${#NEW_USER_PASSWORD_HASH} -lt 8 ]; then
- echo $'Blog admin password could not be hashed'
- exit 783528
- fi
- echo ';Password' > /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo 'encryption = password_hash' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo ';Role' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo 'role = admin' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo "$MY_USERNAME added as a blog user"
-fi
-
-if grep -q "install_sip" $COMPLETION_FILE; then
- SIP_EXTENSION=$(${PROJECT_NAME}-sipfreeext)
- ${PROJECT_NAME}-addsipuser -u $MY_USERNAME -e $SIP_EXTENSION -p "$NEW_USER_PASSWORD"
- if [ ! "$?" = "0" ]; then
- echo $'SIP user could not be added. Ensure that extension numbers are in order and do no exceed 299'
- if grep -q "install_xmpp" $COMPLETION_FILE; then
- ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
- fi
- if grep -q "Blog domain" $COMPLETION_FILE; then
- if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
- rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- fi
- fi
- userdel -r $MY_USERNAME
- exit 10
- fi
-fi
-
-if grep -q "install_gnu_social" $COMPLETION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
- if [ -d /var/www/$MICROBLOG_DOMAIN_NAME ]; then
- cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
- php scripts/registeruser.php -n $MY_USERNAME -w "$NEW_USER_PASSWORD" -e "$MY_USERNAME@$HOSTNAME"
- freedombone-addemail -u $MY_USERNAME -e "noreply@$MICROBLOG_DOMAIN_NAME" -g gnusocial --public no
- echo $'Created GNU Social user'
- else
- echo $"Unable to find GNU Social installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs"
- userdel -r $MY_USERNAME
- exit 11
- fi
-fi
-
-if grep -q "install_irc_client" $COMPLETION_FILE; then
- IRC_PORT=6697
- if grep -q "IRC_PORT" $CONFIGURATION_FILE; then
- IRC_PORT=$(grep "IRC_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
- if [ ${#IRC_PASSWORD} -lt 2 ]; then
- IRC_PASSWORD=
- fi
-
- if [ ! -d /home/$MY_USERNAME/.irssi ]; then
- mkdir /home/$MY_USERNAME/.irssi
- fi
-
- echo 'servers = (' > /home/$MY_USERNAME/.irssi/config
- echo ' {' >> /home/$MY_USERNAME/.irssi/config
- echo ' address = "chat.freenode.net";' >> /home/$MY_USERNAME/.irssi/config
- echo ' chatnet = "Freenode";' >> /home/$MY_USERNAME/.irssi/config
- echo ' port = "6667";' >> /home/$MY_USERNAME/.irssi/config
- echo ' autoconnect = "no";' >> /home/$MY_USERNAME/.irssi/config
- echo ' },' >> /home/$MY_USERNAME/.irssi/config
- echo ' {' >> /home/$MY_USERNAME/.irssi/config
- echo ' address = "irc.oftc.net";' >> /home/$MY_USERNAME/.irssi/config
- echo ' chatnet = "OFTC";' >> /home/$MY_USERNAME/.irssi/config
- echo ' port = "6667";' >> /home/$MY_USERNAME/.irssi/config
- echo ' autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
- echo ' },' >> /home/$MY_USERNAME/.irssi/config
- echo ' {' >> /home/$MY_USERNAME/.irssi/config
- echo " address = \"${HOSTNAME}\";" >> /home/$MY_USERNAME/.irssi/config
- echo ' chatnet = "Freedombone";' >> /home/$MY_USERNAME/.irssi/config
- echo " port = \"${IRC_PORT}\";" >> /home/$MY_USERNAME/.irssi/config
- echo ' use_ssl = "yes";' >> /home/$MY_USERNAME/.irssi/config
- echo ' ssl_verify = "no";' >> /home/$MY_USERNAME/.irssi/config
- echo ' autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
-
- echo ' }' >> /home/$MY_USERNAME/.irssi/config
- echo ');' >> /home/$MY_USERNAME/.irssi/config
- echo '' >> /home/$MY_USERNAME/.irssi/config
- echo 'chatnets = {' >> /home/$MY_USERNAME/.irssi/config
- echo ' Freedombone = {' >> /home/$MY_USERNAME/.irssi/config
- echo ' type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' };' >> /home/$MY_USERNAME/.irssi/config
- echo ' Freenode = {' >> /home/$MY_USERNAME/.irssi/config
- echo ' type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' };' >> /home/$MY_USERNAME/.irssi/config
- echo ' OFTC = {' >> /home/$MY_USERNAME/.irssi/config
- echo ' type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_msgs = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
- echo ' };' >> /home/$MY_USERNAME/.irssi/config
- echo '};' >> /home/$MY_USERNAME/.irssi/config
- echo '' >> /home/$MY_USERNAME/.irssi/config
- echo 'channels = (' >> /home/$MY_USERNAME/.irssi/config
- echo ' { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/$MY_USERNAME/.irssi/config
- echo ');' >> /home/$MY_USERNAME/.irssi/config
- echo '' >> /home/$MY_USERNAME/.irssi/config
- echo 'settings = {' >> /home/$MY_USERNAME/.irssi/config
- echo " core = { real_name = \"$MY_NAME\"; user_name = \"$MY_USERNAME\"; nick = \"$MY_USERNAME\"; };" >> /home/$MY_USERNAME/.irssi/config
- echo ' "fe-text" = { actlist_sort = "refnum"; };' >> /home/$MY_USERNAME/.irssi/config
- echo '};' >> /home/$MY_USERNAME/.irssi/config
- echo 'ignores = ( { level = "CTCPS"; } );' >> /home/$MY_USERNAME/.irssi/config
-
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.irssi
-fi
+echo $'Detecting installed apps...'
+detect_apps
+get_apps_installed_names
+for app_name in "${APPS_INSTALLED_NAMES[@]}"
+do
+ if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
+ echo $"Adding user to ${app_name}"
+ app_load_variables ${app_name}
+ retval=$(add_user_${app_name} "$ADD_USERNAME" "$NEW_USER_PASSWORD" | tail -n 1)
+ if [[ $retval != '0' ]]; then
+ echo $"Failed with error code ${retval}"
+ ${PROJECT_NAME}-rmuser $ADD_USERNAME --force
+ exit 672392
+ fi
+ if ! grep -q "${app_name}_${ADD_USERNAME}" $APP_USERS_FILE; then
+ echo "${app_name}_${ADD_USERNAME}" >> $APP_USERS_FILE
+ fi
+ fi
+done
if [ -f /etc/nginx/.htpasswd ]; then
- if ! grep "${MY_USERNAME}:" /etc/nginx/.htpasswd; then
- echo "$NEW_USER_PASSWORD" | htpasswd -i -s /etc/nginx/.htpasswd $MY_USERNAME
- fi
-fi
-
-# add user to the sipwitch group
-if [ -f /etc/sipwitch.conf ]; then
- usermod -aG sipwitch $MY_USERNAME
-fi
-
-# add user for SIP STUN/TURN
-if [ -d /etc/turnserver ]; then
- if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
- DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- echo "${MY_USERNAME}:${NEW_USER_PASSWORD}:${DEFAULT_DOMAIN_NAME}:authorized" >> /etc/turnserver/turnusers.txt
- fi
+ if ! grep "${ADD_USERNAME}:" /etc/nginx/.htpasswd; then
+ echo "$NEW_USER_PASSWORD" | htpasswd -i -s /etc/nginx/.htpasswd $ADD_USERNAME
+ fi
fi
# add user menu on ssh login
-if ! grep -q 'control' /home/$MY_USERNAME/.bashrc; then
- echo 'control' >> /home/$MY_USERNAME/.bashrc
+if ! grep -q 'control' /home/$ADD_USERNAME/.bashrc; then
+ echo 'control' >> /home/$ADD_USERNAME/.bashrc
fi
+${PROJECT_NAME}-pass -u $ADD_USERNAME -a login -p "$NEW_USER_PASSWORD"
clear
-echo $"New user $MY_USERNAME was created"
-if [ $SIP_EXTENSION ]; then
- echo $"Their SIP phone extension is $SIP_EXTENSION"
-fi
+echo $"New user $ADD_USERNAME was created"
echo $"Their login password is $NEW_USER_PASSWORD"
echo ''
-echo $'IMPORTANT: Make a note of the password, because it will not be saved'
-echo $'anywhere else. Preferably give it to them in person on paper or via'
-echo $'a secure channel, not in an unencrypted email.'
-echo ''
echo $"They can download their GPG keys with:"
echo ''
-echo " scp -P $SSH_PORT -r $MY_USERNAME@$HOSTNAME:/home/$MY_USERNAME/.gnupg ~/"
+echo " scp -P $SSH_PORT -r $ADD_USERNAME@$HOSTNAME:/home/$ADD_USERNAME/.gnupg ~/"
echo ''
echo $"They should also run ${PROJECT_NAME}-client on their system to ensure"
echo $'the best security.'
diff --git a/src/freedombone-addxmpp b/src/freedombone-addxmpp
index 70ad3dae..960b24e3 100755
--- a/src/freedombone-addxmpp
+++ b/src/freedombone-addxmpp
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -46,25 +46,25 @@ function show_help {
while [[ $# > 1 ]]
do
-key="$1"
+ key="$1"
-case $key in
- -h|--help)
- show_help
- ;;
- -e|--email)
+ case $key in
+ -h|--help)
+ show_help
+ ;;
+ -e|--email)
+ shift
+ EMAIL_ADDRESS="$1"
+ ;;
+ -p|--password|--passphrase)
+ shift
+ NEW_USER_PASSWORD="$1"
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
shift
- EMAIL_ADDRESS="$1"
- ;;
- -p|--password|--passphrase)
- shift
- NEW_USER_PASSWORD="$1"
- ;;
- *)
- # unknown option
- ;;
-esac
-shift
done
if [ ! -d /etc/prosody ]; then
@@ -77,10 +77,10 @@ if [ ! $EMAIL_ADDRESS ]; then
exit 1
fi
+USERNAME=$(echo $EMAIL_ADDRESS | awk -F '@' '{print $1}')
if [ ! $NEW_USER_PASSWORD ]; then
prosodyctl adduser $EMAIL_ADDRESS
else
- USERNAME=$(echo $EMAIL_ADDRESS | awk -F '@' '{print $1}')
DOMAIN_NAME=$(echo $EMAIL_ADDRESS | awk -F '@' '{print $2}')
prosodyctl register $USERNAME $DOMAIN_NAME "$NEW_USER_PASSWORD"
if [ ! "$?" = "0" ]; then
@@ -88,4 +88,13 @@ else
fi
fi
+# add the xmpp address to email headers
+if [ -f /home/$USERNAME/.muttrc ]; then
+ if ! grep -q "Jabber-ID" /home/$USERNAME/.muttrc; then
+ echo "my_hdr Jabber-ID: $EMAIL_ADDRESS" >> /home/$USERNAME/.muttrc
+ else
+ sed -i "s|my_hdr Jabber-ID.*|my_hdr Jabber-ID: $EMAIL_ADDRESS|g" /home/$USERNAME/.muttrc
+ fi
+fi
+
exit 0
diff --git a/src/freedombone-app-batman b/src/freedombone-app-batman
new file mode 100755
index 00000000..419b7609
--- /dev/null
+++ b/src/freedombone-app-batman
@@ -0,0 +1,152 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# batman adv mesh functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+ENABLE_BATMAN="no"
+BATMAN_CELLID='any'
+
+batman_variables=(MY_USERNAME
+ BATMAN_CELLID)
+
+function install_interactive_batman {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function configure_firewall_for_batman {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $ENABLE_BATMAN != "yes" ]]; then
+ return
+ fi
+
+ function_check save_firewall_settings
+ save_firewall_settings
+ mark_completed $FUNCNAME
+}
+
+function reconfigure_batman {
+ echo -n ''
+}
+
+function upgrade_batman {
+ echo -n ''
+}
+
+function backup_local_batman {
+ echo -n ''
+}
+
+function restore_local_batman {
+ echo -n ''
+}
+
+function backup_remote_batman {
+ echo -n ''
+}
+
+function restore_remote_batman {
+ echo -n ''
+}
+
+function remove_batman {
+ ${PROJECT_NAME}-mesh-install -f batman --remove yes
+ if [ ! "$?" = "0" ]; then
+ echo $'Failed to remove batman'
+ exit 79353
+ fi
+ remove_completion_param install_batman
+ remove_completion_param configure_firewall_for_batman
+}
+
+function mesh_install_batman {
+ chroot "$rootdir" apt-get -yq install iproute bridge-utils libnetfilter-conntrack3 batctl
+ chroot "$rootdir" apt-get -yq install python-dev libevent-dev ebtables python-pip git
+ chroot "$rootdir" apt-get -yq install wireless-tools rfkill
+
+ if ! grep -q "batman_adv" $rootdir/etc/modules; then
+ echo 'batman_adv' >> $rootdir/etc/modules
+ fi
+
+ BATMAN_SCRIPT=$rootdir/var/lib/batman
+
+ if [ -f /usr/local/bin/${PROJECT_NAME}-mesh-batman ]; then
+ cp /usr/local/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
+ else
+ cp /usr/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
+ fi
+
+ BATMAN_DAEMON=$rootdir/etc/systemd/system/batman.service
+ echo '[Unit]' > $BATMAN_DAEMON
+ echo 'Description=B.A.T.M.A.N. Advanced' >> $BATMAN_DAEMON
+ echo 'After=network.target' >> $BATMAN_DAEMON
+ echo '' >> $BATMAN_DAEMON
+ echo '[Service]' >> $BATMAN_DAEMON
+ echo 'RemainAfterExit=yes' >> $BATMAN_DAEMON
+ echo "ExecStart=/var/lib/batman start" >> $BATMAN_DAEMON
+ echo "ExecStop=/var/lib/batman stop" >> $BATMAN_DAEMON
+ echo 'Restart=on-failure' >> $BATMAN_DAEMON
+ echo 'SuccessExitStatus=3 4' >> $BATMAN_DAEMON
+ echo 'RestartForceExitStatus=3 4' >> $BATMAN_DAEMON
+ echo '' >> $BATMAN_DAEMON
+ echo '# Allow time for the server to start/stop' >> $BATMAN_DAEMON
+ echo 'TimeoutSec=300' >> $BATMAN_DAEMON
+ echo '' >> $BATMAN_DAEMON
+ echo '[Install]' >> $BATMAN_DAEMON
+ echo 'WantedBy=multi-user.target' >> $BATMAN_DAEMON
+ chroot "$rootdir" systemctl enable batman
+}
+
+function install_batman {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_batman
+ return
+ fi
+ if [[ $ENABLE_BATMAN != "yes" ]]; then
+ return
+ fi
+
+ ${PROJECT_NAME}-mesh-install -f batman
+ if [ ! "$?" = "0" ]; then
+ echo $'Failed to install batman'
+ exit 72524
+ fi
+
+ function_check configure_firewall_for_batman
+ configure_firewall_for_batman
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-dlna b/src/freedombone-app-dlna
new file mode 100755
index 00000000..3033d7b4
--- /dev/null
+++ b/src/freedombone-app-dlna
@@ -0,0 +1,265 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# DLNA application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim media'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+dlna_variables=(SYSTEM_TYPE
+ USB_MOUNT_DLNA
+ INSTALLED_WITHIN_DOCKER
+ MY_USERNAME)
+
+function configure_interactive_dlna {
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"Media Menu" \
+ --radiolist $"Choose an operation:" 13 70 3 \
+ 1 $"Attach a drive containing playable media" off \
+ 2 $"Remove a drive containing playable media" off \
+ 3 $"Exit" on 2> $data
+ sel=$?
+ case $sel in
+ 1) break;;
+ 255) break;;
+ esac
+ case $(cat $data) in
+ 1) attach-music;;
+ 2) remove-music;;
+ 3) break;;
+ esac
+ done
+}
+
+function install_interactive_dlna {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_dlna {
+ echo ''
+}
+
+function upgrade_dlna {
+ echo ''
+}
+
+function configure_firewall_for_dlna {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+
+ firewall_add DLNA 1900 udp
+ firewall_add DLNA 8200 tcp
+ mark_completed $FUNCNAME
+}
+
+function backup_local_dlna {
+ source_directory=/var/cache/minidlna
+ if [ -d $source_directory ]; then
+ dest_directory=dlna
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ fi
+}
+
+function restore_local_dlna {
+ if [ -d /var/cache/minidlna ]; then
+ if [ -d $USB_MOUNT_DLNA/backup/dlna ]; then
+ echo $"Restoring DLNA cache"
+ temp_restore_dir=/root/tempdlna
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir dlna
+ cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 982572
+ fi
+ rm -rf $temp_restore_dir
+ fi
+ fi
+}
+
+function backup_remote_dlna {
+ if [ -d /var/cache/minidlna ]; then
+ backup_directory_to_friend /var/cache/minidlna dlna
+ fi
+}
+
+function restore_remote_dlna {
+ if [ -d /var/cache/minidlna ]; then
+ if [ -d $SERVER_DIRECTORY/backup/dlna ]; then
+ temp_restore_dir=/root/tempdlna
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir dlna
+ cp -r $temp_restore_dir/var/cache/minidlna/* /var/cache/minidlna/
+ if [ ! "$?" = "0" ]; then
+ exit 982
+ fi
+ rm -rf $temp_restore_dir
+ fi
+ fi
+}
+
+function remove_dlna {
+ systemctl stop minidlna
+ apt-get -yq remove --purge minidlna
+ if [ -f /etc/minidlna.conf ]; then
+ rm /etc/minidlna.conf
+ fi
+ rm /usr/bin/attach-music
+ rm /usr/bin/remove-music
+ remove_completion_param install_dlna
+ firewall_remove 1900 udp
+ firewall_remove 8200 tcp
+}
+
+function install_dlna_main {
+ if [[ $(app_is_installed dlna_main) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install minidlna
+
+ if [ ! -f /etc/minidlna.conf ]; then
+ echo $"ERROR: minidlna does not appear to have installed. $CHECK_MESSAGE"
+ exit 55
+ fi
+
+ if [ ! $USB_MOUNT_DLNA ]; then
+ USB_MOUNT_DLNA=/mnt/dlna
+ fi
+ if [ ${#USB_MOUNT_DLNA} -eq 0 ]; then
+ USB_MOUNT_DLNA=/mnt/dlna
+ fi
+
+ sed -i "s|media_dir=/var/lib/minidlna|media_dir=A,/home/$MY_USERNAME/Music|g" /etc/minidlna.conf
+ if ! grep -q "/home/$MY_USERNAME/Pictures" /etc/minidlna.conf; then
+ echo "media_dir=P,/home/$MY_USERNAME/Pictures" >> /etc/minidlna.conf
+ fi
+ if ! grep -q "/home/$MY_USERNAME/Videos" /etc/minidlna.conf; then
+ echo "media_dir=V,/home/$MY_USERNAME/Videos" >> /etc/minidlna.conf
+ fi
+ if ! grep -q "$USB_MOUNT_DLNA/Music" /etc/minidlna.conf; then
+ echo "media_dir=A,$USB_MOUNT_DLNA/Music" >> /etc/minidlna.conf
+ fi
+ if ! grep -q "$USB_MOUNT_DLNA/Pictures" /etc/minidlna.conf; then
+ echo "media_dir=P,$USB_MOUNT_DLNA/Pictures" >> /etc/minidlna.conf
+ fi
+ if ! grep -q "$USB_MOUNT_DLNA/Videos" /etc/minidlna.conf; then
+ echo "media_dir=V,$USB_MOUNT_DLNA/Videos" >> /etc/minidlna.conf
+ fi
+ sed -i 's/#root_container=./root_container=B/g' /etc/minidlna.conf
+ if [[ $SYSTEM_TYPE != "mesh"* ]]; then
+ if [[ $(config_param_exists WIFI_INTERFACE) == "0" ]]; then
+ sed -i 's/#network_interface=/network_interface=eth0/g' /etc/minidlna.conf
+ else
+ sed -i "s/#network_interface=/network_interface=$WIFI_INTERFACE/g" /etc/minidlna.conf
+ fi
+ else
+ sed -i "s/#network_interface=/network_interface=$WIFI_INTERFACE/g" /etc/minidlna.conf
+ fi
+ sed -i "s/#friendly_name=/friendly_name=\"${PROJECT_NAME} Media\"/g" /etc/minidlna.conf
+ sed -i 's|#db_dir=/var/cache/minidlna|db_dir=/var/cache/minidlna|g' /etc/minidlna.conf
+ sed -i 's/#inotify=yes/inotify=yes/g' /etc/minidlna.conf
+ sed -i 's/#notify_interval=895/notify_interval=300/g' /etc/minidlna.conf
+ sed -i "s|#presentation_url=/|presentation_url=http://localhost:8200|g" /etc/minidlna.conf
+ systemctl reload minidlna
+
+ sed -i 's/fs.inotify.max_user_watches*/fs.inotify.max_user_watches=65536/g' /etc/sysctl.conf
+ if ! grep -q "max_user_watches" $COMPLETION_FILE; then
+ echo 'fs.inotify.max_user_watches=65536' >> /etc/sysctl.conf
+ fi
+ /sbin/sysctl -p -q
+
+ function_check configure_firewall_for_dlna
+ configure_firewall_for_dlna
+ install_completed dlna_main
+}
+
+function script_for_attaching_usb_drive {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ echo '#!/bin/bash' > /usr/bin/attach-music
+ echo "source /usr/local/bin/${PROJECT_NAME}-vars" >> /usr/bin/attach-music
+ echo "UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*" >> /usr/bin/attach-music
+ echo '' >> /usr/bin/attach-music
+ echo 'for f in $UTILS_FILES' >> /usr/bin/attach-music
+ echo 'do' >> /usr/bin/attach-music
+ echo ' source $f' >> /usr/bin/attach-music
+ echo 'done' >> /usr/bin/attach-music
+ echo '' >> /usr/bin/attach-music
+ echo 'USB_DRIVE=/dev/sda1' >> /usr/bin/attach-music
+ echo 'detect_usb_drive' >> /usr/bin/attach-music
+ echo '' >> /usr/bin/attach-music
+ echo 'remove-music' >> /usr/bin/attach-music
+ echo "if [ ! -d $USB_MOUNT_DLNA ]; then" >> /usr/bin/attach-music
+ echo " mkdir $USB_MOUNT_DLNA" >> /usr/bin/attach-music
+ echo 'fi' >> /usr/bin/attach-music
+ echo -n 'mount $USB_DRIVE ' >> /usr/bin/attach-music
+ echo "$USB_MOUNT_DLNA" >> /usr/bin/attach-music
+ echo "chown root:root $USB_MOUNT_DLNA" >> /usr/bin/attach-music
+ echo "chown -R minidlna:minidlna $USB_MOUNT_DLNA/*" >> /usr/bin/attach-music
+ echo 'systemctl restart minidlna' >> /usr/bin/attach-music
+ echo 'minidlnad -R' >> /usr/bin/attach-music
+ echo 'exit 0' >> /usr/bin/attach-music
+ chmod +x /usr/bin/attach-music
+
+ echo '#!/bin/bash' > /usr/bin/remove-music
+ echo "if [ -d $USB_MOUNT_DLNA ]; then" >> /usr/bin/remove-music
+ echo " umount $USB_MOUNT_DLNA" >> /usr/bin/remove-music
+ echo " rm -rf $USB_MOUNT_DLNA" >> /usr/bin/remove-music
+ echo 'fi' >> /usr/bin/remove-music
+ echo 'exit 0' >> /usr/bin/remove-music
+ chmod +x /usr/bin/remove-music
+
+ mark_completed $FUNCNAME
+}
+
+function install_dlna {
+ install_dlna_main
+ script_for_attaching_usb_drive
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-dokuwiki b/src/freedombone-app-dokuwiki
new file mode 100755
index 00000000..e048cabd
--- /dev/null
+++ b/src/freedombone-app-dokuwiki
@@ -0,0 +1,505 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Dokuwiki application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim writer'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+DOKUWIKI_DOMAIN_NAME=
+DOKUWIKI_ADMIN_PASSWORD=
+DOKUWIKI_TITLE="${PROJECT_NAME} Dokuwiki"
+DOKUWIKI_CODE=
+DOKUWIKI_ONION_PORT=8089
+
+dokuwiki_variables=(ONION_ONLY
+ MY_USERNAME
+ DOKUWIKI_TITLE
+ DOKUWIKI_DOMAIN_NAME
+ DOKUWIKI_CODE
+ DDNS_PROVIDER)
+
+function install_interactive_dokuwiki {
+ if [[ $ONION_ONLY != "no" ]]; then
+ DOKUWIKI_TITLE=$'My Dokuwiki'
+ DOKUWIKI_DOMAIN_NAME='dokuwiki.local'
+ write_config_param "DOKUWIKI_TITLE" "$DOKUWIKI_TITLE"
+ write_config_param "DOKUWIKI_DOMAIN_NAME" "$DOKUWIKI_DOMAIN_NAME"
+ else
+ function_check interactive_site_details_with_title
+ interactive_site_details_with_title "dokuwiki" "DOKUWIKI_TITLE" "DOKUWIKI_DOMAIN_NAME" "DOKUWIKI_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function change_password_dokuwiki {
+ curr_username="$1"
+ new_user_password="$2"
+
+ if grep "$curr_username:" /var/lib/dokuwiki/acl/users.auth.php; then
+ HASHED_DOKUWIKI_PASSWORD=$(echo -n "$new_user_password" | md5sum | awk -F ' ' '{print $1}')
+ existing_user=$(cat /var/lib/dokuwiki/acl/users.auth.php | grep "$curr_username:" | hean -n 1)
+ if [[ "$existing_user" == *":admin,"* ]]; then
+ sed -i "s|$curr_username:.*|$curr_username:$HASHED_DOKUWIKI_PASSWORD:$curr_username:$curr_username@$HOSTNAME:admin,user,upload|g" /var/lib/dokuwiki/acl/users.auth.php
+ else
+ sed -i "s|$curr_username:.*|$curr_username:$HASHED_DOKUWIKI_PASSWORD:$curr_username:$curr_username@$HOSTNAME:user,upload|g" /var/lib/dokuwiki/acl/users.auth.php
+ fi
+ chmod 640 /var/lib/dokuwiki/acl/users.auth.php
+ ${PROJECT_NAME}-pass -u $curr_username -a dokuwiki -p "$new_user_password"
+ fi
+}
+
+function add_user_dokuwiki {
+ new_username="$1"
+ new_user_password="$2"
+
+ HASHED_DOKUWIKI_PASSWORD=$(echo -n "$new_user_password" | md5sum | awk -F ' ' '{print $1}')
+ echo "$new_username:$HASHED_DOKUWIKI_PASSWORD:$new_username:$new_username@$HOSTNAME:user,upload" >> /var/lib/dokuwiki/acl/users.auth.php
+ chmod 640 /var/lib/dokuwiki/acl/users.auth.php
+ ${PROJECT_NAME}-pass -u "$new_username" -a dokuwiki -p "$new_user_password"
+}
+
+function remove_user_dokuwiki {
+ remove_username="$1"
+
+ if grep "$remove_username:" /var/lib/dokuwiki/acl/users.auth.php; then
+ sed -i "/$remove_username:/d" /var/lib/dokuwiki/acl/users.auth.php
+ ${PROJECT_NAME}-pass -u "$remove_username" --rmapp dokuwiki
+ fi
+}
+
+function reconfigure_dokuwiki {
+ echo -n ''
+}
+
+function upgrade_dokuwiki {
+ echo -n ''
+}
+
+function backup_local_dokuwiki {
+ source_directory=/var/lib/dokuwiki
+ if [ -d $source_directory ]; then
+ dest_directory=dokuwiki
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ backup_directory_to_usb /etc/dokuwiki dokuwiki2
+ fi
+}
+
+function restore_local_dokuwiki {
+ if [ -d /var/lib/dokuwiki ]; then
+ echo $"Restoring Dokuwiki installation"
+ function_check get_completion_param
+ DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
+ temp_restore_dir=/root/tempdokuwiki
+ function_check restore_directory_from_usb
+ if [ -d ${USB_MOUNT}/backup/dokuwiki ]; then
+ restore_directory_from_usb ${temp_restore_dir} dokuwiki
+ else
+ restore_directory_from_usb ${temp_restore_dir} wiki
+ fi
+ cp -r ${temp_restore_dir}/var/lib/dokuwiki/* /var/lib/dokuwiki/
+ if [ ! "$?" = "0" ]; then
+ function_check restore_directory_from_usb
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 868
+ fi
+ if [ -d ${USB_MOUNT}/backup/wiki2 ]; then
+ restore_directory_from_usb ${temp_restore_dir}2 wiki2
+ else
+ restore_directory_from_usb ${temp_restore_dir}2 dokuwiki2
+ fi
+ cp -r ${temp_restore_dir}2/etc/dokuwiki/* /etc/dokuwiki/
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 869
+ fi
+ rm -rf ${temp_restore_dir}
+ rm -rf ${temp_restore_dir}2
+ #rm -rf /var/lib/dokuwiki/data/cache/*
+ #rm -rf /var/lib/dokuwiki/data/meta/*
+ chmod -R 755 /var/lib/dokuwiki/data
+ chown -R www-data:www-data /var/lib/dokuwiki/data
+ chown -R www-data:www-data /var/lib/dokuwiki/*
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${DOKUWIKI_DOMAIN_NAME}.crt|${DOKUWIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${DOKUWIKI_DOMAIN_NAME}
+ fi
+ if [ -d /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${DOKUWIKI_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.pem
+ fi
+ echo $"Restore of Dokuwiki complete"
+ fi
+}
+
+function backup_remote_dokuwiki {
+ if [ -d /etc/dokuwiki ]; then
+ echo $"Backing up dokuwiki"
+ backup_directory_to_friend /var/lib/dokuwiki dokuwiki
+ backup_directory_to_friend /etc/dokuwiki dokuwiki2
+ fi
+}
+
+function restore_remote_dokuwiki {
+ if [ -d $SERVER_DIRECTORY/backup/dokuwiki ]; then
+ function_check get_completion_param
+ DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
+ echo $"Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME"
+ function_check restore_directory_from_friend
+ restore_directory_from_friend /root/tempdokuwiki dokuwiki
+ cp -r /root/tempdokuwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
+ if [ ! "$?" = "0" ]; then
+ exit 868
+ fi
+ restore_directory_from_friend /root/tempdokuwiki2 dokuwiki2
+ cp -r /root/tempdokuwiki2/etc/dokuwiki/* /etc/dokuwiki/
+ if [ ! "$?" = "0" ]; then
+ exit 869
+ fi
+ rm -rf /root/tempdokuwiki
+ rm -rf /root/tempdokuwiki2
+ #rm -rf /var/lib/dokuwiki/data/cache/*
+ #rm -rf /var/lib/dokuwiki/data/meta/*
+ chmod -R 755 /var/lib/dokuwiki/data
+ chown -R www-data:www-data /var/lib/dokuwiki/data
+ chown -R www-data:www-data /var/lib/dokuwiki/*
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${DOKUWIKI_DOMAIN_NAME}.crt|${DOKUWIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${DOKUWIKI_DOMAIN_NAME}
+ fi
+ if [ -d /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${DOKUWIKI_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${DOKUWIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${DOKUWIKI_DOMAIN_NAME}.pem
+ fi
+ echo $"Restore of Dokuwiki complete"
+ fi
+}
+
+function remove_dokuwiki {
+ if [ ${#DOKUWIKI_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+ function_check remove_onion_service
+ remove_onion_service dokuwiki ${DOKUWIKI_ONION_PORT}
+ nginx_dissite $DOKUWIKI_DOMAIN_NAME
+ remove_certs $DOKUWIKI_DOMAIN_NAME
+ if [ -f /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME ]; then
+ rm /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ fi
+ apt-get -yq remove --purge dokuwiki
+ if [ ! -d /var/www/$DOKUWIKI_DOMAIN_NAME ]; then
+ rm -rf /var/www/$DOKUWIKI_DOMAIN_NAME
+ fi
+ if [ -d /var/lib/dokuwiki ]; then
+ rm -rf /var/lib/dokuwiki
+ fi
+ if [ -d /etc/dokuwiki ]; then
+ rm -rf /etc/dokuwiki
+ fi
+ if [ -d /usr/share/dokuwiki ]; then
+ rm -rf /usr/share/dokuwiki
+ fi
+ remove_completion_param "install_dokuwiki"
+ remove_completion_param "dokuwiki domain"
+ sed -i '/dokuwiki/d' $COMPLETION_FILE
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $DOKUWIKI_DOMAIN_NAME
+}
+
+function install_dokuwiki {
+ if [ ! $DOKUWIKI_DOMAIN_NAME ]; then
+ return
+ fi
+ apt-get -yq install dokuwiki
+ apt-get -yq remove --purge apache*
+ if [ -d /etc/apache2 ]; then
+ rm -rf /etc/apache2
+ echo $'Removed Apache installation after Dokuwiki install'
+ fi
+
+ if [ ! -d /var/www/$DOKUWIKI_DOMAIN_NAME ]; then
+ mkdir /var/www/$DOKUWIKI_DOMAIN_NAME
+ fi
+ if [ -d /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs ]; then
+ rm -rf /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs
+ fi
+
+ ln -s /usr/share/dokuwiki /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs
+
+ if [ ! -d /var/lib/dokuwiki/custom ]; then
+ mkdir /var/lib/dokuwiki/custom
+ fi
+ cp /etc/dokuwiki/local.php.dist /var/lib/dokuwiki/custom/local.php
+ if [ ! -f /etc/dokuwiki/local.php ]; then
+ ln -s /var/lib/dokuwiki/custom/local.php /etc/dokuwiki/local.php
+ fi
+
+ chown www-data /var/lib/dokuwiki/custom
+ chown www-data /var/lib/dokuwiki/custom/local.php
+ chown -R www-data /etc/dokuwiki
+ chown -R www-data /usr/share/dokuwiki/lib/
+ chmod 600 /var/lib/dokuwiki/custom/local.php
+ chmod -R 755 /usr/share/dokuwiki/lib
+
+ sed -i 's|//$conf|$conf|g' /var/lib/dokuwiki/custom/local.php
+ sed -i "s|joe|$MY_USERNAME|g" /var/lib/dokuwiki/custom/local.php
+
+ sed -i "s|Debian Dokuwiki|$DOKUWIKI_TITLE|g" /etc/dokuwiki/local.php
+ sed -i "s|Debian DokuWiki|$DOKUWIKI_TITLE|g" /etc/dokuwiki/local.php
+
+ # set the admin user
+ sed -i "s/@admin/$MY_USERNAME/g" /etc/dokuwiki/local.php
+
+ # disallow registration of new users
+ if ! grep -q "disableactions" /etc/dokuwiki/local.php; then
+ echo "\$conf['disableactions'] = 'register';" >> /etc/dokuwiki/local.php
+ fi
+ if ! grep -q "disableactions" /var/lib/dokuwiki/custom/local.php; then
+ echo "\$conf['disableactions'] = 'register';" >> /var/lib/dokuwiki/custom/local.php
+ fi
+
+ if ! grep -q "authtype" /var/lib/dokuwiki/custom/local.php; then
+ echo "\$conf['authtype'] = 'authplain';" >> /var/lib/dokuwiki/custom/local.php
+ fi
+ if ! grep -q "authtype" /etc/dokuwiki/local.php; then
+ echo "\$conf['authtype'] = 'authplain';" >> /etc/dokuwiki/local.php
+ fi
+
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ DOKUWIKI_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $DOKUWIKI_ADMIN_PASSWORD ]; then
+ DOKUWIKI_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ HASHED_DOKUWIKI_PASSWORD=$(echo -n "$DOKUWIKI_ADMIN_PASSWORD" | md5sum | awk -F ' ' '{print $1}')
+ echo -n "$MY_USERNAME:$HASHED_DOKUWIKI_PASSWORD:$MY_NAME:$MY_EMAIL:admin,user,upload" > /var/lib/dokuwiki/acl/users.auth.php
+ chmod 640 /var/lib/dokuwiki/acl/users.auth.php
+
+ if ! grep -q "video/ogg" /etc/dokuwiki/mime.conf; then
+ echo 'ogv video/ogg' >> /etc/dokuwiki/mime.conf
+ fi
+ if ! grep -q "video/mp4" /etc/dokuwiki/mime.conf; then
+ echo 'mp4 video/mp4' >> /etc/dokuwiki/mime.conf
+ fi
+ if ! grep -q "video/webm" /etc/dokuwiki/mime.conf; then
+ echo 'webm video/webm' >> /etc/dokuwiki/mime.conf
+ fi
+
+ DOKUWIKI_ONION_HOSTNAME=$(add_onion_service dokuwiki 80 ${DOKUWIKI_ONION_PORT})
+ set_completion_param "dokuwiki domain" "${DOKUWIKI_DOMAIN_NAME}"
+
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect $DOKUWIKI_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' listen [::]:443 ssl;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " root /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " server_name $DOKUWIKI_DOMAIN_NAME;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ function_check nginx_ssl
+ nginx_ssl $DOKUWIKI_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $DOKUWIKI_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $DOKUWIKI_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ nginx_keybase $DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $DOKUWIKI_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ else
+ echo -n '' > /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ fi
+ echo 'server {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " listen 127.0.0.1:${DOKUWIKI_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " root /var/www/$DOKUWIKI_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " server_name $DOKUWIKI_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $DOKUWIKI_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $DOKUWIKI_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ nginx_keybase $DOKUWIKI_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $DOKUWIKI_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$DOKUWIKI_DOMAIN_NAME
+
+ function_check create_site_certificate
+ create_site_certificate $DOKUWIKI_DOMAIN_NAME
+
+ function_check configure_php
+ configure_php
+
+ nginx_ensite $DOKUWIKI_DOMAIN_NAME
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ function_check add_ddns_domain
+ add_ddns_domain $DOKUWIKI_DOMAIN_NAME
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a dokuwiki -p "$DOKUWIKI_ADMIN_PASSWORD"
+
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-emacs b/src/freedombone-app-emacs
new file mode 100755
index 00000000..8f488eeb
--- /dev/null
+++ b/src/freedombone-app-emacs
@@ -0,0 +1,292 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Emacs application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full'
+
+IN_DEFAULT_INSTALL=1
+SHOW_ON_ABOUT=0
+
+emacs_variables=(USB_MOUNT
+ MY_USERNAME)
+
+function reconfigure_emacs {
+ echo -n ''
+}
+
+function upgrade_emacs {
+ echo -n ''
+}
+
+function backup_local_emacs {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /home/$USERNAME/.emacs.d ]; then
+ echo $"Backing up Emacs config for $USERNAME"
+ if [ -f /home/$USERNAME/.emacs ]; then
+ cp /home/$USERNAME/.emacs /home/$USERNAME/.emacs.d/dotemacs
+ fi
+ function_check backup_directory_to_usb
+ backup_directory_to_usb /home/$USERNAME/.emacs.d emacs/$USERNAME
+ fi
+ fi
+ done
+}
+
+function restore_local_emacs {
+ temp_restore_dir=/root/tempemacs
+ if [ -d $USB_MOUNT/backup/emacs ]; then
+ for d in $USB_MOUNT/backup/emacs/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ ! -d /home/$USERNAME ]; then
+ ${PROJECT_NAME}-adduser $USERNAME
+ fi
+ echo $"Restoring Emacs config for $USERNAME"
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir emacs/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 664
+ fi
+ cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
+ rm -rf $temp_restore_dir
+ fi
+ done
+ fi
+}
+
+function backup_remote_emacs {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /home/$USERNAME/.emacs.d ]; then
+ echo $"Backing up Emacs config for $USERNAME"
+ if [ -f /home/$USERNAME/.emacs ]; then
+ cp /home/$USERNAME/.emacs /home/$USERNAME/.emacs.d/dotemacs
+ fi
+ function_check backup_directory_to_friend
+ backup_directory_to_friend /home/$USERNAME/.emacs.d emacs/$USERNAME
+ fi
+ fi
+ done
+}
+
+function restore_remote_emacs {
+ temp_restore_dir=/root/tempemacs
+ if [ -d $USB_MOUNT/backup/emacs ]; then
+ for d in $USB_MOUNT/backup/emacs/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ ! -d /home/$USERNAME ]; then
+ ${PROJECT_NAME}-adduser $USERNAME
+ fi
+ echo $"Restoring Emacs config for $USERNAME"
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir emacs/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.emacs.d /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 664
+ fi
+ cp -f $temp_restore_dir/home/$USERNAME/.emacs.d/dotemacs /home/$USERNAME/.emacs
+ rm -rf $temp_restore_dir
+ fi
+ done
+ fi
+}
+
+function remove_emacs {
+ apt-get -yq remove --purge emacs24
+ update-alternatives --set editor /usr/bin/nano
+ sed -i '/install_emacs/d' $COMPLETION_FILE
+
+ # remove emacs as the mutt email editor
+ if [ -f /etc/Muttrc ]; then
+ if grep -q "set editor=" /etc/Muttrc; then
+ sed -i '/set editor=/d' /etc/Muttrc
+ fi
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -f /home/$USERNAME/.muttrc ]; then
+ if grep -q "set editor=" /home/$USERNAME/.muttrc; then
+ sed -i '/set editor=/d' /home/$USERNAME/.muttrc
+ fi
+ fi
+ fi
+ done
+ fi
+}
+
+function install_emacs {
+ apt-get -yq install emacs24
+ update-alternatives --set editor /usr/bin/emacs24
+
+ # A minimal emacs configuration
+ #echo -n "(add-to-list 'load-path " > /home/$MY_USERNAME/.emacs
+ #echo '"~/.emacs.d/")' >> /home/$MY_USERNAME/.emacs
+ #echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Remove trailing whitepace ======================================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo ";;(add-hook 'before-save-hook 'delete-trailing-whitespace)" >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo ';; Goto a line number with CTRL-l' >> /home/$MY_USERNAME/.emacs
+ echo -n '(global-set-key "\C-l" ' >> /home/$MY_USERNAME/.emacs
+ echo "'goto-line)" >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Show line numbers ==============================================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo "(add-hook 'find-file-hook (lambda () (linum-mode 1)))" >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Enable line wrapping in org-mode ===============================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo " (add-hook 'org-mode-hook" >> /home/$MY_USERNAME/.emacs
+ echo " '(lambda ()" >> /home/$MY_USERNAME/.emacs
+ echo " (visual-line-mode 1)))" >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Enable shift select in org mode ================================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(setq org-support-shift-select t)' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Set standard indent to 4 rather that 4 =========================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(setq standard-indent 4)' >> /home/$MY_USERNAME/.emacs
+ echo '(setq-default tab-width 4)' >> /home/$MY_USERNAME/.emacs
+ echo '(setq c-basic-offset 4)' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Support Wheel Mouse Scrolling ==================================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(mouse-wheel-mode t)' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Place Backup Files in Specific Directory =======================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(setq make-backup-files t)' >> /home/$MY_USERNAME/.emacs
+ echo '(setq version-control t)' >> /home/$MY_USERNAME/.emacs
+ echo '(setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Make Text mode the default mode for new buffers ================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo "(setq default-major-mode 'text-mode)" >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Line length ====================================================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(setq-default fill-column 72)' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Enable Line and Column Numbering ===============================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(line-number-mode 1)' >> /home/$MY_USERNAME/.emacs
+ echo '(column-number-mode 1)' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Turn on Auto Fill mode automatically in all modes ==============' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo ';; Auto-fill-mode the the automatic wrapping of lines and insertion of' >> /home/$MY_USERNAME/.emacs
+ echo ';; newlines when the cursor goes over the column limit.' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo ';; This should actually turn on auto-fill-mode by default in all major' >> /home/$MY_USERNAME/.emacs
+ echo ';; modes. The other way to do this is to turn on the fill for specific modes' >> /home/$MY_USERNAME/.emacs
+ echo ';; via hooks.' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo '(setq auto-fill-mode 1)' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo $';; ===== Enable GPG encryption =========================================' >> /home/$MY_USERNAME/.emacs
+ echo '' >> /home/$MY_USERNAME/.emacs
+ echo "(require 'epa)" >> /home/$MY_USERNAME/.emacs
+ echo '(epa-file-enable)' >> /home/$MY_USERNAME/.emacs
+ cp /home/$MY_USERNAME/.emacs /root/.emacs
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs
+
+ # add a mutt entry to use emacs to compose emails
+ if [ -f /etc/Muttrc ]; then
+ if ! grep -q "set editor=" /etc/Muttrc; then
+ echo 'set editor="emacs -q --load ~/.emacs-mutt"' >> /etc/Muttrc
+ else
+ sed -i 's|set editor=.*|set editor="emacs -q --load ~/.emacs-mutt"|g' /etc/Muttrc
+ fi
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -f /home/$USERNAME/.muttrc ]; then
+ if ! grep -q "set editor=" /home/$USERNAME/.muttrc; then
+ echo 'set editor="emacs -q --load ~/.emacs-mutt"' >> /home/$USERNAME/.muttrc
+ else
+ sed -i 's|set editor=.*|set editor="emacs -q --load ~/.emacs-mutt"|g' /home/$USERNAME/.muttrc
+ fi
+ fi
+
+ # create an Emacs configuration specifically for use with Mutt, which
+ # has word wrap and spell checking on by default
+ if [ ! -f /home/$USERNAME/.emacs-mutt ]; then
+ echo "(add-hook 'before-save-hook 'delete-trailing-whitespace)" > /home/$USERNAME/.emacs-mutt
+ echo '(setq org-support-shift-select t)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq standard-indent 4)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq-default tab-width 4)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq c-basic-offset 4)' >> /home/$USERNAME/.emacs-mutt
+ echo '(mouse-wheel-mode t)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq make-backup-files t)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq version-control t)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))' >> /home/$USERNAME/.emacs-mutt
+ echo "(setq default-major-mode 'text-mode)" >> /home/$USERNAME/.emacs-mutt
+ echo "(dolist (hook '(text-mode-hook))" >> /home/$USERNAME/.emacs-mutt
+ echo ' (add-hook hook (lambda () (flyspell-mode 1))))' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq-default fill-column 72)' >> /home/$USERNAME/.emacs-mutt
+ echo '(setq auto-fill-mode 0)' >> /home/$USERNAME/.emacs-mutt
+ echo "(add-hook 'text-mode-hook 'turn-on-auto-fill)" >> /home/$USERNAME/.emacs-mutt
+ echo "(setq-default auto-fill-function 'do-auto-fill)" >> /home/$USERNAME/.emacs-mutt
+ chown $USERNAME:$USERNAME /home/$USERNAME/.emacs-mutt
+
+ # add the emacs mutt configuration to the user profile skeleton
+ if [ ! -f /etc/skel/.emacs-mutt ]; then
+ cp /home/$USERNAME/.emacs-mutt /etc/skel/.emacs-mutt
+ chown root:root /etc/skel/.emacs-mutt
+ fi
+ fi
+
+ fi
+ done
+ fi
+
+ APP_INSTALLED=1
+}
+
+function install_interactive_emacs {
+ install_emacs
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-etherpad b/src/freedombone-app-etherpad
new file mode 100755
index 00000000..7fbb8100
--- /dev/null
+++ b/src/freedombone-app-etherpad
@@ -0,0 +1,622 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Etherpad app
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS="full full-vim writer"
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+ETHERPAD_DOMAIN_NAME=
+ETHERPAD_CODE=
+ETHERPAD_ONION_PORT=8101
+ETHERPAD_PORT=9001
+ETHERPAD_REPO="https://github.com/ether/etherpad-lite"
+ETHERPAD_COMMIT='223127bf39d2ba431d9c1965a7f2aadadc73d77a'
+ETHERPAD_ADMIN_PASSWORD=
+ETHERPAD_TITLE=$'Freedombone Docs'
+ETHERPAD_WELCOME_MESSAGE=$"Welcome to ${ETHERPAD_TITLE}!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!"
+
+etherpad_variables=(ETHERPAD_COMMIT
+ ONION_ONLY
+ DEFAULT_DOMAIN_NAME
+ ETHERPAD_DOMAIN_NAME
+ ETHERPAD_CODE
+ ETHERPAD_TITLE
+ ETHERPAD_WELCOME_MESSAGE
+ DDNS_PROVIDER
+ MY_USERNAME)
+
+function etherpad_password_hash {
+ echo $(python -c "from passlib.hash import bcrypt;print(bcrypt.encrypt(\"$1\", rounds=10))")
+}
+
+function change_password_etherpad {
+ change_username="$1"
+ new_user_password=$(etherpad_password_hash "$2")
+
+ read_config_param ETHERPAD_DOMAIN_NAME
+
+ if grep "\"$change_username\": {" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json; then
+ user_line=$(cat /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json | grep "\"$change_username\": {")
+ if [[ "$user_line" == *"\"is_admin\": true"* ]]; then
+ sed -i "s|\"$change_username\": {.*|\"$change_username\": { \"hash\": \"$new_user_password\", \"is_admin\": true }|g" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json
+ else
+ sed -i "s|\"$change_username\": {.*|\"$change_username\": { \"hash\": \"$new_user_password\", \"is_admin\": false },|g" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json
+ fi
+ ${PROJECT_NAME}-pass -u $change_username -a etherpad -p "$2"
+ systemctl restart etherpad
+ fi
+}
+
+function etherpad_create_database {
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ ETHERPAD_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $ETHERPAD_ADMIN_PASSWORD ]; then
+ ETHERPAD_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $ETHERPAD_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database etherpad "$ETHERPAD_ADMIN_PASSWORD" $MY_USERNAME
+}
+
+function create_etherpad_settings {
+ settings_file=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json
+ echo '{' > $settings_file
+ echo " \"title\": \"${ETHERPAD_TITLE}\"," >> $settings_file
+ echo ' "favicon": "favicon.ico",' >> $settings_file
+
+ echo ' "ip": "0.0.0.0",' >> $settings_file
+ echo " \"port\" : ${ETHERPAD_PORT}," >> $settings_file
+
+ echo ' "showSettingsInAdminPage" : true,' >> $settings_file
+
+ if [[ $ONION_ONLY == 'no' ]]; then
+ echo ' "ssl" : {' >> $settings_file
+ echo " \"key\" : \"/etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key\"," >> $settings_file
+ echo " \"cert\" : \"/etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem\"," >> $settings_file
+ echo ' },' >> $settings_file
+ fi
+
+ echo ' "dbType" : "mysql",' >> $settings_file
+ echo ' "dbSettings" : {' >> $settings_file
+ echo ' "user" : "root",' >> $settings_file
+ echo ' "host" : "localhost",' >> $settings_file
+ echo " \"password\": \"${MARIADB_PASSWORD}\"," >> $settings_file
+ echo ' "database": "etherpad",' >> $settings_file
+ echo ' "charset" : "utf8mb4"' >> $settings_file
+ echo ' },' >> $settings_file
+
+ echo " \"defaultPadText\" : \"${ETHERPAD_WELCOME_MESSAGE}\"," >> $settings_file
+
+ echo ' "padOptions": {' >> $settings_file
+ echo ' "noColors": false,' >> $settings_file
+ echo ' "showControls": true,' >> $settings_file
+ echo ' "showChat": true,' >> $settings_file
+ echo ' "showLineNumbers": false,' >> $settings_file
+ echo ' "useMonospaceFont": false,' >> $settings_file
+ echo ' "userName": false,' >> $settings_file
+ echo ' "userColor": true,' >> $settings_file
+ echo ' "rtl": false,' >> $settings_file
+ echo ' "alwaysShowChat": true,' >> $settings_file
+ echo ' "chatAndUsers": true,' >> $settings_file
+ echo ' "lang": "en-gb"' >> $settings_file
+ echo ' },' >> $settings_file
+
+ echo ' "suppressErrorsInPadText" : true,' >> $settings_file
+ echo ' "requireSession" : false,' >> $settings_file
+ echo ' "editOnly" : false,' >> $settings_file
+ echo ' "sessionNoPassword" : false,' >> $settings_file
+ echo ' "minify" : true,' >> $settings_file
+ echo ' "maxAge" : 21600, // 60 * 60 * 6 = 6 hours' >> $settings_file
+ echo ' "abiword" : null,' >> $settings_file
+ echo ' "soffice" : null,' >> $settings_file
+ echo ' "tidyHtml" : null,' >> $settings_file
+ echo ' "allowUnknownFileEnds" : false,' >> $settings_file
+ echo ' "requireAuthentication" : true,' >> $settings_file
+ echo ' "requireAuthorization" : true,' >> $settings_file
+ echo ' "trustProxy" : false,' >> $settings_file
+ echo ' "disableIPlogging" : true,' >> $settings_file
+
+ echo ' "users": {' >> $settings_file
+ echo " \"${MY_USERNAME}\": { \"hash\": \"$(etherpad_password_hash "${ETHERPAD_ADMIN_PASSWORD}")\", \"is_admin\": true }" >> $settings_file
+ echo ' },' >> $settings_file
+
+ echo ' "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],' >> $settings_file
+ echo ' "loadTest": false,' >> $settings_file
+ echo ' "indentationOnNewLine": false,' >> $settings_file
+
+ echo ' "toolbar": {' >> $settings_file
+ echo ' "left": [' >> $settings_file
+ echo ' ["bold", "italic", "underline", "strikethrough"],' >> $settings_file
+ echo ' ["orderedlist", "unorderedlist", "indent", "outdent"],' >> $settings_file
+ echo ' ["undo", "redo"],' >> $settings_file
+ echo ' ["clearauthorship"]' >> $settings_file
+ echo ' ],' >> $settings_file
+ echo ' "right": [' >> $settings_file
+ echo ' ["importexport", "timeslider", "savedrevision"],' >> $settings_file
+ echo ' ["settings", "embed"],' >> $settings_file
+ echo ' ["showusers"]' >> $settings_file
+ echo ' ],' >> $settings_file
+ echo ' "timeslider": [' >> $settings_file
+ echo ' ["timeslider_export", "timeslider_returnToPad"]' >> $settings_file
+ echo ' ]' >> $settings_file
+ echo ' },' >> $settings_file
+ echo ' "loglevel": "INFO"' >> $settings_file
+ echo '}' >> $settings_file
+ chmod 600 $settings_file
+}
+
+function remove_user_etherpad {
+ remove_username="$1"
+ settings_file=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp etherpad
+
+ if grep -q "\"$remove_username\": {" $settings_file; then
+ sed -i "/\"$remove_username\": {/d" $settings_file
+ systemctl restart etherpad
+ fi
+}
+
+function add_user_etherpad {
+ new_username="$1"
+ new_user_password=$(etherpad_password_hash "$2")
+ settings_file=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json
+
+ if ! grep -q "\"$new_username\": {" $settings_file; then
+ ${PROJECT_NAME}-pass -u $new_username -a etherpad -p "$2"
+ sed -i "/\"users\": {/a \"$new_username\": { \"hash\": \"$new_user_password\", \"is_admin\": false }," $settings_file
+ if grep -q "\"$new_username\": {" $settings_file; then
+ systemctl restart etherpad
+ else
+ echo '1'
+ return
+ fi
+ fi
+ echo '0'
+}
+
+function install_interactive_etherpad {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ ETHERPAD_DOMAIN_NAME='etherpad.local'
+ write_config_param "ETHERPAD_DOMAIN_NAME" "$ETHERPAD_DOMAIN_NAME"
+ else
+ function_check interactive_site_details
+ interactive_site_details "etherpad" "ETHERPAD_DOMAIN_NAME" "ETHERPAD_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function etherpad_set_title {
+ read_config_param "ETHERPAD_TITLE"
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Etherpad Title" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $'Set a title for your etherpad system' 10 60 "$ETHERPAD_TITLE" 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ temp_title=$(<$data)
+ if [ ${#temp_title} -gt 0 ]; then
+ ETHERPAD_TITLE="$temp_title"
+ settings_file=/var/www/$ETHERPAD_DOMAIN_NAME/htdocs/settings.json
+
+ write_config_param "ETHERPAD_TITLE" "$ETHERPAD_TITLE"
+ sed -i "s|\"title\":.*|\"title\": \"${ETHERPAD_TITLE}\"|g" $settings_file
+
+ dialog --title $"Etherpad Title" \
+ --msgbox $"Title has been set" 6 60
+ fi
+ ;;
+ esac
+}
+
+function etherpad_set_welcome_message {
+ read_config_param "ETHERPAD_WELCOME_MESSAGE"
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Etherpad Welcome Message" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $'Set a welcome message, which can include html formatting' 10 60 "$ETHERPAD_WELCOME_MESSAGE" 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ temp_welcome=$(<$data)
+ if [ ${#temp_welcome} -gt 0 ]; then
+ ETHERPAD_WELCOME_MESSAGE="$temp_welcome"
+ settings_file=/var/www/$ETHERPAD_DOMAIN_NAME/htdocs/settings.json
+
+ write_config_param "ETHERPAD_WELCOME_MESSAGE" "$ETHERPAD_WELCOME_MESSAGE"
+ sed -i "s|\"defaultPadText\" :.*|\"defaultPadText\" : \"${ETHERPAD_WELCOME_MESSAGE}\"|g" $settings_file
+
+ dialog --title $"Etherpad Welcome Message" \
+ --msgbox $"Welcome message has been set" 6 60
+ fi
+ ;;
+ esac
+}
+
+function configure_interactive_etherpad {
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"Etherpad Settings" \
+ --radiolist $"Choose an operation:" 12 70 3 \
+ 1 $"Set Title" off \
+ 2 $"Set a welcome message" off \
+ 3 $"Exit" on 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ case $(cat $data) in
+ 1) etherpad_set_title;;
+ 2) etherpad_set_welcome_message;;
+ 3) break;;
+ esac
+ done
+}
+
+function reconfigure_etherpad {
+ create_etherpad_settings
+ systemctl restart etherpad
+}
+
+function upgrade_etherpad {
+ read_config_param "ETHERPAD_DOMAIN_NAME"
+
+ function_check set_repo_commit
+ set_repo_commit /var/www/$ETHERPAD_DOMAIN_NAME/htdocs "etherpad commit" "$ETHERPAD_COMMIT" $ETHERPAD_REPO
+}
+
+function backup_local_etherpad {
+ ETHERPAD_DOMAIN_NAME='etherpad'
+ if grep -q "etherpad domain" $COMPLETION_FILE; then
+ ETHERPAD_DOMAIN_NAME=$(get_completion_param "etherpad domain")
+ fi
+
+ source_directory=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs
+ if [ -d $source_directory ]; then
+ dest_directory=etherpad
+ function_check suspend_site
+ suspend_site ${ETHERPAD_DOMAIN_NAME}
+
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+
+ function_check backup_database_to_usb
+ backup_database_to_usb etherpad
+
+ function_check restart_site
+ restart_site
+ fi
+}
+
+function restore_local_etherpad {
+ if ! grep -q "etherpad domain" $COMPLETION_FILE; then
+ return
+ fi
+ ETHERPAD_DOMAIN_NAME=$(get_completion_param "etherpad domain")
+ if [ $ETHERPAD_DOMAIN_NAME ]; then
+ temp_restore_dir=/root/tempetherpad
+ etherpad_dir=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs
+
+ function_check etherpad_create_database
+ etherpad_create_database
+
+ restore_database etherpad ${ETHERPAD_DOMAIN_NAME}
+ if [ -d $temp_restore_dir ]; then
+ rm -rf $temp_restore_dir
+ fi
+
+ chown -R etherpad: /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs
+ if [ -f /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem ]; then
+ chown etherpad: /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem
+ fi
+ if [ -f /etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key ]; then
+ chown etherpad: /etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key
+ fi
+ fi
+}
+
+function backup_remote_etherpad {
+ if grep -q "etherpad domain" $COMPLETION_FILE; then
+ ETHERPAD_DOMAIN_NAME=$(get_completion_param "etherpad domain")
+ temp_backup_dir=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ function_check suspend_site
+ suspend_site ${ETHERPAD_DOMAIN_NAME}
+
+ function_check backup_database_to_friend
+ backup_database_to_friend etherpad
+
+ function_check backup_directory_to_friend
+ backup_directory_to_friend $temp_backup_dir etherpad
+
+ function_check restart_site
+ restart_site
+ else
+ echo $"etherpad domain specified but not found in ${temp_backup_dir}"
+ fi
+ fi
+}
+
+function restore_remote_etherpad {
+ if grep -q "etherpad domain" $COMPLETION_FILE; then
+ ETHERPAD_DOMAIN_NAME=$(get_completion_param "etherpad domain")
+
+ function_check etherpad_create_database
+ etherpad_create_database
+
+ function_check restore_database_from_friend
+ restore_database_from_friend etherpad ${ETHERPAD_DOMAIN_NAME}
+ if [ -d /root/tempetherpad ]; then
+ rm -rf /root/tempetherpad
+ fi
+
+ chown -R etherpad: /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs
+ if [ -f /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem ]; then
+ chown etherpad: /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem
+ fi
+ if [ -f /etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key ]; then
+ chown etherpad: /etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key
+ fi
+ fi
+}
+
+function remove_etherpad {
+ if [ ${#ETHERPAD_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+ read_config_param "ETHERPAD_DOMAIN_NAME"
+ read_config_param "MY_USERNAME"
+ echo "Removing $ETHERPAD_DOMAIN_NAME"
+ if [ -f /etc/systemd/system/etherpad.service ]; then
+ systemctl stop etherpad
+ systemctl disable etherpad
+ rm /etc/systemd/system/etherpad.service
+ fi
+ nginx_dissite $ETHERPAD_DOMAIN_NAME
+ remove_certs $ETHERPAD_DOMAIN_NAME
+ if [ -d /var/www/$ETHERPAD_DOMAIN_NAME ]; then
+ rm -rf /var/www/$ETHERPAD_DOMAIN_NAME
+ fi
+ if [ -f /etc/nginx/sites-available/$ETHERPAD_DOMAIN_NAME ]; then
+ rm /etc/nginx/sites-available/$ETHERPAD_DOMAIN_NAME
+ fi
+ function_check drop_database
+ drop_database etherpad
+ function_check remove_onion_service
+ remove_onion_service etherpad ${ETHERPAD_ONION_PORT}
+ remove_app etherpad
+ remove_completion_param install_etherpad
+ sed -i '/etherpad/d' $COMPLETION_FILE
+ remove_backup_database_local etherpad
+ deluser --remove-all-files etherpad
+ remove_nodejs etherpad
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $ETHERPAD_DOMAIN_NAME
+}
+
+function install_etherpad {
+ if [ ! $ETHERPAD_DOMAIN_NAME ]; then
+ echo $'No domain name was given for etherpad'
+ exit 7359
+ fi
+
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ ETHERPAD_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $ETHERPAD_ADMIN_PASSWORD ]; then
+ ETHERPAD_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check repair_databases_script
+ repair_databases_script
+
+ apt-get -yq install gzip git curl python libssl-dev pkg-config \
+ build-essential python g++ make checkinstall \
+ python-bcrypt python-passlib
+
+ function_check install_nodejs
+ install_nodejs etherpad
+
+ if [ ! -d /var/www/$ETHERPAD_DOMAIN_NAME ]; then
+ mkdir /var/www/$ETHERPAD_DOMAIN_NAME
+ fi
+ if [ ! -d /var/www/$ETHERPAD_DOMAIN_NAME/htdocs ]; then
+ function_check git_clone
+ git_clone $ETHERPAD_REPO /var/www/$ETHERPAD_DOMAIN_NAME/htdocs
+ if [ ! -d /var/www/$ETHERPAD_DOMAIN_NAME/htdocs ]; then
+ echo $'Unable to clone etherpad repo'
+ exit 56382
+ fi
+ fi
+
+ cd /var/www/$ETHERPAD_DOMAIN_NAME/htdocs
+ git checkout $ETHERPAD_COMMIT -b $ETHERPAD_COMMIT
+ set_completion_param "etherpad commit" "$ETHERPAD_COMMIT"
+
+ chmod a+w /var/www/$ETHERPAD_DOMAIN_NAME/htdocs
+ chown www-data:www-data /var/www/$ETHERPAD_DOMAIN_NAME/htdocs
+
+ function_check etherpad_create_database
+ etherpad_create_database
+
+ function_check add_ddns_domain
+ add_ddns_domain $ETHERPAD_DOMAIN_NAME
+
+ create_etherpad_settings
+
+ adduser --system --home=/var/www/$ETHERPAD_DOMAIN_NAME/htdocs/ --group etherpad
+ chown -R etherpad: /var/www/$ETHERPAD_DOMAIN_NAME/htdocs/
+
+ echo '[Unit]' > /etc/systemd/system/etherpad.service
+ echo 'Description=etherpad-lite (real-time collaborative document editing)' >> /etc/systemd/system/etherpad.service
+ echo 'After=syslog.target network.target' >> /etc/systemd/system/etherpad.service
+ echo '' >> /etc/systemd/system/etherpad.service
+ echo '[Service]' >> /etc/systemd/system/etherpad.service
+ echo 'Type=simple' >> /etc/systemd/system/etherpad.service
+ echo 'User=etherpad' >> /etc/systemd/system/etherpad.service
+ echo 'Group=etherpad' >> /etc/systemd/system/etherpad.service
+ echo "WorkingDirectory=/var/www/$ETHERPAD_DOMAIN_NAME/htdocs" >> /etc/systemd/system/etherpad.service
+ echo "ExecStart=/var/www/$ETHERPAD_DOMAIN_NAME/htdocs/bin/run.sh" >> /etc/systemd/system/etherpad.service
+ echo 'Restart=on-failure' >> /etc/systemd/system/etherpad.service
+ echo 'SuccessExitStatus=3 4' >> /etc/systemd/system/etherpad.service
+ echo 'RestartForceExitStatus=3 4' >> /etc/systemd/system/etherpad.service
+ echo '' >> /etc/systemd/system/etherpad.service
+ echo '[Install]' >> /etc/systemd/system/etherpad.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/etherpad.service
+ chmod +x /etc/systemd/system/etherpad.service
+
+ etherpad_nginx_site=/etc/nginx/sites-available/$ETHERPAD_DOMAIN_NAME
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect $ETHERPAD_DOMAIN_NAME
+ echo 'server {' >> $etherpad_nginx_site
+ echo ' listen 443 ssl;' >> $etherpad_nginx_site
+ echo ' listen [::]:443 ssl;' >> $etherpad_nginx_site
+ echo " server_name $ETHERPAD_DOMAIN_NAME;" >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ echo ' # Security' >> $etherpad_nginx_site
+ function_check nginx_ssl
+ nginx_ssl $ETHERPAD_DOMAIN_NAME
+
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $ETHERPAD_DOMAIN_NAME
+
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ echo ' # Logs' >> $etherpad_nginx_site
+ echo ' access_log /dev/null;' >> $etherpad_nginx_site
+ echo ' error_log /dev/null;' >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ echo ' # Root' >> $etherpad_nginx_site
+ echo " root /var/www/$ETHERPAD_DOMAIN_NAME/htdocs;" >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ echo ' location / {' >> $etherpad_nginx_site
+ function_check nginx_limits
+ nginx_limits $ETHERPAD_DOMAIN_NAME '15m'
+ echo " proxy_pass http://localhost:${ETHERPAD_PORT}/;" >> $etherpad_nginx_site
+ echo ' proxy_set_header Host $host;' >> $etherpad_nginx_site
+ echo ' proxy_buffering off;' >> $etherpad_nginx_site
+ echo ' }' >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ nginx_keybase $ETHERPAD_DOMAIN_NAME
+ echo '}' >> $etherpad_nginx_site
+ else
+ echo -n '' > $etherpad_nginx_site
+ fi
+ echo 'server {' >> $etherpad_nginx_site
+ echo " listen 127.0.0.1:$ETHERPAD_ONION_PORT default_server;" >> $etherpad_nginx_site
+ echo " server_name $ETHERPAD_DOMAIN_NAME;" >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $ETHERPAD_DOMAIN_NAME
+ echo '' >> $etherpad_nginx_site
+ echo ' # Logs' >> $etherpad_nginx_site
+ echo ' access_log /dev/null;' >> $etherpad_nginx_site
+ echo ' error_log /dev/null;' >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ echo ' # Root' >> $etherpad_nginx_site
+ echo " root /var/www/$ETHERPAD_DOMAIN_NAME/htdocs;" >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ echo ' location / {' >> $etherpad_nginx_site
+ function_check nginx_limits
+ nginx_limits $ETHERPAD_DOMAIN_NAME '15m'
+ echo ' proxy_pass http://localhost:9001/;' >> $etherpad_nginx_site
+ echo ' proxy_set_header Host $host;' >> $etherpad_nginx_site
+ echo ' proxy_buffering off;' >> $etherpad_nginx_site
+ echo ' }' >> $etherpad_nginx_site
+ echo '' >> $etherpad_nginx_site
+ nginx_keybase $ETHERPAD_DOMAIN_NAME
+ echo '}' >> $etherpad_nginx_site
+
+ function_check create_site_certificate
+ create_site_certificate $ETHERPAD_DOMAIN_NAME 'yes'
+
+ if [ -f /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.crt ]; then
+ mv /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.crt /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem
+ fi
+ if [ -f /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem ]; then
+ chown etherpad: /etc/ssl/certs/${ETHERPAD_DOMAIN_NAME}.pem
+ fi
+ if [ -f /etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key ]; then
+ chown etherpad: /etc/ssl/private/${ETHERPAD_DOMAIN_NAME}.key
+ fi
+
+ # Ensure that the database gets backed up locally, if remote
+ # backups are not being used
+ function_check backup_databases_script_header
+ backup_databases_script_header
+
+ function_check backup_database_local
+ backup_database_local etherpad
+
+ function_check nginx_ensite
+ nginx_ensite $ETHERPAD_DOMAIN_NAME
+
+ ETHERPAD_ONION_HOSTNAME=$(add_onion_service etherpad 80 ${ETHERPAD_ONION_PORT})
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a etherpad -p "$ETHERPAD_ADMIN_PASSWORD"
+
+ function_check add_ddns_domain
+ add_ddns_domain $ETHERPAD_DOMAIN_NAME
+
+ set_completion_param "etherpad domain" "$ETHERPAD_DOMAIN_NAME"
+
+ systemctl enable etherpad
+ systemctl daemon-reload
+ systemctl start etherpad
+ systemctl restart nginx
+
+ APP_INSTALLED=1
+}
diff --git a/src/freedombone-app-ghost b/src/freedombone-app-ghost
new file mode 100755
index 00000000..2a675221
--- /dev/null
+++ b/src/freedombone-app-ghost
@@ -0,0 +1,464 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Ghost blog
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS="full full-vim writer"
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+GHOST_DOMAIN_NAME=
+GHOST_CODE=
+GHOST_ONION_PORT=8104
+GHOST_VERSION='0.11.3'
+GHOST_PORT=2368
+
+ghost_variables=(GHOST_VERSION
+ GHOST_DOMAIN_NAME
+ GHOST_CODE
+ GHOST_ADMIN_PASSWORD
+ ONION_ONLY
+ DDNS_PROVIDER
+ MY_USERNAME)
+
+function ghost_replace_proprietary_services {
+ replace_file=$1
+
+ sed -i 's|Twitter Profile|GNU Social Profile|g' $replace_file
+ sed -i 's|Twitter Username|GNU Social Username|g' $replace_file
+ sed -i 's|twitter.com|quitter.se|g' $replace_file
+ sed -i 's|Facebook Page|Hubzilla Channel|g' $replace_file
+ sed -i 's|www.facebook.com/username|hubzilladomain/username|g' $replace_file
+ sed -i 's|www.facebook.com/ghost|hubzilladomain/username|g' $replace_file
+ sed -i 's|www.facebook.com/testuser|hubzilladomain/username|g' $replace_file
+ sed -i 's|www.facebook.com/testing|hubzilladomain/username|g' $replace_file
+ sed -i 's|www.facebook.com/test|hubzilladomain/username|g' $replace_file
+ sed -i 's|www.facebook.com/yourUsername|hubzilladomain/username|g' $replace_file
+ sed -i 's|www.facebook.com/yourPage|hubzilladomain/username|g' $replace_file
+ sed -i 's|Facebook Username|Hubzilla Channel|g' $replace_file
+ sed -i 's|www.facebook.com|hubzilladomain|g' $replace_file
+ sed -i 's|facebook value|hubzilla value|g' $replace_file
+
+ sed -i '//,/<\/section>/d' $replace_file
+}
+
+function ghost_replace_services {
+ ghost_replace_proprietary_services /var/www/${GHOST_DOMAIN_NAME}/htdocs/core/built/assets/ghost.js
+ ghost_replace_proprietary_services /var/www/${GHOST_DOMAIN_NAME}/htdocs/core/built/assets/ghost.min.js
+ ghost_replace_proprietary_services /var/www/${GHOST_DOMAIN_NAME}/htdocs/content/themes/casper/post.hbs
+}
+
+function remove_user_ghost {
+ remove_username="$1"
+}
+
+function add_user_ghost {
+ if [[ $(app_is_installed ghost) == "0" ]]; then
+ echo '0'
+ return
+ fi
+
+ new_username="$1"
+ new_user_password="$2"
+
+ echo '0'
+}
+
+function install_interactive_ghost {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ GHOST_DOMAIN_NAME='ghost.local'
+ write_config_param "GHOST_DOMAIN_NAME" "$GHOST_DOMAIN_NAME"
+ else
+ function_check interactive_site_details
+ interactive_site_details "ghost" "GHOST_DOMAIN_NAME" "GHOST_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function change_password_ghost {
+ GHOST_USERNAME="$1"
+ GHOST_PASSWORD="$2"
+ if [ ${#GHOST_PASSWORD} -lt 8 ]; then
+ echo $'Ghost password is too short'
+ return
+ fi
+ #${PROJECT_NAME}-pass -u $GHOST_USERNAME -a ghost -p "$GHOST_PASSWORD"
+}
+
+function reconfigure_ghost {
+ echo -n ''
+}
+
+function upgrade_ghost {
+ read_config_param "GHOST_DOMAIN_NAME"
+
+ GHOST_PATH=/var/www/$GHOST_DOMAIN_NAME/htdocs
+
+ function_check set_repo_commit
+ set_repo_commit $GHOST_PATH "ghost commit" "$GHOST_COMMIT" $GHOST_REPO
+
+ ghost_replace_services
+
+ systemctl restart ghost
+}
+
+function backup_local_ghost {
+ GHOST_DOMAIN_NAME='ghost.local'
+ if grep -q "ghost domain" $COMPLETION_FILE; then
+ GHOST_DOMAIN_NAME=$(get_completion_param "ghost domain")
+ fi
+
+ ghost_path=/var/www/${GHOST_DOMAIN_NAME}/htdocs
+ if [ -d $ghost_path ]; then
+ function_check backup_database_to_usb
+ backup_database_to_usb ghost
+
+ backup_directory_to_usb $ghost_path ghost
+ restart_site
+ fi
+}
+
+function restore_local_ghost {
+ GHOST_DOMAIN_NAME='ghost.local'
+ if grep -q "ghost domain" $COMPLETION_FILE; then
+ GHOST_DOMAIN_NAME=$(get_completion_param "ghost domain")
+ fi
+ if [ $GHOST_DOMAIN_NAME ]; then
+ function_check ghost_create_database
+ ghost_create_database
+
+ function_check restore_database
+ restore_database ghost ${GHOST_DOMAIN_NAME}
+ fi
+}
+
+function backup_remote_ghost {
+ GHOST_DOMAIN_NAME='ghost.local'
+ if grep -q "ghost domain" $COMPLETION_FILE; then
+ GHOST_DOMAIN_NAME=$(get_completion_param "ghost domain")
+ fi
+
+ temp_backup_dir=/var/www/${GHOST_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ suspend_site ${GHOST_DOMAIN_NAME}
+ backup_database_to_friend ghost
+ backup_directory_to_friend $temp_backup_dir ghost
+ restart_site
+ else
+ echo $"Ghost domain specified but not found in /var/www/${GHOST_DOMAIN_NAME}"
+ exit 2578
+ fi
+}
+
+function restore_remote_ghost {
+ GHOST_DOMAIN_NAME='ghost.local'
+ if grep -q "ghost domain" $COMPLETION_FILE; then
+ GHOST_DOMAIN_NAME=$(get_completion_param "ghost domain")
+ fi
+
+ function_check restore_database_from_friend
+
+ function_check ghost_create_database
+ ghost_create_database
+
+ restore_database_from_friend ghost ${GHOST_DOMAIN_NAME}
+ restart_site
+ chown -R ghost: /var/www/$GHOST_DOMAIN_NAME/htdocs/
+}
+
+function remove_ghost {
+ if [ ${#GHOST_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+
+ systemctl stop ghost
+ systemctl disable ghost
+ rm /etc/systemd/system/ghost.service
+
+ function_check remove_nodejs
+ remove_nodejs ghost
+
+ drop_database ghost
+ remove_backup_database_local ghost
+
+ read_config_param "GHOST_DOMAIN_NAME"
+ nginx_dissite $GHOST_DOMAIN_NAME
+ remove_certs ${GHOST_DOMAIN_NAME}
+ deluser --remove-all-files ghost
+ if [ -f /etc/nginx/sites-available/$GHOST_DOMAIN_NAME ]; then
+ rm -f /etc/nginx/sites-available/$GHOST_DOMAIN_NAME
+ fi
+ if [ -d /var/www/$GHOST_DOMAIN_NAME ]; then
+ rm -rf /var/www/$GHOST_DOMAIN_NAME
+ fi
+ remove_config_param GHOST_DOMAIN_NAME
+ remove_config_param GHOST_CODE
+ function_check remove_onion_service
+ remove_onion_service ghost ${GHOST_ONION_PORT}
+ remove_completion_param "install_ghost"
+ sed -i '/Ghost/d' $COMPLETION_FILE
+ sed -i '/ghost/d' $COMPLETION_FILE
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $GHOST_DOMAIN_NAME
+}
+
+function ghost_create_config {
+ ghost_config=/var/www/${GHOST_DOMAIN_NAME}/htdocs/config.js
+
+ echo "var path = require('path')," > $ghost_config
+ echo ' config;' >> $ghost_config
+ echo '' >> $ghost_config
+ echo 'config = {' >> $ghost_config
+ echo ' production: {' >> $ghost_config
+ echo ' // This needs to be http and NOT https' >> $ghost_config
+ echo " url: 'http://${GHOST_DOMAIN_NAME}'," >> $ghost_config
+ echo ' mail: {' >> $ghost_config
+ echo " transport: 'SMTP'," >> $ghost_config
+ echo ' options: {' >> $ghost_config
+ echo " service: 'Sendmail'," >> $ghost_config
+ echo ' }' >> $ghost_config
+ echo ' },' >> $ghost_config
+ echo ' database: {' >> $ghost_config
+ echo " client: 'mysql'," >> $ghost_config
+ echo ' connection: {' >> $ghost_config
+ echo " host : '127.0.0.1'," >> $ghost_config
+ echo " user : 'root'," >> $ghost_config
+ echo " password : '${MARIADB_PASSWORD}'," >> $ghost_config
+ echo " database : 'ghost'," >> $ghost_config
+ echo " charset : 'utf8'" >> $ghost_config
+ echo ' }' >> $ghost_config
+ echo ' },' >> $ghost_config
+ echo '' >> $ghost_config
+ echo ' server: {' >> $ghost_config
+ echo " host: '127.0.0.1'," >> $ghost_config
+ echo " port: '${GHOST_PORT}'" >> $ghost_config
+ echo ' },' >> $ghost_config
+ echo ' logging: false' >> $ghost_config
+ echo ' }' >> $ghost_config
+ echo '};' >> $ghost_config
+ echo '' >> $ghost_config
+ echo 'module.exports = config;' >> $ghost_config
+ chmod 700 $ghost_config
+}
+
+function ghost_create_database {
+ if [ -f ${IMAGE_PASSWORD_FILE} ]; then
+ GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! ${GIT_ADMIN_PASSWORD} ]; then
+ GIT_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $GIT_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database ghost "$GHOST_ADMIN_PASSWORD"
+}
+
+function install_ghost {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [ ! $GHOST_DOMAIN_NAME ]; then
+ echo $'The ghost domain name was not specified'
+ exit 5062
+ fi
+
+ # for the avatar changing command
+ apt-get -yq install unzip wget
+
+ if [ ! -d /var/www/$GHOST_DOMAIN_NAME/htdocs ]; then
+ mkdir -p /var/www/$GHOST_DOMAIN_NAME/htdocs
+ fi
+ cd /var/www/$GHOST_DOMAIN_NAME/htdocs
+ wget https://ghost.org/zip/ghost-${GHOST_VERSION}.zip
+ if [ ! -f ghost-${GHOST_VERSION}.zip ]; then
+ echo $'Unable to download ghost'
+ rm -rf /var/www/$GHOST_DOMAIN_NAME
+ exit 63892
+ fi
+ unzip ghost-${GHOST_VERSION}.zip
+ if [ ! -f /var/www/${GHOST_DOMAIN_NAME}/htdocs/index.js ]; then
+ echo $'ghost failed to unzip'
+ rm -rf /var/www/$GHOST_DOMAIN_NAME
+ exit 63835
+ fi
+
+ function_check install_nodejs
+ install_nodejs ghost
+
+ sed -i "/sqlite/d" /var/www/${GHOST_DOMAIN_NAME}/htdocs/package.json
+ npm install --production
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check ghost_create_database
+ ghost_create_database
+
+ ghost_create_config
+
+ adduser --system --home=/var/www/${GHOST_DOMAIN_NAME}/htdocs/ --group ghost
+ chown -R ghost: /var/www/${GHOST_DOMAIN_NAME}/htdocs/
+
+ echo '[Unit]' > /etc/systemd/system/ghost.service
+ echo 'Description=Ghost Blog' >> /etc/systemd/system/ghost.service
+ echo 'After=syslog.target' >> /etc/systemd/system/ghost.service
+ echo 'After=network.target' >> /etc/systemd/system/ghost.service
+ echo 'After=mysqld.service' >> /etc/systemd/system/ghost.service
+ echo '' >> /etc/systemd/system/ghost.service
+ echo '[Service]' >> /etc/systemd/system/ghost.service
+ echo 'Type=simple' >> /etc/systemd/system/ghost.service
+ echo 'User=ghost' >> /etc/systemd/system/ghost.service
+ echo 'Group=ghost' >> /etc/systemd/system/ghost.service
+ echo "WorkingDirectory=/var/www/${GHOST_DOMAIN_NAME}/htdocs" >> /etc/systemd/system/ghost.service
+ echo "ExecStart=/usr/local/bin/node /var/www/${GHOST_DOMAIN_NAME}/htdocs/index.js" >> /etc/systemd/system/ghost.service
+ echo 'Restart=always' >> /etc/systemd/system/ghost.service
+ echo 'RestartSec=60' >> /etc/systemd/system/ghost.service
+ echo "Environment=NODE_ENV=production PORT=${GHOST_PORT}" >> /etc/systemd/system/ghost.service
+ echo '' >> /etc/systemd/system/ghost.service
+ echo '[Install]' >> /etc/systemd/system/ghost.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/ghost.service
+
+ systemctl enable ghost
+ systemctl daemon-reload
+ systemctl start ghost
+
+ GHOST_ONION_HOSTNAME=$(add_onion_service ghost 80 ${GHOST_ONION_PORT})
+
+ if [[ ${ONION_ONLY} == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect ${GHOST_DOMAIN_NAME}
+ echo 'server {' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' listen [::]:443 ssl;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " root /var/www/${GHOST_DOMAIN_NAME}/htdocs;" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " server_name ${GHOST_DOMAIN_NAME};" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ function_check nginx_ssl
+ nginx_ssl ${GHOST_DOMAIN_NAME}
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing ${GHOST_DOMAIN_NAME}
+ echo ' add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' location / {' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ function_check nginx_limits
+ nginx_limits ${GHOST_DOMAIN_NAME} '10G'
+ echo " proxy_pass http://localhost:${GHOST_PORT};" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' location = /robots.txt {' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' allow all;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' log_not_found off;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ nginx_keybase $GHOST_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ else
+ echo -n '' > /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ fi
+ echo 'server {' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " listen 127.0.0.1:${GHOST_ONION_PORT} default_server;" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " root /var/www/$GHOST_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " server_name $GHOST_ONION_HOSTNAME;" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing ${GHOST_DOMAIN_NAME}
+ echo ' add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' location / {' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ function_check nginx_limits
+ nginx_limits ${GHOST_DOMAIN_NAME} '10G'
+ echo " proxy_pass http://localhost:${GHOST_PORT};" >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' location = /robots.txt {' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' allow all;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' log_not_found off;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+ nginx_keybase ${GHOST_DOMAIN_NAME}
+ echo '}' >> /etc/nginx/sites-available/${GHOST_DOMAIN_NAME}
+
+ function_check create_site_certificate
+ create_site_certificate $GHOST_DOMAIN_NAME 'yes'
+
+ function_check configure_php
+ configure_php
+
+ if [[ $ONION_ONLY != 'no' ]]; then
+ sed -i "s|url: .*|url: 'http://${GHOST_ONION_HOSTNAME}',|g" /var/www/${GHOST_DOMAIN_NAME}/htdocs/config.js
+ systemctl restart ghost
+ fi
+
+ ghost_replace_services
+
+ function_check nginx_ensite
+ nginx_ensite $GHOST_DOMAIN_NAME
+
+ systemctl restart nginx
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a ghost -p "$GHOST_ADMIN_PASSWORD"
+
+ function_check add_ddns_domain
+ add_ddns_domain $GHOST_DOMAIN_NAME
+
+ set_completion_param "ghost domain" "$GHOST_DOMAIN_NAME"
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-gnusocial b/src/freedombone-app-gnusocial
new file mode 100755
index 00000000..f5ee64eb
--- /dev/null
+++ b/src/freedombone-app-gnusocial
@@ -0,0 +1,1107 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# gnusocial application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim media'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+GNUSOCIAL_DOMAIN_NAME=
+GNUSOCIAL_CODE=
+GNUSOCIAL_ONION_PORT=8087
+GNUSOCIAL_REPO="https://git.gnu.io/gnu/gnu-social.git"
+GNUSOCIAL_COMMIT='c67b89e56bf0f90730a9e22beca7e1bd41fc26c3'
+GNUSOCIAL_ADMIN_PASSWORD=
+GNUSOCIAL_THEME_REPO="https://git.gnu.io/h2p/Qvitter.git"
+GNUSOCIAL_THEME_COMMIT='510b6c5f9ccd89e3693909198aad691492ace081'
+GNUSOCIAL_WELCOME_MESSAGE=$'Welcome to GNU Social – a federated social metwork Another Freedombone site
'
+GNUSOCIAL_BACKGROUND_IMAGE_URL=
+GNUSOCIAL_MARKDOWN_REPO="https://git.gnu.io/chimo/markdown.git"
+GNUSOCIAL_MARKDOWN_COMMIT='03c53942f94b3376f0946e6e1fe566cc21ccf232'
+
+# Sharings plugin for gnusocial
+SHARINGS_REPO="http://git.lasindias.club/bashrc/Sharings"
+SHARINGS_COMMIT='d5c6c7f855d9afff9086c09ea706f38c859bc0d4'
+SHARINGS_THEME_REPO="http://git.lasindias.club/manuel/SharingsTheme"
+SHARINGS_THEME_COMMIT='7106c7ef03'
+
+# NSFW plugin
+GNUSOCIAL_NSFW_REPO="https://gitgud.io/ShitposterClub/SensitiveContent"
+GNUSOCIAL_NSFW_COMMIT='a096bbe0cfae9a9b177682920ffb58d32a48e136'
+
+# script which causes old posts to expire
+gnusocial_expire_script=/usr/bin/gnusocial-expire
+
+gnusocial_variables=(GNUSOCIAL_COMMIT
+ ONION_ONLY
+ GNUSOCIAL_DOMAIN_NAME
+ GNUSOCIAL_CODE
+ GNUSOCIAL_WELCOME_MESSAGE
+ GNUSOCIAL_BACKGROUND_IMAGE_URL
+ DDNS_PROVIDER
+ GNUSOCIAL_MARKDOWN_REPO
+ GNUSOCIAL_MARKDOWN_COMMIT
+ SHARINGS_REPO
+ SHARINGS_COMMIT
+ SHARINGS_THEME_REPO
+ SHARINGS_THEME_COMMIT
+ MY_USERNAME)
+
+function remove_user_gnusocial {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp gnusocial
+
+ function_check get_completion_param
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+ if [ -d /var/www/$GNUSOCIAL_DOMAIN_NAME ]; then
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ php scripts/deleteprofile.php -n $remove_username -y
+ fi
+}
+
+function add_user_gnusocial {
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a gnusocial -p "$new_user_password"
+
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+ if [ -d /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs ]; then
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ php scripts/registeruser.php -n $new_username -w "$new_user_password" -e "$new_username@$HOSTNAME"
+ ${PROJECT_NAME}-addemail -u $new_username -e "noreply@$GNUSOCIAL_DOMAIN_NAME" -g gnusocial --public no
+ echo '0'
+ else
+ echo '1'
+ fi
+}
+
+function install_interactive_gnusocial {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ GNUSOCIAL_DOMAIN_NAME='gnusocial.local'
+ else
+ GNUSOCIAL_DETAILS_COMPLETE=
+ while [ ! $GNUSOCIAL_DETAILS_COMPLETE ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"GNU Social Configuration" \
+ --form $"\nPlease enter your GNU Social 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:" 16 65 4 \
+ $"Domain:" 1 1 "$(grep 'GNUSOCIAL_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
+ $"Welcome Message:" 2 1 "$(grep '$GNUSOCIAL_WELCOME_MESSAGE' temp.cfg | awk -F '=' '{print $2}')" 2 25 255 255 \
+ $"Background image URL:" 3 1 "$(grep '$GNUSOCIAL_BACKGROUND_IMAGE_URL' temp.cfg | awk -F '=' '{print $2}')" 3 25 255 255 \
+ $"Code:" 4 1 "$(grep 'GNUSOCIAL_CODE' temp.cfg | awk -F '=' '{print $2}')" 4 25 33 255 \
+ 2> $data
+ else
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"GNU Social Configuration" \
+ --form $"\nPlease enter your GNU Social 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:" 16 65 4 \
+ $"Domain:" 1 1 "$(grep 'GNUSOCIAL_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
+ $"Welcome Message:" 2 1 "$(grep '$GNUSOCIAL_WELCOME_MESSAGE' temp.cfg | awk -F '=' '{print $2}')" 2 25 255 255 \
+ $"Background image URL:" 3 1 "$(grep '$GNUSOCIAL_BACKGROUND_IMAGE_URL' temp.cfg | awk -F '=' '{print $2}')" 3 25 255 255 \
+ 2> $data
+ fi
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ GNUSOCIAL_DOMAIN_NAME=$(cat $data | sed -n 1p)
+ welcome_msg=$(cat $data | sed -n 2p)
+ if [ ${#welcome_msg} -gt 1 ]; then
+ GNUSOCIAL_WELCOME_MESSAGE=$welcome_msg
+ fi
+ img_url=$(cat $data | sed -n 3p)
+ if [ ${#img_url} -gt 1 ]; then
+ GNUSOCIAL_BACKGROUND_IMAGE_URL=$img_url
+ fi
+ if [ $GNUSOCIAL_DOMAIN_NAME ]; then
+ if [[ $GNUSOCIAL_DOMAIN_NAME == "$HUBZILLA_DOMAIN_NAME" ]]; then
+ GNUSOCIAL_DOMAIN_NAME=""
+ fi
+ TEST_DOMAIN_NAME=$GNUSOCIAL_DOMAIN_NAME
+ validate_domain_name
+ if [[ $TEST_DOMAIN_NAME != $GNUSOCIAL_DOMAIN_NAME ]]; then
+ GNUSOCIAL_DOMAIN_NAME=
+ dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
+ else
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ GNUSOCIAL_CODE=$(cat $data | sed -n 4p)
+ validate_freedns_code "$GNUSOCIAL_CODE"
+ if [ ! $VALID_CODE ]; then
+ GNUSOCIAL_DOMAIN_NAME=
+ fi
+ fi
+ fi
+ fi
+ if [ $GNUSOCIAL_DOMAIN_NAME ]; then
+ GNUSOCIAL_DETAILS_COMPLETE="yes"
+ fi
+ done
+
+ # remove any invalid characters
+ if [ ${#GNUSOCIAL_WELCOME_MESSAGE} -gt 0 ]; then
+ new_welcome=$(echo "$GNUSOCIAL_WELCOME_MESSAGE" | sed "s|'||g")
+ GNUSOCIAL_WELCOME_MESSAGE="$new_welcome"
+ fi
+
+ # save the results in the config file
+ write_config_param "GNUSOCIAL_CODE" "$GNUSOCIAL_CODE"
+ write_config_param "GNUSOCIAL_WELCOME_MESSAGE" "$GNUSOCIAL_WELCOME_MESSAGE"
+ write_config_param "GNUSOCIAL_BACKGROUND_IMAGE_URL" "$GNUSOCIAL_BACKGROUND_IMAGE_URL"
+ fi
+ write_config_param "GNUSOCIAL_DOMAIN_NAME" "$GNUSOCIAL_DOMAIN_NAME"
+ APP_INSTALLED=1
+}
+
+function change_password_gnusocial {
+ curr_username="$1"
+ new_user_password="$2"
+
+ read_config_param ${GNUSOCIAL_DOMAIN_NAME}
+
+ cd /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
+ ./scripts/setpassword "$curr_username" "$new_user_password"
+
+ ${PROJECT_NAME}-pass -u "$curr_username" -a gnusocial -p "$new_user_password"
+}
+
+function gnusocial_create_database {
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ GNUSOCIAL_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $GNUSOCIAL_ADMIN_PASSWORD ]; then
+ GNUSOCIAL_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $GNUSOCIAL_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database gnusocial "$GNUSOCIAL_ADMIN_PASSWORD" $MY_USERNAME
+}
+
+function gnusocial_running_script {
+ # check that the daemon is running
+ echo '#!/bin/bash' > /etc/cron.hourly/gnusocial-daemons
+ echo 'daemon_lines=$(ps aux | grep "scripts/queuedaemon.php" | grep "/var/www")' >> /etc/cron.hourly/gnusocial-daemons
+ echo 'if [[ $daemon_lines != *"/var/www/"* ]]; then' >> /etc/cron.hourly/gnusocial-daemons
+
+ echo " ADMIN_USER=\$(cat $COMPLETION_FILE | grep 'Admin user' | awk -F ':' '{print \$2}')" >> /etc/cron.hourly/gnusocial-daemons
+ echo ' MY_EMAIL_ADDRESS=$ADMIN_USER@$HOSTNAME' >> /etc/cron.hourly/gnusocial-daemons
+ echo ' echo "Restarting GNU Social daemons" | mail -s "GNU Social daemons not found" $MY_EMAIL_ADDRESS' >> /etc/cron.hourly/gnusocial-daemons
+ echo " cd /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs" >> /etc/cron.hourly/gnusocial-daemons
+ echo ' scripts/startdaemons.sh' >> /etc/cron.hourly/gnusocial-daemons
+ echo 'fi' >> /etc/cron.hourly/gnusocial-daemons
+ chmod +x /etc/cron.hourly/gnusocial-daemons
+}
+
+function reconfigure_gnusocial {
+ echo -n ''
+}
+
+function gnusocial_set_background_image_from_url {
+ GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT=
+ if [ $GNUSOCIAL_BACKGROUND_IMAGE_URL ]; then
+ if [[ $GNUSOCIAL_BACKGROUND_IMAGE_URL == *".jpeg" || $GNUSOCIAL_BACKGROUND_IMAGE_URL == *".jpg" ]]; then
+ GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT="jpg"
+ fi
+ if [[ $GNUSOCIAL_BACKGROUND_IMAGE_URL == *".png" ]]; then
+ GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT="png"
+ fi
+ if [[ $$GNUSOCIAL_BACKGROUND_IMAGE_URL == *".gif" ]]; then
+ GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT="gif"
+ fi
+ fi
+
+ if [ $GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT ]; then
+ read_config_param GNUSOCIAL_DOMAIN_NAME
+ gnusocial_config_file=/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter
+
+ wget $GNUSOCIAL_BACKGROUND_IMAGE_URL -O img/custom.${GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT}
+ if [ ! -f img/custom.${GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT} ]; then
+ echo "$GNUSOCIAL_BACKGROUND_IMAGE_URL"
+ echo $'Custom background image for gnusocial could not be downloaded'
+ echo "1"
+ return
+ fi
+
+ if grep -q "'img/custom" $gnusocial_config_file; then
+ sed -i "s|'img/custom.*|'img/custom.${GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT}';|g" $gnusocial_config_file
+ fi
+ fi
+ echo "0"
+}
+
+
+function gnusocial_set_background_image {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"GNU Social" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $'Set a login screen background image URL' 10 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ temp_background=$(<$data)
+ if [ ${#temp_background} -gt 0 ]; then
+ GNUSOCIAL_BACKGROUND_IMAGE_URL="$temp_background"
+ write_config_param "GNUSOCIAL_BACKGROUND_IMAGE_URL" "$GNUSOCIAL_BACKGROUND_IMAGE_URL"
+ if [[ $(gnusocial_set_background_image_from_url) == "0" ]]; then
+ dialog --title $"Set GNU Social login background" \
+ --msgbox $"The background image has been set" 6 60
+ fi
+ fi
+ ;;
+ esac
+}
+
+function gnusocial_set_welcome_message {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"GNU Social" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $'Set a welcome message, which can include html formatting' 10 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ temp_welcome=$(<$data)
+ if [ ${#temp_welcome} -gt 0 ]; then
+ GNUSOCIAL_WELCOME_MESSAGE="$temp_welcome"
+ gnusocial_config_file=/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+ if grep -q "customwelcometext" $gnusocial_config_file; then
+ write_config_param "GNUSOCIAL_WELCOME_MESSAGE" "$GNUSOCIAL_WELCOME_MESSAGE"
+ sed -i "s|customwelcometext.*|customwelcometext']['en'] = '${GNUSOCIAL_WELCOME_MESSAGE}';|g" $gnusocial_config_file
+
+ dialog --title $"Set GNU Social welcome message" \
+ --msgbox $"Welcome message has been set" 6 60
+ fi
+ fi
+ ;;
+ esac
+}
+
+function configure_interactive_gnusocial {
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"GNU Social" \
+ --radiolist $"Choose an operation:" 12 70 3 \
+ 1 $"Set a login screen background image" off \
+ 2 $"Set a welcome message" off \
+ 3 $"Exit" on 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ case $(cat $data) in
+ 1) gnusocial_set_background_image;;
+ 2) gnusocial_set_welcome_message;;
+ 3) break;;
+ esac
+ done
+}
+
+function upgrade_gnusocial {
+ if grep -q "gnusocial domain" $COMPLETION_FILE; then
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs "gnusocial commit" "$GNUSOCIAL_COMMIT" $GNUSOCIAL_REPO
+
+ function_check gnusocial_running_script
+ gnusocial_running_script
+}
+
+
+function backup_local_gnusocial {
+ GNUSOCIAL_DOMAIN_NAME='gnusocial'
+ if grep -q "gnusocial domain" $COMPLETION_FILE; then
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+ fi
+
+ source_directory=/var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
+ if [ -d $source_directory ]; then
+ dest_directory=gnusocial
+ function_check suspend_site
+ suspend_site ${GNUSOCIAL_DOMAIN_NAME}
+
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+
+ function_check backup_database_to_usb
+ backup_database_to_usb gnusocial
+
+ function_check restart_site
+ restart_site
+ fi
+}
+
+function restore_local_gnusocial {
+ if ! grep -q "gnusocial domain" $COMPLETION_FILE; then
+ return
+ fi
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+ if [ $GNUSOCIAL_DOMAIN_NAME ]; then
+ echo $"Restoring gnusocial"
+ temp_restore_dir=/root/tempgnusocial
+ gnusocial_dir=/var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
+ # stop the daemons
+ cd $gnusocial_dir
+ scripts/stopdaemons.sh
+
+ function_check gnusocial_create_database
+ gnusocial_create_database
+
+ restore_database gnusocial ${GNUSOCIAL_DOMAIN_NAME}
+ if [ -d $temp_restore_dir ]; then
+ rm -rf $temp_restore_dir
+ fi
+
+ # start the daemons
+ cd $gnusocial_dir
+ scripts/startdaemons.sh
+ echo $"Restore of gnusocial complete"
+ fi
+}
+
+function backup_remote_gnusocial {
+ if grep -q "gnusocial domain" $COMPLETION_FILE; then
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+ temp_backup_dir=/var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ function_check suspend_site
+ suspend_site ${GNUSOCIAL_DOMAIN_NAME}
+
+ function_check backup_database_to_friend
+ backup_database_to_friend gnusocial
+
+ echo $"Backing up GNU social installation"
+
+ function_check backup_directory_to_friend
+ backup_directory_to_friend $temp_backup_dir gnusocial
+
+ function_check restart_site
+ restart_site
+ else
+ echo $"gnusocial domain specified but not found in ${temp_backup_dir}"
+ fi
+ fi
+}
+
+function restore_remote_gnusocial {
+ if grep -q "gnusocial domain" $COMPLETION_FILE; then
+ echo $"Restoring gnusocial"
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
+
+ # stop the daemons
+ cd /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
+ ./scripts/stopdaemons.sh
+
+ function_check gnusocial_create_database
+ gnusocial_create_database
+
+ function_check restore_database_from_friend
+ restore_database_from_friend gnusocial ${GNUSOCIAL_DOMAIN_NAME}
+ if [ -d /root/tempgnusocial ]; then
+ rm -rf /root/tempgnusocial
+ fi
+
+ # start the daemons
+ cd /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
+ ./scripts/startdaemons.sh
+ echo $"Restore of gnusocial complete"
+ fi
+}
+
+function remove_gnusocial {
+ if [ ${#GNUSOCIAL_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+ read_config_param "GNUSOCIAL_DOMAIN_NAME"
+ read_config_param "MY_USERNAME"
+ echo "Removing $GNUSOCIAL_DOMAIN_NAME"
+ nginx_dissite $GNUSOCIAL_DOMAIN_NAME
+ remove_certs $GNUSOCIAL_DOMAIN_NAME
+ if [ -f /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/scripts/stopdaemons.sh ]; then
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/scripts
+ ./scripts/stopdaemons.sh
+ fi
+ if [ -d /var/www/$GNUSOCIAL_DOMAIN_NAME ]; then
+ rm -rf /var/www/$GNUSOCIAL_DOMAIN_NAME
+ fi
+ if [ -f /etc/nginx/sites-available/$GNUSOCIAL_DOMAIN_NAME ]; then
+ rm /etc/nginx/sites-available/$GNUSOCIAL_DOMAIN_NAME
+ fi
+ function_check drop_database
+ drop_database gnusocial
+ function_check remove_onion_service
+ remove_onion_service gnusocial ${GNUSOCIAL_ONION_PORT}
+ if grep -q "gnusocial" /etc/crontab; then
+ sed -i "/gnusocial/d" /etc/crontab
+ fi
+ remove_app gnusocial
+ remove_completion_param install_gnusocial
+ sed -i '/gnusocial/d' $COMPLETION_FILE
+ if [ -f /etc/cron.hourly/gnusocial-daemons ]; then
+ rm /etc/cron.hourly/gnusocial-daemons
+ fi
+ remove_backup_database_local gnusocial
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $GNUSOCIAL_DOMAIN_NAME
+}
+
+function install_gnusocial_main {
+ if [ ! $GNUSOCIAL_DOMAIN_NAME ]; then
+ echo $'No domain name was given for gnusocial'
+ exit 7359
+ fi
+
+ if [[ $(app_is_installed gnusocial_main) == "1" ]]; then
+ return
+ fi
+
+ function_check gnusocial_running_script
+ gnusocial_running_script
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check repair_databases_script
+ repair_databases_script
+
+ apt-get -yq install php-gettext php5-curl php5-gd php5-mysql git curl php-xml-parser
+ apt-get -yq install php5-memcached php5-intl
+
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME ]; then
+ mkdir /var/www/$GNUSOCIAL_DOMAIN_NAME
+ fi
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs ]; then
+ function_check git_clone
+ git_clone $GNUSOCIAL_REPO /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs ]; then
+ echo $'Unable to clone gnusocial repo'
+ exit 87525
+ fi
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ git checkout $GNUSOCIAL_COMMIT -b $GNUSOCIAL_COMMIT
+ set_completion_param "gnusocial commit" "$GNUSOCIAL_COMMIT"
+
+ chmod a+w /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ chown www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ chmod +x /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/scripts/maildaemon.php
+
+ function_check gnusocial_create_database
+ gnusocial_create_database
+
+ if [ ! -f "/etc/aliases" ]; then
+ touch /etc/aliases
+ fi
+ if ! grep -q "www-data: root" /etc/aliases; then
+ echo 'www-data: root' >> /etc/aliases
+ fi
+ if ! grep -q "/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/scripts/maildaemon.php" /etc/aliases; then
+ echo "*: /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/scripts/maildaemon.php" >> /etc/aliases
+ fi
+
+ function_check add_ddns_domain
+ add_ddns_domain $GNUSOCIAL_DOMAIN_NAME
+
+ gnusocial_nginx_site=/etc/nginx/sites-available/$GNUSOCIAL_DOMAIN_NAME
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect $GNUSOCIAL_DOMAIN_NAME
+ echo 'server {' >> $gnusocial_nginx_site
+ echo ' listen 443 ssl;' >> $gnusocial_nginx_site
+ echo ' listen [::]:443 ssl;' >> $gnusocial_nginx_site
+ echo " server_name $GNUSOCIAL_DOMAIN_NAME;" >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Security' >> $gnusocial_nginx_site
+ function_check nginx_ssl
+ nginx_ssl $GNUSOCIAL_DOMAIN_NAME
+
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $GNUSOCIAL_DOMAIN_NAME
+
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Logs' >> $gnusocial_nginx_site
+ echo ' access_log /dev/null;' >> $gnusocial_nginx_site
+ echo ' error_log /dev/null;' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Root' >> $gnusocial_nginx_site
+ echo " root /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs;" >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Index' >> $gnusocial_nginx_site
+ echo ' index index.php;' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # PHP' >> $gnusocial_nginx_site
+ echo ' location ~ \.php {' >> $gnusocial_nginx_site
+ echo ' include snippets/fastcgi-php.conf;' >> $gnusocial_nginx_site
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Location' >> $gnusocial_nginx_site
+ echo ' location / {' >> $gnusocial_nginx_site
+ function_check nginx_limits
+ nginx_limits $GNUSOCIAL_DOMAIN_NAME '15m'
+ echo ' try_files $uri $uri/ @gnusocial;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Fancy URLs' >> $gnusocial_nginx_site
+ echo ' location @gnusocial {' >> $gnusocial_nginx_site
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Restrict access that is unnecessary anyway' >> $gnusocial_nginx_site
+ echo ' location ~ /\.(ht|git) {' >> $gnusocial_nginx_site
+ echo ' deny all;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ nginx_keybase $GNUSOCIAL_DOMAIN_NAME
+ echo '}' >> $gnusocial_nginx_site
+ else
+ echo -n '' > $gnusocial_nginx_site
+ fi
+ echo 'server {' >> $gnusocial_nginx_site
+ echo " listen 127.0.0.1:$GNUSOCIAL_ONION_PORT default_server;" >> $gnusocial_nginx_site
+ echo " server_name $GNUSOCIAL_DOMAIN_NAME;" >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $GNUSOCIAL_DOMAIN_NAME
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Logs' >> $gnusocial_nginx_site
+ echo ' access_log /dev/null;' >> $gnusocial_nginx_site
+ echo ' error_log /dev/null;' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Root' >> $gnusocial_nginx_site
+ echo " root /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs;" >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Index' >> $gnusocial_nginx_site
+ echo ' index index.php;' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # PHP' >> $gnusocial_nginx_site
+ echo ' location ~ \.php {' >> $gnusocial_nginx_site
+ echo ' include snippets/fastcgi-php.conf;' >> $gnusocial_nginx_site
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Location' >> $gnusocial_nginx_site
+ echo ' location / {' >> $gnusocial_nginx_site
+ function_check nginx_limits
+ nginx_limits $GNUSOCIAL_DOMAIN_NAME '15m'
+ echo ' try_files $uri $uri/ @gnusocial;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Fancy URLs' >> $gnusocial_nginx_site
+ echo ' location @gnusocial {' >> $gnusocial_nginx_site
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ echo ' # Restrict access that is unnecessary anyway' >> $gnusocial_nginx_site
+ echo ' location ~ /\.(ht|git) {' >> $gnusocial_nginx_site
+ echo ' deny all;' >> $gnusocial_nginx_site
+ echo ' }' >> $gnusocial_nginx_site
+ echo '' >> $gnusocial_nginx_site
+ nginx_keybase $GNUSOCIAL_DOMAIN_NAME
+ echo '}' >> $gnusocial_nginx_site
+
+ function_check configure_php
+ configure_php
+
+ function_check create_site_certificate
+ create_site_certificate $GNUSOCIAL_DOMAIN_NAME 'yes'
+
+ # Ensure that the database gets backed up locally, if remote
+ # backups are not being used
+ function_check backup_databases_script_header
+ backup_databases_script_header
+
+ function_check backup_database_local
+ backup_database_local gnusocial
+
+ function_check nginx_ensite
+ nginx_ensite $GNUSOCIAL_DOMAIN_NAME
+
+ # NOTE: For the typical case always enable SSL and only
+ # disable it if in onion only mode. This is due to complexities
+ # with the way URLs are generated by gnusocial
+ gnusocial_ssl='always'
+ if [[ $ONION_ONLY != 'no' ]]; then
+ gnusocial_ssl='never'
+ fi
+
+ GNUSOCIAL_ONION_HOSTNAME=$(add_onion_service gnusocial 80 ${GNUSOCIAL_ONION_PORT})
+
+ GNUSOCIAL_SERVER=${GNUSOCIAL_DOMAIN_NAME}
+ if [[ $ONION_ONLY != 'no' ]]; then
+ GNUSOCIAL_SERVER=${GNUSOCIAL_ONION_HOSTNAME}
+ fi
+
+ # Create the configuration
+ gnusocial_installer=/var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs/scripts/install_cli.php
+ if [ ! -f $gnusocial_installer ]; then
+ echo $'No gnusocial commandline installer found'
+ exit 53026
+ fi
+ ${gnusocial_installer} --server "${GNUSOCIAL_SERVER}" \
+ --host="localhost" --database="gnusocial" \
+ --dbtype=mysql --username="root" -v \
+ --password="$MARIADB_PASSWORD" \
+ --sitename=$"GNU Social" --fancy='yes' \
+ --admin-nick="$MY_USERNAME" \
+ --admin-pass="$GNUSOCIAL_ADMIN_PASSWORD" \
+ --site-profile="community" \
+ --ssl=${gnusocial_ssl}
+ # There can be a lot of warnings here so the return value check is disabled
+ #if [ ! "$?" = "0" ]; then
+ # # failed to install
+ # echo $'Could not install GNU Social'
+ # exit 72357
+ #fi
+
+ # check gnusocial has a config file
+ gnusocial_config_file=/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+ if [ ! -f $gnusocial_config_file ]; then
+ echo $'Gnusocial config.php not found'
+ exit 87586
+ fi
+
+ # Some useful settings
+ if ! grep -q "Recommended GNU social settings" $gnusocial_config_file; then
+ echo "" >> $gnusocial_config_file
+ echo "// Recommended GNU social settings" >> $gnusocial_config_file
+ echo "\$config['thumbnail']['maxsize'] = 3000;" >> $gnusocial_config_file
+ echo "\$config['profile']['delete'] = true;" >> $gnusocial_config_file
+ echo "\$config['profile']['changenick'] = true;" >> $gnusocial_config_file
+ echo "\$config['public']['localonly'] = false;" >> $gnusocial_config_file
+ echo "addPlugin('StoreRemoteMedia');" >> $gnusocial_config_file
+ echo "\$config['queue']['enabled'] = true;" >> $gnusocial_config_file
+ echo "\$config['queue']['daemon'] = true;" >> $gnusocial_config_file
+ echo "\$config['ostatus']['hub_retries'] = 3;" >> $gnusocial_config_file
+ fi
+
+ # turn off logging
+ echo "\$config['site']['logfile'] = '/dev/null';" >> $gnusocial_config_file
+
+ # This improves performance
+ sed -i "s|//\$config\['db'\]\['schemacheck'\].*|\$config\['db'\]\['schemacheck'\] = 'script';|g" $gnusocial_config_file
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$GNUSOCIAL_DOMAIN_NAME" -g gnusocial --public no
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a gnusocial -p "$GNUSOCIAL_ADMIN_PASSWORD"
+
+ set_completion_param "gnusocial domain" "$GNUSOCIAL_DOMAIN_NAME"
+
+ install_completed gnusocial_main
+}
+
+function install_gnusocial_plugin_sharings {
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins ]; then
+ echo $'No local/plugins directory found for the gnusocial'
+ exit 72945
+ fi
+
+ apt-get -yq install liblocale-msgfmt-perl gettext
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins "gnusocial sharings plugin commit" "$SHARINGS_COMMIT" $SHARINGS_REPO
+
+ if [[ $(app_is_installed gnusocial_plugin_sharings) == "1" ]]; then
+ return
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins
+ function_check git_clone
+ git_clone $SHARINGS_REPO Sharings
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings ]; then
+ echo $'Unable to clone gnusocial sharings plugin'
+ exit 36738
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings
+ git stash
+ git checkout master
+ git branch -D $SHARINGS_COMMIT
+ git checkout $SHARINGS_COMMIT -b $SHARINGS_COMMIT
+
+ # enable the plugin
+ if ! grep -q "addPlugin('Sharings');" /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php; then
+ echo "addPlugin('Sharings');" >> /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ php scripts/checkschema.php
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings
+ php scripts/seedsharings.php
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ php scripts/checkschema.php
+
+ # Languages
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings/locale/en/LC_MESSAGES
+ msgfmt -o Sharings.mo Sharings.po
+ if [ ! -f Sharings.po ]; then
+ echo $'English translations for gnusocial sharings plugin were not created'
+ exit 84352
+ fi
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings/locale/en_GB/LC_MESSAGES
+ msgfmt -o Sharings.mo Sharings.po
+ if [ ! -f Sharings.po ]; then
+ echo $'English (GB) translations for gnusocial sharings plugin were not created'
+ exit 84352
+ fi
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings/locale/en_US/LC_MESSAGES
+ msgfmt -o Sharings.mo Sharings.po
+ if [ ! -f Sharings.po ]; then
+ echo $'English (US) translations for gnusocial sharings plugin were not created'
+ exit 84352
+ fi
+
+ # Looks like this update function isn't supported by the current php version
+ sed -i 's|ActivityVerb::UPDATE, ||g' /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Sharings/SharingsPlugin.php
+
+ chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+
+ set_completion_param gnusocial "sharings plugin commit" "$SHARINGS_COMMIT"
+ install_completed gnusocial_plugin_sharings
+}
+
+function install_gnusocial_plugin_sharings_theme {
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins ]; then
+ echo $'No local/plugins directory found for the gnusocial'
+ exit 74458
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins "gnusocial sharings theme plugin commit" "$SHARINGS_THEME_COMMIT" $SHARINGS_THEME_REPO
+
+ if [[ $(app_is_installed gnusocial_plugin_sharings_theme) == "1" ]]; then
+ return
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins
+ function_check git_clone
+ git_clone $SHARINGS_THEME_REPO SharingsTheme
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/SharingsTheme ]; then
+ echo $'Unable to clone gnusocial sharings plugin theme'
+ exit 639253
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/SharingsTheme
+ git stash
+ git checkout master
+ git branch -D $SHARINGS_THEME_COMMIT
+ git checkout $SHARINGS_THEME_COMMIT -b $SHARINGS_THEME_COMMIT
+
+ # enable the plugin
+ if ! grep -q "addPlugin('SharingsTheme');" /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php; then
+ echo "addPlugin('SharingsTheme');" >> /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ php scripts/checkschema.php
+
+ chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+
+ set_completion_param "gnusocial sharings plugin theme commit" "$SHARINGS_THEME_COMMIT"
+ install_completed gnusocial_plugin_sharings_theme
+}
+
+function expire_gnusocial_posts {
+ # To prevent the database size from growing endlessly this script expires posts
+ # after a number of months
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs ]; then
+ return
+ fi
+
+ echo ' $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo '// gnusocial post expiry script, based on StatExpire by Tony Baldwin' >> $gnusocial_expire_script
+ echo '// https://github.com/tonybaldwin/statexpire' >> $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo '$oldate=date(("Y-m-d"), strtotime("-3 months"));' >> $gnusocial_expire_script
+ echo '$username="root";' >> $gnusocial_expire_script
+ echo "\$password=shell_exec('${PROJECT_NAME}-pass -u root -a mariadb');" >> $gnusocial_expire_script
+ echo '$database="gnusocial";' >> $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo 'if (!$link = mysql_connect("localhost", $username, $password)) {' >> $gnusocial_expire_script
+ echo ' echo "Could not connect to mariadb";' >> $gnusocial_expire_script
+ echo ' exit;' >> $gnusocial_expire_script
+ echo '}' >> $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo 'if (!mysql_select_db($database, $link)) {' >> $gnusocial_expire_script
+ echo ' echo "Could not select gnusocial database";' >> $gnusocial_expire_script
+ echo ' exit;' >> $gnusocial_expire_script
+ echo '}' >> $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo "\$notice_query=\"DELETE FROM notice WHERE created <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_script
+ echo "\$conversation_query=\"DELETE FROM conversation WHERE created <= '$oldate 01:01:01'\";" >> $gnusocial_expire_script
+ echo "\$reply_query=\"DELETE FROM reply WHERE modified <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo 'mysql_query($notice_query);' >> $gnusocial_expire_script
+ echo '$rowaff1=mysql_affected_rows();' >> $gnusocial_expire_script
+ echo 'mysql_query($conversation_query);' >> $gnusocial_expire_script
+ echo '$rowaff2=mysql_affected_rows();' >> $gnusocial_expire_script
+ echo 'mysql_query($reply_query);' >> $gnusocial_expire_script
+ echo '$rowaff3=mysql_affected_rows();' >> $gnusocial_expire_script
+ echo 'mysql_close();' >> $gnusocial_expire_script
+ echo '' >> $gnusocial_expire_script
+ echo 'echo "Expire gnusocial posts: $rowaff1 notices, $rowaff2 conversations, and $rowaff3 replies deleted from database.\n";' >> $gnusocial_expire_script
+ chmod +x $gnusocial_expire_script
+
+ # Add a cron job
+ if ! grep -q "$gnusocial_expire_script" /etc/crontab; then
+ echo "10 3 5 * * root /usr/bin/timeout 500 /usr/bin/php $gnusocial_expire_script" >> /etc/crontab
+ fi
+
+ # remove old expire script
+ if [ -f /etc/cron.weekly/clear-gnusocial-database ]; then
+ rm /etc/cron.weekly/clear-gnusocial-database
+ fi
+}
+
+function install_gnusocial_theme {
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter "gnusocial theme commit" "$GNUSOCIAL_THEME_COMMIT" $GNUSOCIAL_THEME_REPO
+
+ # customise with project logo
+ if [ -f /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter/img/sprite.png ]; then
+ if [ -f ~/freedombone/img/gnusocial_sprite.png ]; then
+ cp ~/freedombone/img/gnusocial_sprite.png /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter/img/sprite.png
+ else
+ if [ -f /home/$MY_USERNAME/freedombone/img/gnusocial_sprite.png ]; then
+ cp /home/$MY_USERNAME/freedombone/img/gnusocial_sprite.png /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter/img/sprite.png
+ fi
+ fi
+ fi
+
+ if [[ $(app_is_installed gnusocial_theme) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install wget
+
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins ]; then
+ mkdir -p /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins
+ function_check git_clone
+ git_clone $GNUSOCIAL_THEME_REPO Qvitter
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter
+ git checkout $GNUSOCIAL_THEME_COMMIT -b $GNUSOCIAL_THEME_COMMIT
+
+ # download a custom background image
+ if [[ $(gnusocial_set_background_image_from_url) != "0" ]]; then
+ exit 356723
+ fi
+
+ if [ $GNUSOCIAL_BACKGROUND_IMAGE_URL ]; then
+ filename=$(basename "$GNUSOCIAL_BACKGROUND_IMAGE_URL")
+ GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT="${filename##*.}"
+ fi
+
+ gnusocial_config_file=/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+ if ! grep -q "addPlugin('Qvitter')" $gnusocial_config_file; then
+ GNUSOCIAL_WELCOME_MESSAGE=$(echo $GNUSOCIAL_WELCOME_MESSAGE | sed "s|\$GNUSOCIAL_DOMAIN_NAME|$GNUSOCIAL_DOMAIN_NAME|g")
+ echo "" >> $gnusocial_config_file
+ echo "// Qvitter settings" >> $gnusocial_config_file
+ echo "addPlugin('Qvitter');" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['enabledbydefault'] = true;" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['defaultbackgroundcolor'] = '#f4f4f4';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['defaultlinkcolor'] = '#0084B4';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['timebetweenpolling'] = 30000; // 30 secs" >> $gnusocial_config_file
+ if [[ $ONION_ONLY != 'no' ]]; then
+ echo "\$config['site']['qvitter']['urlshortenerapiurl'] = 'http://qttr.at/shortener.php';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['urlshortenersignature'] = 'b6afeec983';" >> $gnusocial_config_file
+ fi
+ if [ $GNUSOCIAL_BACKGROUND_IMAGE_URL ]; then
+ echo "\$config['site']['qvitter']['sitebackground'] = 'img/custom.${GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT}';" >> $gnusocial_config_file
+ else
+ echo "\$config['site']['qvitter']['sitebackground'] = 'img/vagnsmossen.jpg';" >> $gnusocial_config_file
+ fi
+ echo "\$config['site']['qvitter']['favicon'] = 'img/favicon.ico?v=4';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['sprite'] = Plugin::staticPath('Qvitter', '').'img/sprite.png?v=40';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['enablewelcometext'] = true;" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['customwelcometext']['en'] = '$GNUSOCIAL_WELCOME_MESSAGE';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['customwelcometext']['de'] = '$GNUSOCIAL_WELCOME_MESSAGE';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['customwelcometext']['fr'] = '$GNUSOCIAL_WELCOME_MESSAGE';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['customwelcometext']['es'] = '$GNUSOCIAL_WELCOME_MESSAGE';" >> $gnusocial_config_file
+ echo "\$config['site']['qvitter']['blocked_ips'] = array();" >> $gnusocial_config_file
+ else
+ if [ $GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT ]; then
+ if [ -f img/custom.${GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT} ]; then
+ sed -i "s|\$config['site']['qvitter']['sitebackground'].*|\$config['site']['qvitter']['sitebackground'] = 'img/custom.${GNUSOCIAL_BACKGROUND_IMAGE_URL_EXT}';|g" $gnusocial_config_file
+ fi
+ fi
+ fi
+
+ # customise with project logo
+ if [ -f /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter/img/sprite.png ]; then
+ if [ -f ~/freedombone/img/gnusocial_sprite.png ]; then
+ cp ~/freedombone/img/gnusocial_sprite.png /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/Qvitter/img/sprite.png
+ fi
+ fi
+
+ set_completion_param "gnusocial theme commit" "$GNUSOCIAL_THEME_COMMIT"
+
+ chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+
+ install_completed gnusocial_theme
+}
+
+function install_gnusocial_markdown {
+ GNUSOCIAL_PATH=/var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $GNUSOCIAL_PATH/local/plugins/Markdown "gnusocial Markdown commit" "$GNUSOCIAL_MARKDOWN_COMMIT" $GNUSOCIAL_MARKDOWN_REPO
+
+ if [[ $(app_is_installed gnusocial_markdown) == "1" ]]; then
+ return
+ fi
+
+ if [ -d $GNUSOCIAL_PATH/local/plugins/Markdown ]; then
+ rm -rf $GNUSOCIAL_PATH/local/plugins/Markdown
+ fi
+
+ if [ ! -d $GNUSOCIAL_PATH/local/plugins ]; then
+ mkdir -p $GNUSOCIAL_PATH/local/plugins
+ fi
+
+ cd $GNUSOCIAL_PATH/local/plugins
+ function_check git_clone
+ git_clone $GNUSOCIAL_MARKDOWN_REPO Markdown
+ cd $GNUSOCIAL_PATH/local/plugins/Markdown
+ git checkout $GNUSOCIAL_MARKDOWN_COMMIT -b $GNUSOCIAL_MARKDOWN_COMMIT
+
+ gnusocial_config_file=$GNUSOCIAL_PATH/config.php
+ if ! grep -q "addPlugin('Markdown'" $gnusocial_config_file; then
+ echo "" >> $gnusocial_config_file
+ echo "// Markdown settings" >> $gnusocial_config_file
+ echo "addPlugin('Markdown');" >> $gnusocial_config_file
+ fi
+
+ set_completion_param "gnusocial markdown commit" "$GNUSOCIAL_MARKDOWN_COMMIT"
+
+ chown -R www-data:www-data $GNUSOCIAL_PATH
+
+ install_completed gnusocial_markdown
+}
+
+function install_gnusocial_plugin_nsfw {
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins ]; then
+ echo $'No local/plugins directory found for the gnusocial'
+ exit 37252
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins "gnusocial NSFW plugin commit" "$GNUSOCIAL_NSFW_COMMIT" $GNUSOCIAL_NSFW_REPO
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins
+ function_check git_clone
+ git_clone $GNUSOCIAL_NSFW_REPO SensitiveContent
+ if [ ! -d /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/SensitiveContent ]; then
+ echo $'Unable to clone gnusocial NSFW plugin'
+ exit 36738
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins/SensitiveContent
+ git stash
+ git checkout master
+ git branch -D $GNUSOCIAL_NSFW_COMMIT
+ git checkout $GNUSOCIAL_NSFW_COMMIT -b $GNUSOCIAL_NSFW_COMMIT
+
+ # enable the plugin
+ if ! grep -q "addPlugin('SensitiveContent');" /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php; then
+ echo "addPlugin('SensitiveContent');" >> /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/config.php
+ fi
+
+ cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+ php scripts/checkschema.php
+
+ chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
+
+ set_completion_param "gnusocial NSFW plugin commit" "$GNUSOCIAL_NSFW_COMMIT"
+ install_completed gnusocial_plugin_nsfw
+}
+
+function install_gnusocial {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ install_gnusocial_main
+ expire_gnusocial_posts
+ install_gnusocial_theme
+ install_gnusocial_markdown
+ install_gnusocial_plugin_sharings
+ install_gnusocial_plugin_sharings_theme
+ install_gnusocial_plugin_nsfw
+
+ # unleash the daemons!
+ /etc/cron.hourly/gnusocial-daemons
+
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-app-gogs b/src/freedombone-app-gogs
new file mode 100755
index 00000000..df76b26d
--- /dev/null
+++ b/src/freedombone-app-gogs
@@ -0,0 +1,661 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Gogs functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='developer'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+GOGS_USERNAME='gogs'
+GOGS_VERSION='0.9.97'
+
+GIT_DOMAIN_NAME=
+GIT_CODE=
+GIT_ONION_PORT=8090
+GIT_ADMIN_PASSWORD=
+GOGS_BIN=
+
+gogs_variables=(ONION_ONLY
+ GOGS_COMMIT
+ GIT_ADMIN_PASSWORD
+ GIT_DOMAIN_NAME
+ GIT_CODE
+ GIT_ONION_PORT
+ MY_USERNAME
+ GOGS_VERSION
+ DDNS_PROVIDER
+ ARCHITECTURE)
+
+function change_password_gogs {
+ curr_username="$1"
+ new_user_password="$2"
+}
+
+function install_interactive_gogs {
+ if [[ $ONION_ONLY != "no" ]]; then
+ GIT_DOMAIN_NAME='gogs.local'
+ write_config_param "GIT_DOMAIN_NAME" "$GIT_DOMAIN_NAME"
+ else
+ function_check interactive_site_details
+ interactive_site_details git
+ fi
+ APP_INSTALLED=1
+}
+
+function configure_interactive_gogs {
+ dialog --title $"Gogs" \
+ --backtitle $"Freedombone Control Panel" \
+ --defaultno \
+ --yesno $"\nAllow registration of new users?" 10 60
+ sel=$?
+ case $sel in
+ 0)
+ sed -i "s|DISABLE_REGISTRATION =.*|DISABLE_REGISTRATION = false|g" /home/gogs/custom/conf/app.ini
+ sed -i "s|SHOW_REGISTRATION_BUTTON =.*|SHOW_REGISTRATION_BUTTON = true|g" /home/gogs/custom/conf/app.ini
+ ;;
+ 1)
+ sed -i "s|DISABLE_REGISTRATION =.*|DISABLE_REGISTRATION = true|g" /home/gogs/custom/conf/app.ini
+ sed -i "s|SHOW_REGISTRATION_BUTTON =.*|SHOW_REGISTRATION_BUTTON = false|g" /home/gogs/custom/conf/app.ini
+ ;;
+ 255) return;;
+ esac
+ systemctl restart gogs
+}
+
+function gogs_parameters {
+ if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then
+ CURR_ARCH=386
+ fi
+ if [[ ${ARCHITECTURE} == *"amd64" || ${ARCHITECTURE} == "x86_64" ]]; then
+ CURR_ARCH=amd64
+ fi
+ if [[ ${ARCHITECTURE} == *"arm"* ]]; then
+ CURR_ARCH=arm
+ fi
+ if [ ! ${CURR_ARCH} ]; then
+ echo $'No architecture specified'
+ ARCHITECTURE=$(uname -m)
+ if [[ ${ARCHITECTURE} == "arm"* ]]; then
+ CURR_ARCH=arm
+ fi
+ if [[ ${ARCHITECTURE} == "amd"* || ${ARCHITECTURE} == "x86_64" ]]; then
+ CURR_ARCH=amd64
+ fi
+ if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then
+ CURR_ARCH=386
+ fi
+ fi
+
+ GOGS_BIN="https://github.com/gogits/gogs/releases/download/v${GOGS_VERSION}/linux_${CURR_ARCH}.tar.gz"
+}
+
+function gogs_create_database {
+ if [ -f ${IMAGE_PASSWORD_FILE} ]; then
+ GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! ${GIT_ADMIN_PASSWORD} ]; then
+ GIT_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $GIT_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database gogs "$GOGS_ADMIN_PASSWORD"
+}
+
+function reconfigure_gogs {
+ echo -n ''
+}
+
+function upgrade_gogs {
+ if ! grep -q "gogs version:" $COMPLETION_FILE; then
+ return
+ fi
+
+ CURR_GOGS_VERSION=$(get_completion_param "gogs version")
+ if [[ "${CURR_GOGS_VERSION}" == "${GOGS_VERSION}" ]]; then
+ return
+ fi
+
+ gogs_parameters
+
+ if [ ! -d ${INSTALL_DIR} ]; then
+ mkdir -p ${INSTALL_DIR}
+ fi
+ cd ${INSTALL_DIR}
+ if [ -d ${INSTALL_DIR}/gogs ]; then
+ rm -rf ${INSTALL_DIR}/gogs
+ fi
+ GOGS_FILE=linux_${CURR_ARCH}.tar.gz
+ if [ ! -f ${GOGS_FILE} ]; then
+ wget ${GOGS_BIN}
+ fi
+ if [ ! -f ${GOGS_FILE} ]; then
+ GOGS_FILE=linux_${CURR_ARCH}.zip
+ GOGS_BIN="https://github.com/gogits/gogs/releases/download/v${GOGS_VERSION}/${GOGS_FILE}"
+ if [ ! -f ${GOGS_FILE} ]; then
+ wget ${GOGS_BIN}
+ fi
+ if [ ! -f ${GOGS_FILE} ]; then
+ exit 37836
+ else
+ apt-get -yq install unzip
+ unzip -o ${GOGS_FILE}
+ fi
+ else
+ tar -xzf ${INSTALL_DIR}/${GOGS_FILE}
+ fi
+ if [ ! -d ${INSTALL_DIR}/gogs ]; then
+ exit 37823
+ fi
+ rm -rf /home/${GOGS_USERNAME}/*
+ cp -r ${INSTALL_DIR}/gogs/* /home/${GOGS_USERNAME}
+ if [ -f ${GOGS_FILE} ]; then
+ rm ${GOGS_FILE}
+ fi
+
+ sed -i "s|gogs version.*|gogs version:$GOGS_VERSION|g" ${COMPLETION_FILE}
+ systemctl restart gogs
+}
+
+function backup_local_gogs {
+ if ! grep -q "gogs domain" ${COMPLETION_FILE}; then
+ return
+ fi
+
+ if [ ! -d /home/${GOGS_USERNAME}/gogs-repositories ]; then
+ return
+ fi
+
+ echo $"Backing up gogs"
+
+ function_check backup_database_to_usb
+ backup_database_to_usb gogs
+
+ function_check backup_directory_to_usb
+ backup_directory_to_usb /home/${GOGS_USERNAME}/custom gogs
+ backup_directory_to_usb /home/${GOGS_USERNAME}/gogs-repositories gogsrepos
+ backup_directory_to_usb /home/${GOGS_USERNAME}/.ssh gogsssh
+
+ echo $"Gogs backup complete"
+}
+
+function restore_local_gogs {
+ if ! grep -q "gogs domain" ${COMPLETION_FILE}; then
+ return
+ fi
+ if [ ! -d /home/${GOGS_USERNAME}/gogs-repositories ]; then
+ return
+ fi
+
+ if [ ${#GIT_DOMAIN_NAME} -gt 2 ]; then
+ function_check gogs_create_database
+ gogs_create_database
+
+ function_check restore_database
+ restore_database gogs ${GIT_DOMAIN_NAME}
+ temp_restore_dir=/root/tempgogs
+ if [ -d ${USB_MOUNT}/backup/gogs ]; then
+ echo $"Restoring Gogs settings"
+ if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
+ mkdir -p /home/${GOGS_USERNAME}/custom
+ fi
+ cp -r ${temp_restore_dir}/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 981
+ fi
+ echo $"Restoring Gogs repos"
+ function_check restore_directory_from_usb
+ restore_directory_from_usb ${temp_restore_dir}repos gogsrepos
+ cp -r ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 67574
+ fi
+ echo $"Restoring Gogs authorized_keys"
+ function_check restore_directory_from_usb
+ restore_directory_from_usb ${temp_restore_dir}ssh gogsssh
+ if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
+ mkdir /home/${GOGS_USERNAME}/.ssh
+ fi
+ cp -r ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 8463
+ fi
+ rm -rf ${temp_restore_dir}
+ rm -rf ${temp_restore_dir}repos
+ rm -rf ${temp_restore_dir}ssh
+ chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
+ fi
+ fi
+}
+
+function backup_remote_gogs {
+ if [ -d /home/$GOGS_USERNAME ]; then
+ function_check suspend_site
+ suspend_site ${GIT_DOMAIN_NAME}
+
+ function_check backup_database_to_friend
+ backup_database_to_friend $GOGS_USERNAME
+
+ echo $"Obtaining Gogs settings backup"
+
+ function_check backup_directory_to_friend
+ backup_directory_to_friend /home/$GOGS_USERNAME/custom gogs
+
+ echo $"Obtaining Gogs repos backup"
+
+ mv /home/$GOGS_USERNAME/gogs-repositories/*.git /home/$GOGS_USERNAME/gogs-repositories/bob
+ backup_directory_to_friend /home/$GOGS_USERNAME/gogs-repositories gogsrepos
+
+ echo $"Obtaining Gogs authorized_keys backup"
+
+ backup_directory_to_friend /home/$GOGS_USERNAME/.ssh gogsssh
+
+ function_check restart_site
+ restart_site
+
+ echo $"Gogs backup complete"
+ fi
+}
+
+function restore_remote_gogs {
+ if grep -q "gogs domain" $COMPLETION_FILE; then
+ GIT_DOMAIN_NAME=$(get_completion_param "gogs domain")
+
+ function_check gogs_create_database
+ gogs_create_database
+
+ function_check restore_database_from_friend
+ restore_database_from_friend gogs ${GIT_DOMAIN_NAME}
+ if [ -d ${SERVER_DIRECTORY}/backup/gogs ]; then
+ if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
+ mkdir -p /home/${GOGS_USERNAME}/custom
+ fi
+ cp -r /root/tempgogs/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom/
+ if [ ! "$?" = "0" ]; then
+ exit 58852
+ fi
+ echo $"Restoring Gogs repos"
+ restore_directory_from_friend /root/tempgogsrepos gogsrepos
+ cp -r /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
+ if [ ! "$?" = "0" ]; then
+ exit 7649
+ fi
+ echo $"Restoring Gogs authorized_keys"
+ restore_directory_from_friend /root/tempgogsssh gogsssh
+ if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
+ mkdir /home/${GOGS_USERNAME}/.ssh
+ fi
+ cp -r /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
+ if [ ! "$?" = "0" ]; then
+ exit 74239
+ fi
+ rm -rf /root/tempgogs
+ rm -rf /root/tempgogsrepos
+ rm -rf /root/tempgogsssh
+ chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
+ echo $"Restore of Gogs complete"
+ fi
+ fi
+}
+
+function remove_gogs {
+ if [ ${#GIT_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+ systemctl stop gogs
+ systemctl disable gogs
+ nginx_dissite ${GIT_DOMAIN_NAME}
+ remove_certs ${GIT_DOMAIN_NAME}
+ if [ -d /var/www/${GIT_DOMAIN_NAME} ]; then
+ rm -rf /var/www/${GIT_DOMAIN_NAME}
+ fi
+ if [ -f /etc/nginx/sites-available/${GIT_DOMAIN_NAME} ]; then
+ rm /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ fi
+ function_check drop_database
+ drop_database gogs
+ rm /etc/systemd/system/gogs.service
+ rm -rf /home/${GOGS_USERNAME}/*
+ remove_onion_service gogs ${GIT_ONION_PORT} 9418
+ remove_completion_param "install_gogs"
+ sed -i '/gogs /d' $COMPLETION_FILE
+ remove_backup_database_local gogs
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $GIT_DOMAIN_NAME
+}
+
+function install_gogs {
+ if [ ! $GIT_DOMAIN_NAME ]; then
+ return
+ fi
+
+ adduser --disabled-login --gecos 'Gogs' $GOGS_USERNAME
+
+ gogs_parameters
+
+ if [ ! -d ${INSTALL_DIR} ]; then
+ mkdir -p ${INSTALL_DIR}
+ fi
+ cd ${INSTALL_DIR}
+ if [ -d $INSTALL_DIR/gogs ]; then
+ rm -rf $INSTALL_DIR/gogs
+ fi
+ GOGS_FILE=linux_${CURR_ARCH}.tar.gz
+ if [ ! -f ${GOGS_FILE} ]; then
+ wget ${GOGS_BIN}
+ fi
+ if [ ! -f ${GOGS_FILE} ]; then
+ GOGS_FILE=linux_${CURR_ARCH}.zip
+ GOGS_BIN="https://github.com/gogits/gogs/releases/download/v${GOGS_VERSION}/${GOGS_FILE}"
+ wget ${GOGS_BIN}
+ if [ ! -f ${GOGS_FILE} ]; then
+ exit 37836
+ else
+ apt-get -yq install unzip
+ unzip -o ${GOGS_FILE}
+ fi
+ else
+ tar -xzf ${INSTALL_DIR}/${GOGS_FILE}
+ fi
+ if [ ! -d ${INSTALL_DIR}/gogs ]; then
+ exit 37823
+ fi
+ rm -rf /home/${GOGS_USERNAME}/*
+ cp -r ${INSTALL_DIR}/gogs/* /home/${GOGS_USERNAME}
+ if [ -f ${GOGS_FILE} ]; then
+ rm ${GOGS_FILE}
+ fi
+
+ if [ ! -f /home/${GOGS_USERNAME}/gogs ]; then
+ echo 'Gogs binary not installed'
+ exit 345562
+ fi
+
+ echo "export GOROOT=/home/go" >> /home/${GOGS_USERNAME}/.bashrc
+ echo "export GOPATH=\$GOROOT/go${GO_VERSION}/bin" >> /home/${GOGS_USERNAME}/.bashrc
+ echo 'export PATH=$PATH:$GOPATH' >> /home/${GOGS_USERNAME}/.bashrc
+ chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check gogs_create_database
+ gogs_create_database
+
+ if [ ! -f /home/${GOGS_USERNAME}/scripts/mysql.sql ]; then
+ echo $'MySql template for Gogs was not found'
+ exit 72528
+ fi
+
+ function_check initialise_database
+ initialise_database gogs /home/${GOGS_USERNAME}/scripts/mysql.sql
+
+ chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
+
+ echo '[Unit]' > /etc/systemd/system/gogs.service
+ echo 'Description=Gogs (Go Git Service)' >> /etc/systemd/system/gogs.service
+ echo 'After=syslog.target' >> /etc/systemd/system/gogs.service
+ echo 'After=network.target' >> /etc/systemd/system/gogs.service
+ echo 'After=mysqld.service' >> /etc/systemd/system/gogs.service
+ echo '' >> /etc/systemd/system/gogs.service
+ echo '[Service]' >> /etc/systemd/system/gogs.service
+ echo '#LimitMEMLOCK=infinity' >> /etc/systemd/system/gogs.service
+ echo '#LimitNOFILE=65535' >> /etc/systemd/system/gogs.service
+ echo 'Type=simple' >> /etc/systemd/system/gogs.service
+ echo 'User=gogs' >> /etc/systemd/system/gogs.service
+ echo 'Group=gogs' >> /etc/systemd/system/gogs.service
+ echo "WorkingDirectory=/home/${GOGS_USERNAME}" >> /etc/systemd/system/gogs.service
+ echo "ExecStart=/home/${GOGS_USERNAME}/gogs web" >> /etc/systemd/system/gogs.service
+ echo 'Restart=always' >> /etc/systemd/system/gogs.service
+ echo 'RestartSec=10' >> /etc/systemd/system/gogs.service
+ echo "Environment=\"USER=${GOGS_USERNAME}\" \"HOME=/home/${GOGS_USERNAME}\" \"GOPATH=/home/go/go${GO_VERSION}\"" >> /etc/systemd/system/gogs.service
+ echo '' >> /etc/systemd/system/gogs.service
+ echo '[Install]' >> /etc/systemd/system/gogs.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/gogs.service
+
+ systemctl enable gogs
+ systemctl daemon-reload
+ systemctl start gogs
+
+ if [ ! -d /var/www/${GIT_DOMAIN_NAME} ]; then
+ mkdir /var/www/${GIT_DOMAIN_NAME}
+ fi
+ if [ -d /var/www/${GIT_DOMAIN_NAME}/htdocs ]; then
+ rm -rf /var/www/${GIT_DOMAIN_NAME}/htdocs
+ fi
+
+ if [[ ${ONION_ONLY} == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect ${GIT_DOMAIN_NAME}
+ echo 'server {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' listen [::]:443 ssl;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " root /var/www/${GIT_DOMAIN_NAME}/htdocs;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " server_name ${GIT_DOMAIN_NAME};" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ function_check nginx_ssl
+ nginx_ssl ${GIT_DOMAIN_NAME}
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing ${GIT_DOMAIN_NAME}
+ echo ' add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' location / {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ function_check nginx_limits
+ nginx_limits ${GIT_DOMAIN_NAME} '10G'
+ echo ' proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' location = /robots.txt {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' allow all;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' log_not_found off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ nginx_keybase ${GIT_DOMAIN_NAME}
+ echo '}' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ else
+ echo -n '' > /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ fi
+ echo 'server {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " listen 127.0.0.1:${GIT_ONION_PORT} default_server;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " root /var/www/$GIT_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " server_name $GIT_DOMAIN_NAME;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing ${GIT_DOMAIN_NAME}
+ echo ' add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' location / {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ function_check nginx_limits
+ nginx_limits ${GIT_DOMAIN_NAME} '10G'
+ echo ' proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' location = /robots.txt {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' allow all;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' log_not_found off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+ nginx_keybase ${GIT_DOMAIN_NAME}
+ echo '}' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
+
+ function_check configure_php
+ configure_php
+
+ function_check create_site_certificate
+ create_site_certificate ${GIT_DOMAIN_NAME} 'yes'
+
+ nginx_ensite ${GIT_DOMAIN_NAME}
+
+ if [ ! -d /var/lib/tor ]; then
+ echo $'No Tor installation found. Gogs onion site cannot be configured.'
+ exit 877367
+ fi
+ if ! grep -q "hidden_service_gogs" /etc/tor/torrc; then
+ echo 'HiddenServiceDir /var/lib/tor/hidden_service_gogs/' >> /etc/tor/torrc
+ echo "HiddenServicePort 80 127.0.0.1:${GIT_ONION_PORT}" >> /etc/tor/torrc
+ echo "HiddenServicePort 9418 127.0.0.1:9418" >> /etc/tor/torrc
+ echo $'Added onion site for Gogs'
+ fi
+
+ onion_update
+
+ function_check wait_for_onion_service
+ wait_for_onion_service 'gogs'
+
+ GIT_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_gogs/hostname)
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ set_completion_param "gogs domain" "$GIT_DOMAIN_NAME"
+ set_completion_param "gogs onion domain" "$GIT_ONION_HOSTNAME"
+
+ function_check add_ddns_domain
+ add_ddns_domain ${GIT_DOMAIN_NAME}
+
+ # obtain the secret key
+ GOGS_SECRET_KEY="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a gogs -p "*"
+
+ # create the configuration
+ GOGS_CONFIG_PATH=/home/${GOGS_USERNAME}/custom/conf
+ if [ ! -d ${GOGS_CONFIG_PATH} ]; then
+ mkdir -p ${GOGS_CONFIG_PATH}
+ fi
+ GOGS_CONFIG_FILE=${GOGS_CONFIG_PATH}/app.ini
+ echo "RUN_USER = $GOGS_USERNAME" > ${GOGS_CONFIG_FILE}
+ echo 'RUN_MODE = prod' >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[database]' >> ${GOGS_CONFIG_FILE}
+ echo 'DB_TYPE = mysql' >> ${GOGS_CONFIG_FILE}
+ echo 'HOST = 127.0.0.1:3306' >> ${GOGS_CONFIG_FILE}
+ echo 'NAME = gogs' >> ${GOGS_CONFIG_FILE}
+ echo 'USER = root' >> ${GOGS_CONFIG_FILE}
+ echo "PASSWD = $MARIADB_PASSWORD" >> ${GOGS_CONFIG_FILE}
+ echo 'SSL_MODE = disable' >> ${GOGS_CONFIG_FILE}
+ echo 'PATH = data/gogs.db' >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[repository]' >> ${GOGS_CONFIG_FILE}
+ echo "ROOT = /home/$GOGS_USERNAME/gogs-repositories" >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[server]' >> ${GOGS_CONFIG_FILE}
+ if [[ ${ONION_ONLY} == 'no' ]]; then
+ echo "DOMAIN = ${GIT_DOMAIN_NAME}" >> ${GOGS_CONFIG_FILE}
+ echo "ROOT_URL = https://$GIT_DOMAIN_NAME/" >> ${GOGS_CONFIG_FILE}
+ else
+ echo "DOMAIN = ${GIT_ONION_HOSTNAME}" >> ${GOGS_CONFIG_FILE}
+ echo "ROOT_URL = http://$GIT_DOMAIN_NAME/" >> ${GOGS_CONFIG_FILE}
+ fi
+ echo 'HTTP_PORT = 3000' >> ${GOGS_CONFIG_FILE}
+ echo "SSH_PORT = $SSH_PORT" >> ${GOGS_CONFIG_FILE}
+ echo 'SSH_DOMAIN = %(DOMAIN)s' >> ${GOGS_CONFIG_FILE}
+ echo "CERT_FILE = /etc/ssl/certs/${GIT_DOMAIN_NAME}.pem" >> ${GOGS_CONFIG_FILE}
+ echo "KEY_FILE = /etc/ssl/private/${GIT_DOMAIN_NAME}.key" >> ${GOGS_CONFIG_FILE}
+ echo 'DISABLE_ROUTER_LOG = true' >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[session]' >> ${GOGS_CONFIG_FILE}
+ echo 'PROVIDER = file' >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[log]' >> ${GOGS_CONFIG_FILE}
+ echo 'MODE = file' >> ${GOGS_CONFIG_FILE}
+ echo 'LEVEL = Info' >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[security]' >> ${GOGS_CONFIG_FILE}
+ echo 'INSTALL_LOCK = true' >> ${GOGS_CONFIG_FILE}
+ echo "SECRET_KEY = $GOGS_SECRET_KEY" >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[service]' >> ${GOGS_CONFIG_FILE}
+ echo 'DISABLE_REGISTRATION = false' >> ${GOGS_CONFIG_FILE}
+ echo 'SHOW_REGISTRATION_BUTTON = true' >> ${GOGS_CONFIG_FILE}
+ echo 'REQUIRE_SIGNIN_VIEW = false' >> ${GOGS_CONFIG_FILE}
+ echo 'ENABLE_CAPTCHA = false' >> ${GOGS_CONFIG_FILE}
+ echo '' >> ${GOGS_CONFIG_FILE}
+ echo '[other]' >> ${GOGS_CONFIG_FILE}
+ echo 'SHOW_FOOTER_BRANDING = false' >> ${GOGS_CONFIG_FILE}
+ echo 'SHOW_FOOTER_VERSION = false' >> ${GOGS_CONFIG_FILE}
+
+ chmod 750 ${GOGS_CONFIG_FILE}
+ chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
+
+ systemctl restart gogs
+
+ if ! grep -q "gogs domain:" ${COMPLETION_FILE}; then
+ echo "gogs domain:${GIT_DOMAIN_NAME}" >> ${COMPLETION_FILE}
+ else
+ sed -i "s|gogs domain.*|gogs domain:${GIT_DOMAIN_NAME}|g" ${COMPLETION_FILE}
+ fi
+
+ function_check configure_firewall_for_git
+ configure_firewall_for_git
+ if ! grep -q "gogs version:" ${COMPLETION_FILE}; then
+ echo "gogs version:${GOGS_VERSION}" >> ${COMPLETION_FILE}
+ else
+ sed -i "s|gogs version.*|gogs version:${GOGS_VERSION}|g" ${COMPLETION_FILE}
+ fi
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-htmly b/src/freedombone-app-htmly
new file mode 100755
index 00000000..14d22e27
--- /dev/null
+++ b/src/freedombone-app-htmly
@@ -0,0 +1,643 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Htmly functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS="full full-vim writer"
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+HTMLY_DOMAIN_NAME=
+HTMLY_CODE=
+HTMLY_ONION_PORT=8086
+HTMLY_REPO="https://github.com/danpros/htmly"
+HTMLY_COMMIT='bf5fe9486160be4da86d8987d3e5c977e1dc6d32'
+HTMLY_TITLE="My Blog"
+HTMLY_SUBTITLE="Another ${PROJECT_NAME} blog"
+
+htmly_variables=(HTMLY_REPO
+ HTMLY_COMMIT
+ HTMLY_DOMAIN_NAME
+ HTMLY_CODE
+ HTMLY_TITLE
+ HTMLY_SUBTITLE
+ ONION_ONLY
+ DDNS_PROVIDER
+ MY_USERNAME)
+
+function set_avatar_from_url {
+ AVATAR="$1"
+
+ read_config_param "HTMLY_DOMAIN_NAME"
+ BASE_DIR=/var/www/$HTMLY_DOMAIN_NAME/htdocs
+
+ if [ ! -d $BASE_DIR/customimages ]; then
+ mkdir $BASE_DIR/customimages
+ fi
+
+ # download the image
+ cd $BASE_DIR/customimages
+ # convert to png
+ wget $AVATAR -O avatar
+ if [[ $AVATAR == *".gif" ]]; then
+ mv avatar avatar.gif
+ mogrify -format png avatar.gif
+ fi
+ if [[ $AVATAR == *".jpg" ]]; then
+ mv avatar avatar.jpg
+ mogrify -format png avatar.jpg
+ fi
+ if [[ $AVATAR == *".jpeg" ]]; then
+ mv avatar avatar.jpeg
+ mogrify -format png avatar.jpeg
+ fi
+ if [ -f avatar ]; then
+ mv avatar avatar.png
+ fi
+
+ # standard size
+ mogrify -resize 150x150 avatar.png
+ if [ ! -f $BASE_DIR/customimages/avatar.png ]; then
+ echo $'Avatar image could not be downloaded'
+ return
+ fi
+ chown -R www-data:www-data $BASE_DIR/customimages
+ AVATAR_SET=1
+}
+
+function remove_user_htmly {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp htmly
+
+ if [ -f /var/www/${HTMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini ]; then
+ rm /var/www/${HTMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini
+ fi
+}
+
+function add_user_htmly {
+ if [[ $(app_is_installed htmly) == "0" ]]; then
+ echo '0'
+ return
+ fi
+
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a htmly -p "$new_user_password"
+
+ if [ ! -d /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users ]; then
+ echo '2'
+ return
+ fi
+ NEW_USER_PASSWORD_HASH=$(${PROJECT_NAME}-sec --htmlyhash "$new_user_password")
+ if [ ${#NEW_USER_PASSWORD_HASH} -lt 8 ]; then
+ echo '3'
+ return
+ fi
+ echo ';Password' > /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo 'encryption = password_hash' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo ';Role' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo 'role = admin' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo '0'
+}
+
+function configure_interactive_htmly {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Change htmly avatar" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $"Enter a URL for an image. It should be approximately a square image." 8 75 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ IMAGE_URL=$(<$data)
+ if [ ${#IMAGE_URL} -gt 5 ]; then
+ clear
+ AVATAR_SET=
+ set_avatar_from_url $IMAGE_URL
+ if [ $AVATAR_SET ]; then
+ dialog --title $"Change htmly avatar" \
+ --msgbox $"Your htmly avatar has been changed" 6 40
+ fi
+ fi
+ ;;
+ esac
+}
+
+function install_interactive_htmly {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ HTMLY_TITLE='My Htmly Blog'
+ HTMLY_DOMAIN_NAME='htmly.local'
+ write_config_param "HTMLY_TITLE" "$HTMLY_TITLE"
+ write_config_param "HTMLY_DOMAIN_NAME" "$HTMLY_DOMAIN_NAME"
+ else
+ function_check interactive_site_details_with_title
+ interactive_site_details_with_title "htmly" "HTMLY_TITLE" "HTMLY_DOMAIN_NAME" "HTMLY_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function change_password_htmly {
+ set_completion_param "htmly domain" "$HTMLY_DOMAIN_NAME"
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+
+ HTMLY_USERNAME="$1"
+ HTMLY_PASSWORD="$2"
+ if [ ${#HTMLY_PASSWORD} -lt 8 ]; then
+ echo $'Htmly password is too short'
+ return
+ fi
+ ${PROJECT_NAME}-pass -u "$HTMLY_USERNAME" -a htmly -p "$HTMLY_PASSWORD"
+ HTMLY_PASSWORD_HASH=$(${PROJECT_NAME}-sec --htmlyhash "$HTMLY_PASSWORD")
+ if [ ${#HTMLY_PASSWORD_HASH} -lt 8 ]; then
+ echo $'Htmly admin password could not be hashed'
+ exit 625728
+ fi
+ sed -i "s|password =.*|password = $HTMLY_PASSWORD_HASH|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$HTMLY_USERNAME.ini
+}
+
+function reconfigure_htmly {
+ echo -n ''
+}
+
+function upgrade_htmly {
+ read_config_param "HTMLY_DOMAIN_NAME"
+
+ function_check set_repo_commit
+ set_repo_commit /var/www/$HTMLY_DOMAIN_NAME/htdocs "htmly commit" "$HTMLY_COMMIT" $HTMLY_REPO
+}
+
+function backup_local_htmly {
+ HTMLY_DOMAIN_NAME='htmly.local'
+ if grep -q "htmly domain" $COMPLETION_FILE; then
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+ fi
+
+ source_directory=/var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ if [ -d $source_directory ]; then
+ dest_directory=htmly
+ function_check suspend_site
+ suspend_site ${HTMLY_DOMAIN_NAME}
+
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+
+ function_check restart_site
+ restart_site
+ fi
+}
+
+function restore_local_htmly {
+ HTMLY_DOMAIN_NAME='htmly.local'
+ if grep -q "htmly domain" $COMPLETION_FILE; then
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+ fi
+ if [ $HTMLY_DOMAIN_NAME ]; then
+ temp_restore_dir=/root/temphtmly
+ if [ -d $USB_MOUNT/backup/htmly ]; then
+ restore_directory_from_usb $temp_restore_dir htmly
+ else
+ restore_directory_from_usb $temp_restore_dir blog
+ fi
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
+ rm -rf /var/www/${HTMLY_DOMAIN_NAME}/previous
+ fi
+ mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/previous
+ fi
+ temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
+ cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
+ if [ ! "$?" = "0" ]; then
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
+ mv /var/www/${HTMLY_DOMAIN_NAME}/previous /var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ fi
+ set_user_permissions
+ backup_unmount_drive
+ exit 54675
+ fi
+ rm -rf ${temp_restore_dir}
+ if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content ]; then
+ echo $"No content directory found after restoring htmly"
+ set_user_permissions
+ backup_unmount_drive
+ exit 34578
+ fi
+ chown -R www-data:www-data /var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${HTMLY_DOMAIN_NAME}.crt|${HTMLY_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${HTMLY_DOMAIN_NAME}
+ fi
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post ]; then
+ mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/*.md /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post
+ fi
+ fi
+ done
+ if [ -d /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${HTMLY_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.pem
+ fi
+ fi
+}
+
+function backup_remote_htmly {
+ if grep -q "htmly domain" $COMPLETION_FILE; then
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+ temp_backup_dir=/var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ echo $"Backing up htmly"
+ backup_directory_to_friend $temp_backup_dir htmly
+ echo $"Backup of htmly complete"
+ else
+ echo $"Htmly domain specified but not found in $temp_backup_dir"
+ exit 2578
+ fi
+ fi
+}
+
+function restore_remote_htmly {
+ if [ -d $SERVER_DIRECTORY/backup/htmly ]; then
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+ echo $"Restoring htmly installation $HTMLY_DOMAIN_NAME"
+ temp_restore_dir=/root/temphtmly
+ mkdir $temp_restore_dir
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir htmly
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs ]; then
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
+ rm -rf /var/www/${HTMLY_DOMAIN_NAME}/previous
+ fi
+ mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/previous
+ fi
+ temp_source_dir=$(find ${temp_restore_dir} -name htdocs)
+ cp -r ${temp_source_dir} /var/www/${HTMLY_DOMAIN_NAME}/
+ if [ ! "$?" = "0" ]; then
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/previous ]; then
+ mv /var/www/${HTMLY_DOMAIN_NAME}/previous /var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ fi
+ exit 593
+ fi
+ rm -rf ${temp_restore_dir}
+ if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content ]; then
+ echo $"No content directory found after restoring htmly"
+ exit 287
+ fi
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${HTMLY_DOMAIN_NAME}.crt|${HTMLY_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${HTMLY_DOMAIN_NAME}
+ fi
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post ]; then
+ mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/*.md /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post
+ fi
+ fi
+ done
+ if [ -d /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${HTMLY_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.pem
+ fi
+ echo $"Restore of htmly complete"
+ fi
+}
+
+function remove_htmly {
+ if [ ${#HTMLY_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+
+ read_config_param "HTMLY_DOMAIN_NAME"
+ nginx_dissite $HTMLY_DOMAIN_NAME
+ remove_certs ${HTMLY_DOMAIN_NAME}
+ if [ -f /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME ]; then
+ rm -f /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ fi
+ if [ -d /var/www/$HTMLY_DOMAIN_NAME ]; then
+ rm -rf /var/www/$HTMLY_DOMAIN_NAME
+ fi
+ remove_config_param HTMLY_DOMAIN_NAME
+ remove_config_param HTMLY_CODE
+ function_check remove_onion_service
+ remove_onion_service htmly ${HTMLY_ONION_PORT}
+ remove_completion_param "install_htmly"
+ sed -i '/Htmly/d' $COMPLETION_FILE
+ sed -i '/htmly/d' $COMPLETION_FILE
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $HTMLY_DOMAIN_NAME
+}
+
+function install_htmly_social_networks {
+ # set social networks
+ if grep -q "social.hubzilla" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini; then
+ sed -i "s|;social.hubzilla|social.hubzilla|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|social.hubzilla.*|social.hubzilla = \"$HUBZILLA_DOMAIN_NAME\"|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ fi
+ if grep -q "social.gnusocial" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini; then
+ sed -i "s|;social.gnusocial|social.gnusocial|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|social.gnusocial.*|social.gnusocial = \"$MICROHTMLY_DOMAIN_NAME\"|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ fi
+
+ # clear proprietary social network strings
+ sed -i 's|social.facebook.*|social.facebook = ""|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|social.twitter.*|social.twitter = ""|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|social.google.*|social.google = ""|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+}
+
+function install_htmly_user {
+ # create a user password
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ HTMLY_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ HTMLY_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+
+ # create a user
+ HTMLY_ADMIN_PASSWORD_HASH=$(${PROJECT_NAME}-sec --htmlyhash "$HTMLY_ADMIN_PASSWORD")
+ if [ ${#HTMLY_ADMIN_PASSWORD_HASH} -lt 8 ]; then
+ echo $'Htmly admin password could not be hashed'
+ exit 625728
+ fi
+ echo ';Password' > /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo "password = $HTMLY_ADMIN_PASSWORD_HASH" >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo 'encryption = password_hash' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo ';Role' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo 'role = admin' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+}
+
+function install_htmly_settings {
+ cp /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini.example /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|site.url.*|site.url = '/'|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|blog.title.*|blog.title = \"$HTMLY_TITLE\"|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|blog.tagline.*|blog.tagline = \"$HTMLY_SUBTITLE\"|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|timezone.*|timezone = "Europe/London"|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|Your name|$MY_NAME|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+}
+
+function install_htmly_website {
+ function_check nginx_http_redirect
+ nginx_http_redirect $HTMLY_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' listen [::]:443 ssl;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " root /var/www/$HTMLY_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " server_name $HTMLY_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ function_check nginx_ssl
+ nginx_ssl $HTMLY_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $HTMLY_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $HTMLY_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ nginx_keybase ${HTMLY_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+}
+
+function install_htmly_website_onion {
+ echo 'server {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " listen 127.0.0.1:${HTMLY_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " root /var/www/$HTMLY_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " server_name $HTMLY_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $HTMLY_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $HTMLY_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ nginx_keybase ${HTMLY_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $HTMLY_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+}
+
+function install_htmly_from_repo {
+ if [ ! -d /var/www/$HTMLY_DOMAIN_NAME ]; then
+ mkdir /var/www/$HTMLY_DOMAIN_NAME
+ fi
+
+ cd /var/www/$HTMLY_DOMAIN_NAME
+ git_clone $HTMLY_REPO htdocs
+ cd htdocs
+ git checkout $HTMLY_COMMIT -b $HTMLY_COMMIT
+ set_completion_param "htmly commit" "$HTMLY_COMMIT"
+}
+
+function install_htmly {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [ ! $HTMLY_DOMAIN_NAME ]; then
+ echo $'The htmly domain name was not specified'
+ exit 5062
+ fi
+
+ # for the avatar changing command
+ apt-get -yq install imagemagick
+
+ function_check install_htmly_from_repo
+ install_htmly_from_repo
+
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check install_htmly_website
+ install_htmly_website
+ else
+ echo -n '' > /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ fi
+ function_check install_htmly_website_onion
+ install_htmly_website_onion
+
+ function_check create_site_certificate
+ create_site_certificate $HTMLY_DOMAIN_NAME 'yes'
+
+ function_check configure_php
+ configure_php
+
+ function_check install_htmly_settings
+ install_htmly_settings
+
+ function_check install_htmly_social_networks
+ install_htmly_social_networks
+
+ function_check install_htmly_user
+ install_htmly_user
+
+ chown -R www-data:www-data /var/www/$HTMLY_DOMAIN_NAME/htdocs
+
+ HTMLY_ONION_HOSTNAME=$(add_onion_service htmly 80 ${HTMLY_ONION_PORT})
+
+ function_check nginx_ensite
+ nginx_ensite $HTMLY_DOMAIN_NAME
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a htmly -p "$HTMLY_ADMIN_PASSWORD"
+
+ function_check add_ddns_domain
+ add_ddns_domain $HTMLY_DOMAIN_NAME
+
+ set_completion_param "htmly domain" "$HTMLY_DOMAIN_NAME"
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-hubzilla b/src/freedombone-app-hubzilla
new file mode 100755
index 00000000..01e8efcd
--- /dev/null
+++ b/src/freedombone-app-hubzilla
@@ -0,0 +1,598 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Hubzilla application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim social'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+HUBZILLA_DOMAIN_NAME=
+HUBZILLA_CODE=
+HUBZILLA_ONION_PORT=8085
+HUBZILLA_REPO="https://github.com/redmatrix/hubzilla.git"
+HUBZILLA_THEMES_REPO="https://github.com/DeadSuperHero/redmatrix-themes"
+HUBZILLA_ADDONS_REPO="https://github.com/redmatrix/hubzilla-addons.git"
+HUBZILLA_ADMIN_PASSWORD=
+HUBZILLA_COMMIT='fb7692cf9c9a78d8a9ab39ee0926d864397f390d'
+HUBZILLA_ADDONS_COMMIT='bd48ec8a9ce5208ce8e3ab1be88aaf1d8ac6ccf6'
+
+hubzilla_variables=(ONION_ONLY
+ HUBZILLA_DOMAIN_NAME
+ HUBZILLA_CODE
+ DDNS_PROVIDER
+ MY_USERNAME
+ HUBZILLA_REPO
+ HUBZILLA_COMMIT
+ HUBZILLA_ADDONS_REPO
+ HUBZILLA_ADDONS_COMMIT)
+
+function remove_user_hubzilla {
+ remove_username="$1"
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp hubzilla
+}
+
+function add_user_hubzilla {
+ if [[ $(app_is_installed hubzilla) == "0" ]]; then
+ echo '0'
+ return
+ fi
+
+ new_username="$1"
+ new_user_password="$2"
+ ${PROJECT_NAME}-pass -u $new_username -a hubzilla -p "$new_user_password"
+ echo '0'
+}
+
+function hubzilla_renew_cert {
+ dialog --title $"Renew SSL certificate" \
+ --backtitle $"Freedombone Control Panel" \
+ --yesno $"\nThis will renew a letsencrypt certificate. Select 'yes' to continue" 16 60
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ HUBZILLA_DOMAIN_NAME=$(get_completion_param "hubzilla domain")
+ if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
+ dialog --title $"Renew SSL certificate" \
+ --msgbox $"Hubzilla install directory not found" 6 40
+ return
+ fi
+ ${PROJECT_NAME}-renew-cert -h $HUBZILLA_DOMAIN_NAME -p 'letsencrypt'
+ if [ ! "$?" = "0" ]; then
+ any_key
+ else
+ dialog --title $"Renew SSL certificate" \
+ --msgbox $"Hubzilla certificate has been renewed" 6 40
+ fi
+}
+
+function hubzilla_channel_directory_server {
+ if ! grep -q "hubzilla domain" $COMPLETION_FILE; then
+ dialog --title $"Hubzilla channel directory server" \
+ --msgbox $"Hubzilla is not installed on this system" 6 40
+ return
+ fi
+ HUBZILLA_DOMAIN_NAME=$(get_completion_param "hubzilla domain")
+ if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
+ dialog --title $"Hubzilla channel directory server" \
+ --msgbox $"Hubzilla install directory not found" 6 40
+ return
+ fi
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Hubzilla channel directory server" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $"When you click on 'channel directory' this is where Hubzilla will obtain its list from" 8 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ hubzilla_domain_server=$(<$data)
+ if [[ $hubzilla_domain_server != *"."* ]]; then
+ return
+ fi
+ if [[ $hubzilla_domain_server != "https"* ]]; then
+ dialog --title $"Hubzilla channel directory server" \
+ --msgbox $"Invalid domain - include the https://" 6 40
+ return
+ fi
+ ./var/www/$HUBZILLA_DOMAIN_NAME/htdocs/util/config system directory_server $hubzilla_domain_server
+ dialog --title $"Hubzilla channel directory server" \
+ --msgbox $"Domain channel directory server changed to $hubzilla_domain_server" 6 40
+ ;;
+ esac
+}
+
+function configure_interactive_hubzilla {
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"Hubzilla" \
+ --radiolist $"Choose an operation:" 13 70 4 \
+ 1 $"Set channel directory server" off \
+ 2 $"Renew SSL certificate" off \
+ 3 $"Back to main menu" on 2> $data
+ sel=$?
+ case $sel in
+ 1) break;;
+ 255) break;;
+ esac
+ case $(cat $data) in
+ 1) hubzilla_channel_directory_server;;
+ 2) hubzilla_renew_cert;;
+ 3) break;;
+ esac
+ done
+}
+
+function install_interactive_hubzilla {
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ function_check interactive_site_details
+ interactive_site_details hubzilla
+
+ APP_INSTALLED=1
+}
+
+function change_password_hubzilla {
+ HUBZILLA_USERNAME="$1"
+ HUBZILLA_PASSWORD="$2"
+ if [ ${#HUBZILLA_PASSWORD} -lt 8 ]; then
+ echo $'Hubzilla password is too short'
+ return
+ fi
+ # TODO: This doesn't actually change the password
+ #${PROJECT_NAME}-pass -u $HUBZILLA_USERNAME -a hubzilla -p "$HUBZILLA_PASSWORD"
+}
+
+function hubzilla_create_database {
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ HUBZILLA_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ fi
+ if [ ! $HUBZILLA_ADMIN_PASSWORD ]; then
+ HUBZILLA_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a hubzilla -p "$HUBZILLA_ADMIN_PASSWORD"
+ if [ ! $HUBZILLA_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database hubzilla "$HUBZILLA_ADMIN_PASSWORD"
+}
+
+function reconfigure_hubzilla {
+ echo -n ''
+}
+
+function upgrade_hubzilla {
+ HUBZILLA_PATH=/var/www/$HUBZILLA_DOMAIN_NAME/htdocs
+
+ function_check set_repo_commit
+ set_repo_commit $HUBZILLA_PATH "hubzilla commit" "$HUBZILLA_COMMIT" $HUBZILLA_REPO
+ set_repo_commit $HUBZILLA_PATH/addon "hubzilla addons commit" "$HUBZILLA_ADDONS_COMMIT" $HUBZILLA_ADDONS_REPO
+ if [ -d $HUBZILLA_PATH/redmatrix-themes1 ]; then
+ cd $HUBZILLA_PATH/redmatrix-themes1
+ git merge --abort
+ git stash
+ git pull
+ cp -r $HUBZILLA_PATH/redmatrix-themes1/* $HUBZILLA_PATH/view/theme/
+ chown -R www-data:www-data $HUBZILLA_PATH
+ fi
+}
+
+function backup_local_hubzilla {
+ hubzilla_path=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
+ if [ -d $hubzilla_path ]; then
+ function_check backup_database_to_usb
+ backup_database_to_usb hubzilla
+
+ backup_directory_to_usb $hubzilla_path hubzilla
+ fi
+}
+
+function restore_local_hubzilla {
+ temp_restore_dir=/root/temphubzilla
+ hubzilla_dir=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
+
+ function_check hubzilla_create_database
+ hubzilla_create_database
+
+ restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
+ if [ -d $USB_MOUNT/backup/hubzilla ]; then
+ if [ ! -d $hubzilla_dir/store/[data]/smarty3 ]; then
+ mkdir -p $hubzilla_dir/store/[data]/smarty3
+ fi
+ chmod 777 $hubzilla_dir/store/[data]/smarty3
+ chown -R www-data:www-data $hubzilla_dir/*
+ if [ -d $temp_restore_dir ]; then
+ rm -rf $temp_restore_dir
+ fi
+ fi
+}
+
+function backup_remote_hubzilla {
+ temp_backup_dir=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ suspend_site ${HUBZILLA_DOMAIN_NAME}
+ backup_database_to_friend hubzilla
+ echo "Backing up Hubzilla installation"
+ backup_directory_to_friend $temp_backup_dir hubzilla
+ restart_site
+ echo "Backup of Hubzilla complete"
+ else
+ echo $"Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}"
+ exit 2578
+ fi
+}
+
+function restore_remote_hubzilla {
+ function_check restore_database_from_friend
+
+ function_check hubzilla_create_database
+ hubzilla_create_database
+
+ restore_database_from_friend hubzilla ${HUBZILLA_DOMAIN_NAME}
+ if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then
+ if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
+ mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
+ fi
+ chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
+ chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
+ fi
+ if [ -d /root/temphubzilla ]; then
+ rm -rf /root/temphubzilla
+ fi
+}
+
+function remove_hubzilla {
+ if [ ${#HUBZILLA_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+ nginx_dissite $HUBZILLA_DOMAIN_NAME
+ remove_certs ${HUBZILLA_DOMAIN_NAME}
+ if [ -d /var/www/$HUBZILLA_DOMAIN_NAME ]; then
+ rm -rf /var/www/$HUBZILLA_DOMAIN_NAME
+ fi
+ if [ -f /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME ]; then
+ rm /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ fi
+ function_check drop_database
+ drop_database hubzilla
+ function_check remove_onion_service
+ remove_onion_service hubzilla ${HUBZILLA_ONION_PORT}
+ sed -i '/hubzilla/d' $COMPLETION_FILE
+ sed -i '/poller.php/d' /etc/crontab
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $HUBZILLA_DOMAIN_NAME
+}
+
+function install_hubzilla {
+ if [ ! $HUBZILLA_DOMAIN_NAME ]; then
+ return
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ HUBZILLA_PATH=/var/www/$HUBZILLA_DOMAIN_NAME/htdocs
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check repair_databases_script
+ repair_databases_script
+
+ apt-get -yq install php5-common php5-cli php5-curl php5-gd php5-mysql php5-mcrypt git
+ apt-get -yq install php5-dev imagemagick php5-imagick
+ apt-get -yq install php5-memcached
+
+ if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME ]; then
+ mkdir /var/www/$HUBZILLA_DOMAIN_NAME
+ fi
+ if [ ! -d $HUBZILLA_PATH ]; then
+ mkdir $HUBZILLA_PATH
+ fi
+
+ if [ ! -f $HUBZILLA_PATH/index.php ]; then
+ cd $INSTALL_DIR
+ function_check git_clone
+ git_clone $HUBZILLA_REPO hubzilla
+ git checkout $HUBZILLA_COMMIT -b $HUBZILLA_COMMIT
+ set_completion_param "hubzilla commit" "$HUBZILLA_COMMIT"
+
+ rm -rf $HUBZILLA_PATH
+ mv hubzilla $HUBZILLA_PATH
+
+ git_clone $HUBZILLA_ADDONS_REPO $HUBZILLA_PATH/addon
+ cd $HUBZILLA_PATH/addon
+ git checkout $HUBZILLA_ADDONS_COMMIT -b $HUBZILLA_ADDONS_COMMIT
+ set_completion_param "hubzilla addons commit" "$HUBZILLA_ADDONS_COMMIT"
+
+ # some extra themes
+ git_clone $HUBZILLA_THEMES_REPO $HUBZILLA_PATH/redmatrix-themes1
+ cp -r $HUBZILLA_PATH/redmatrix-themes1/* $HUBZILLA_PATH/view/theme/
+
+ chown -R www-data:www-data $HUBZILLA_PATH
+ fi
+
+ HUBZILLA_ONION_HOSTNAME=
+ if [[ $ONION_ONLY != "no" ]]; then
+ HUBZILLA_ONION_HOSTNAME=$(add_onion_service hubzilla 80 ${HUBZILLA_ONION_PORT})
+ fi
+
+ hubzilla_create_database
+
+ if ! grep -q "$HUBZILLA_PATH" /etc/crontab; then
+ echo "12,22,32,42,52 * * * * root cd $HUBZILLA_PATH; /usr/bin/timeout 500 /usr/bin/php include/poller.php" >> /etc/crontab
+ fi
+
+ function_check add_ddns_domain
+ add_ddns_domain $HUBZILLA_DOMAIN_NAME
+
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect $HUBZILLA_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' listen [::]:443 ssl;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " root $HUBZILLA_PATH;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " server_name $HUBZILLA_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ function_check nginx_ssl
+ nginx_ssl $HUBZILLA_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $HUBZILLA_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $HUBZILLA_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ nginx_keybase ${HUBZILLA_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $HUBZILLA_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_read_timeout 300;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ else
+ echo 'server {' > /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " listen 127.0.0.1:${HUBZILLA_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " root $HUBZILLA_PATH;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " server_name $HUBZILLA_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ nginx_limits $HUBZILLA_DOMAIN_NAME
+ nginx_disable_sniffing $HUBZILLA_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ nginx_keybase ${HUBZILLA_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ nginx_limits $HUBZILLA_DOMAIN_NAME
+ nginx_disable_sniffing $HUBZILLA_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' fastcgi_read_timeout 300;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
+ fi
+
+ function_check configure_php
+ configure_php
+
+ function_check create_site_certificate
+ create_site_certificate $HUBZILLA_DOMAIN_NAME 'yes'
+
+ if [ ! -d $HUBZILLA_PATH/view/tpl/smarty3 ]; then
+ mkdir $HUBZILLA_PATH/view/tpl/smarty3
+ fi
+ if [ ! -d "$HUBZILLA_PATH/store" ]; then
+ mkdir "$HUBZILLA_PATH/store"
+ fi
+ if [ ! -d "$HUBZILLA_PATH/store/[data]" ]; then
+ mkdir "$HUBZILLA_PATH/store/[data]"
+ fi
+ if [ ! -d "$HUBZILLA_PATH/store/[data]/smarty3" ]; then
+ mkdir "$HUBZILLA_PATH/store/[data]/smarty3"
+ chmod 777 "$HUBZILLA_PATH/store/[data]/smarty3"
+ fi
+ chmod 777 $HUBZILLA_PATH/view/tpl
+ chown -R www-data:www-data "$HUBZILLA_PATH/store"
+ chmod 777 $HUBZILLA_PATH/view/tpl/smarty3
+
+ # Ensure that the database gets backed up locally, if remote
+ # backups are not being used
+ function_check backup_databases_script_header
+ backup_databases_script_header
+
+ function_check backup_database_local
+ backup_database_local hubzilla
+
+ chown -R www-data:www-data $HUBZILLA_PATH
+
+ function_check nginx_ensite
+ nginx_ensite $HUBZILLA_DOMAIN_NAME
+
+ # initialize the database
+ if [ ! -f $HUBZILLA_PATH/install/schema_mysql.sql ]; then
+ echo $'No database schema found for hubzilla'
+ exit 252782
+ fi
+ function_check initialise_database
+ initialise_database hubzilla $HUBZILLA_PATH/install/schema_mysql.sql
+
+ # create the config file
+ echo ' $HUBZILLA_PATH/.htconfig.php
+ echo "\$db_host = 'localhost';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$db_port = '0';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$db_user = 'root';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$db_pass = '${MARIADB_PASSWORD}';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$db_data = 'hubzilla';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$db_type = '0';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$default_timezone = 'Europe/London';" >> $HUBZILLA_PATH/.htconfig.php
+ if [[ $ONION_ONLY == 'no' ]]; then
+ echo "\$a->config['system']['baseurl'] = 'https://${HUBZILLA_DOMAIN_NAME}';" >> $HUBZILLA_PATH/.htconfig.php
+ else
+ echo "\$a->config['system']['baseurl'] = 'http://${HUBZILLA_ONION_HOSTNAME}';" >> $HUBZILLA_PATH/.htconfig.php
+ fi
+ echo "\$a->config['system']['sitename'] = \"Hubzilla\";" >> $HUBZILLA_PATH/.htconfig.php
+ HUBZILLA_LOCATION_HASH="$(create_password 30)"
+ echo "\$a->config['system']['location_hash'] = '${HUBZILLA_LOCATION_HASH}';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['register_policy'] = REGISTER_OPEN;" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['register_text'] = '';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['admin_email'] = '${MY_EMAIL_ADDRESS}';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['verify_email'] = 1;" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['access_policy'] = ACCESS_PRIVATE;" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['sellpage'] = '';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['max_import_size'] = 200000;" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['php_path'] = '/usr/bin/php';" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;" >> $HUBZILLA_PATH/.htconfig.php
+ echo "\$a->config['system']['theme'] = 'redbasic';" >> $HUBZILLA_PATH/.htconfig.php
+ chown www-data:www-data $HUBZILLA_PATH/.htconfig.php
+ chmod 755 $HUBZILLA_PATH/.htconfig.php
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+ systemctl restart cron
+
+ ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$HUBZILLA_DOMAIN_NAME" -g hubzilla --public no
+
+ set_completion_param "hubzilla domain" "${HUBZILLA_DOMAIN_NAME}"
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-app-ipfs b/src/freedombone-app-ipfs
new file mode 100755
index 00000000..d85eca3b
--- /dev/null
+++ b/src/freedombone-app-ipfs
@@ -0,0 +1,584 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# ipfs functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+IPFS_GO_REPO_BASE="github.com/ipfs/go-ipfs"
+IPFS_GO_REPO='https://github.com/ipfs/go-ipfs'
+IPFS_COMMIT='6fdfaaf6e4783ae1be7b348e7a6bc0640982c7df'
+IPFS_PORT=4001
+IPFS_NODE_VERSION='6.2.2'
+IPFS_N_VERSION='2.1.4'
+IPFS_JS_VERSION='0.14.3'
+IPFS_JS_RONIN_VERSION='0.3.11'
+IPFS_KEY_LENGTH=2048
+IPFS_GO_VERSION=0.4.2
+
+ipfs_variables=(IPFS_COMMIT
+ IPFS_GO_VERSION
+ IPFS_KEY_LENGTH
+ IPFS_PORT)
+
+function install_interactive_ipfs {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_ipfs {
+ echo -n ''
+}
+
+function upgrade_ipfs_go {
+ if [[ $(app_is_installed ipfs_go) == "0" ]]; then
+ return
+ fi
+
+ function_check set_repo_commit
+ set_repo_commit $GOPATH/src/github.com/ipfs/go-ipfs "ipfs commit" "$IPFS_COMMIT" $IPFS_REPO
+}
+
+function upgrade_ipfs_js {
+ if [[ $(app_is_installed ipfs_js) == "0" ]]; then
+ return
+ fi
+
+ npm cache clean -f
+ npm install -g n
+ n ${IPFS_NODE_VERSION}
+ npm install ronin@${IPFS_JS_RONIN_VERSION} --global
+ npm install ipfs@${IPFS_JS_VERSION} --global
+}
+
+function upgrade_ipfs {
+ upgrade_ipfs_js
+ upgrade_ipfs_go
+}
+
+function backup_local_ipfs {
+ if ! grep -q "Admin user" $COMPLETION_FILE; then
+ return
+ fi
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
+ source_directory=/home/$ADMIN_USERNAME/.ipfs
+ if [ -d $source_directory ]; then
+ dest_directory=ipfs
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ fi
+}
+
+function restore_local_ipfs {
+ if ! grep -q "Admin user" $COMPLETION_FILE; then
+ return
+ fi
+ if [ -d $USB_MOUNT/backup/ipfs ]; then
+ echo $"Restoring IPFS"
+ temp_restore_dir=/root/tempipfs
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir ipfs
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
+ cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 27627
+ fi
+ rm -rf $temp_restore_dir
+ echo $"Restore of IPFS complete"
+ fi
+}
+
+function backup_remote_ipfs {
+ if ! grep -q "Admin user" $COMPLETION_FILE; then
+ return
+ fi
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
+ if [ -d /home/$ADMIN_USERNAME/.ipfs ]; then
+ echo $"Backing up IPFS"
+ backup_directory_to_friend /home/$ADMIN_USERNAME/.ipfs ipfs
+ echo $"Backup of IPFS complete"
+ fi
+}
+
+function restore_remote_ipfs {
+ if [ -d $SERVER_DIRECTORY/backup/ipfs ]; then
+ echo $"Restoring IPFS"
+ temp_restore_dir=/root/tempipfs
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir ipfs
+ cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+ rm -rf $temp_restore_dir
+ exit 276357
+ fi
+ rm -rf $temp_restore_dir
+ echo $"Restore of IPFS complete"
+ fi
+}
+
+function remove_ipfs_go {
+ systemctl stop ipfs
+ systemctl disable ipfs
+ systemctl daemon-reload
+ rm /etc/systemd/system/ipfs.service
+ rm -rf $GOPATH/src/github.com/ipfs
+ firewall_remove $IPFS_PORT tcp
+ remove_completion_param install_ipfs
+ remove_completion_param configure_firewall_for_ipfs
+ sed -i '/ipfs/d' $COMPLETION_FILE
+}
+
+function remove_ipfs_js {
+ systemctl stop ipfs
+ systemctl disable ipfs
+ rm /etc/systemd/system/ipfs.service
+ systemctl daemon-reload
+
+ npm uninstall ipfs --global
+ npm uninstall ronin --global
+
+ firewall_remove $IPFS_PORT tcp
+ sed -i '/install_ipfs/d' $COMPLETION_FILE
+ sed -i '/ipfs/d' $COMPLETION_FILE
+ sed -i '/configure_firewall_for_ipfs/d' $COMPLETION_FILE
+}
+
+function remove_ipfs {
+ remove_ipfs_js
+ remove_ipfs_go
+}
+
+function configure_firewall_for_ipfs {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ firewall_add IPFS $IPFS_PORT tcp
+ mark_completed $FUNCNAME
+}
+
+function mesh_install_ipfs_js {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ chroot ${rootdir} apt-get -yq install nodejs
+ chroot ${rootdir} apt-get -yq install npm curl
+ chroot ${rootdir} apt-get -yq install libpam0g-dev fuse
+
+ if [ ! -f ${rootdir}/usr/bin/nodejs ]; then
+ echo $'nodejs was not installed'
+ exit 63962
+ fi
+
+ cat < ${rootdir}/root/install-ipfs.sh
+#!/bin/bash
+PATH="/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin"
+NODE_PATH="/usr/lib/node_modules"
+cp /usr/bin/nodejs /usr/local/bin/node
+cp /usr/bin/nodejs /usr/bin/node
+/usr/bin/curl -0 -L https://npmjs.org/install.sh | sh
+npm install -g n@${IPFS_N_VERSION} --save
+n ${IPFS_NODE_VERSION}
+npm install -g ronin@${IPFS_JS_RONIN_VERSION} --save
+npm install -g ipfs@${IPFS_JS_VERSION} --save
+exit 0
+EOF
+ chroot ${rootdir} /bin/chmod +x /root/install-ipfs.sh
+ chroot ${rootdir} /root/install-ipfs.sh
+ rm -f ${rootdir}/root/install-ipfs.sh
+
+ IPFS_PATH=/usr/bin
+
+ if [ ! -f ${rootdir}$IPFS_PATH/jsipfs ]; then
+ exit 637292
+ fi
+
+ # directories to mount to
+ if [ ! -d ${rootdir}/ipfs ]; then
+ chroot ${rootdir} /bin/mkdir /ipfs
+ chroot ${rootdir} /bin/mkdir /ipns
+ chroot ${rootdir} /bin/chown $MY_USERNAME:$MY_USERNAME /ipfs
+ chroot ${rootdir} /bin/chown $MY_USERNAME:$MY_USERNAME /ipns
+ fi
+
+ if [ -f ${rootdir}/etc/fuse.conf ]; then
+ chroot ${rootdir} /bin/chown $MY_USERNAME:$MY_USERNAME /etc/fuse.conf
+ fi
+ if [ -f ${rootdir}/dev/fuse ]; then
+ chroot ${rootdir} /bin/chown $MY_USERNAME:$MY_USERNAME /dev/fuse
+ fi
+
+ IPFS_DAEMON_NAME=ipfs
+ IPFS_DAEMON_FILE=${rootdir}/etc/systemd/system/${IPFS_DAEMON_NAME}.service
+ echo '[Unit]' > $IPFS_DAEMON_FILE
+ echo 'Description=IPFS javascript daemon' >> $IPFS_DAEMON_FILE
+ echo 'After=syslog.target' >> $IPFS_DAEMON_FILE
+ echo 'After=network.target' >> $IPFS_DAEMON_FILE
+ echo '' >> $IPFS_DAEMON_FILE
+ echo '[Service]' >> $IPFS_DAEMON_FILE
+ echo 'Type=simple' >> $IPFS_DAEMON_FILE
+ echo "User=$MY_USERNAME" >> $IPFS_DAEMON_FILE
+ echo "Group=$MY_USERNAME" >> $IPFS_DAEMON_FILE
+ echo "WorkingDirectory=/home/$MY_USERNAME" >> $IPFS_DAEMON_FILE
+ echo "ExecStart=${IPFS_PATH}/jsipfs daemon --mount" >> $IPFS_DAEMON_FILE
+ echo 'Restart=on-failure' >> $IPFS_DAEMON_FILE
+ echo "Environment=\"USER=$MY_USERNAME\" \"HOME=/home/$MY_USERNAME\"" >> $IPFS_DAEMON_FILE
+ echo '' >> $IPFS_DAEMON_FILE
+ echo '[Install]' >> $IPFS_DAEMON_FILE
+ echo 'WantedBy=multi-user.target' >> $IPFS_DAEMON_FILE
+
+ chroot ${rootdir} systemctl enable ${IPFS_DAEMON_NAME}
+
+ mark_completed $FUNCNAME
+}
+
+function install_ipfs_js {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_ipfs_js
+ return
+ fi
+ if [[ $(app_is_installed ipfs_js) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install nodejs
+ apt-get -yq install npm
+ apt-get -yq install libpam0g-dev fuse
+
+ if [ ! -f /usr/bin/nodejs ]; then
+ echo $'nodejs was not installed'
+ exit 63962
+ fi
+
+ cp /usr/bin/nodejs /usr/local/bin/node
+ cp /usr/bin/nodejs /usr/bin/node
+ /usr/bin/curl -0 -L https://npmjs.org/install.sh | sh
+ /usr/local/bin/npm install -g n@${IPFS_N_VERSION}
+ /usr/local/bin/n ${IPFS_NODE_VERSION}
+ /usr/local/bin/npm install -g ronin@${IPFS_JS_RONIN_VERSION}
+ /usr/local/bin/npm install -g ipfs@${IPFS_JS_VERSION}
+
+ IPFS_PATH=/usr/bin
+
+ if [ ! -f $IPFS_PATH/jsipfs ]; then
+ exit 637292
+ fi
+
+ # initialise
+ su -c "$IPFS_PATH/jsipfs init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
+ if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
+ echo "IPFS could not be initialised for user $MY_USERNAME"
+ exit 7358
+ fi
+
+ # directories to mount to
+ if [ ! -d /ipfs ]; then
+ mkdir /ipfs
+ mkdir /ipns
+ chown $MY_USERNAME:$MY_USERNAME /ipfs
+ chown $MY_USERNAME:$MY_USERNAME /ipns
+ fi
+
+ if [ -f /etc/fuse.conf ]; then
+ chown $MY_USERNAME:$MY_USERNAME /etc/fuse.conf
+ fi
+ if [ -f /dev/fuse ]; then
+ chown $MY_USERNAME:$MY_USERNAME /dev/fuse
+ fi
+
+ IPFS_DAEMON_NAME=ipfs
+ IPFS_DAEMON_FILE=/etc/systemd/system/${IPFS_DAEMON_NAME}.service
+ echo '[Unit]' > $IPFS_DAEMON_FILE
+ echo 'Description=IPFS javascript daemon' >> $IPFS_DAEMON_FILE
+ echo 'After=syslog.target' >> $IPFS_DAEMON_FILE
+ echo 'After=network.target' >> $IPFS_DAEMON_FILE
+ echo '' >> $IPFS_DAEMON_FILE
+ echo '[Service]' >> $IPFS_DAEMON_FILE
+ echo 'Type=simple' >> $IPFS_DAEMON_FILE
+ echo "User=$MY_USERNAME" >> $IPFS_DAEMON_FILE
+ echo "Group=$MY_USERNAME" >> $IPFS_DAEMON_FILE
+ echo "WorkingDirectory=/home/$MY_USERNAME" >> $IPFS_DAEMON_FILE
+ echo "ExecStart=${IPFS_PATH}/jsipfs daemon --mount" >> $IPFS_DAEMON_FILE
+ echo 'Restart=on-failure' >> $IPFS_DAEMON_FILE
+ echo "Environment=\"USER=$MY_USERNAME\" \"HOME=/home/$MY_USERNAME\"" >> $IPFS_DAEMON_FILE
+ echo '' >> $IPFS_DAEMON_FILE
+ echo '[Install]' >> $IPFS_DAEMON_FILE
+ echo 'WantedBy=multi-user.target' >> $IPFS_DAEMON_FILE
+
+ systemctl enable ${IPFS_DAEMON_NAME}
+ systemctl daemon-reload
+ systemctl restart ${IPFS_DAEMON_NAME}
+
+ if [ -d /etc/avahi ]; then
+ su -c "echo $($IPFS_PATH/jsipfs id | grep '\"ID\":' | awk -F '\"' '{print $4}') > /tmp/ipfsid" - $MY_USERNAME
+ if [ ! -f /tmp/ipfsid ]; then
+ echo 'No IPFS identity was created'
+ exit 37895
+ fi
+ IPFS_PEER_ID=$(cat /tmp/ipfsid)
+ if [ ${#IPFS_PEER_ID} -lt 10 ]; then
+ echo 'Invalid IPFS peer ID'
+ echo "$IPFS_PEER_ID"
+ exit 74782
+ fi
+ rm /tmp/ipfsid
+ fi
+
+ function_check configure_firewall_for_ipfs
+ configure_firewall_for_ipfs
+
+ install_completed ipfs_js
+}
+
+function mesh_install_ipfs_go {
+ chroot ${rootdir} apt-get -yq install libpam0g-dev fuse wget
+
+ mesh_upgrade_golang
+
+ IPFS_ARCH=
+ IPFS_PATH=/usr/bin
+
+ if [ ! -d $rootdir$INSTALL_DIR/ipfs ]; then
+ mkdir -p $rootdir$INSTALL_DIR/ipfs
+ fi
+ cd $rootdir$INSTALL_DIR/ipfs
+
+ if [[ $ARCHITECTURE == *"386" || $ARCHITECTURE == *"686" ]]; then
+ IPFS_ARCH=386
+ fi
+ if [[ $ARCHITECTURE == *"amd64" || $ARCHITECTURE == "x86_64" ]]; then
+ IPFS_ARCH=amd64
+ fi
+ if [[ $ARCHITECTURE == *"arm"* ]]; then
+ IPFS_ARCH=arm
+ fi
+ if [ ! $IPFS_ARCH ]; then
+ echo $'No architecture specified'
+ ARCHITECTURE=$(uname -m)
+ if [[ $ARCHITECTURE == "arm"* ]]; then
+ IPFS_ARCH=arm
+ fi
+ if [[ $ARCHITECTURE == "amd"* || $ARCHITECTURE == "x86_64" ]]; then
+ IPFS_ARCH=amd64
+ fi
+ if [[ $ARCHITECTURE == *"386" || $ARCHITECTURE == *"686" ]]; then
+ IPFS_ARCH=386
+ fi
+ fi
+
+ IPFS_FILE=go-ipfs_v${IPFS_GO_VERSION}_linux-${IPFS_ARCH}.tar.gz
+ wget https://ipfs.io/ipns/dist.ipfs.io/go-ipfs/v${IPFS_GO_VERSION}/${IPFS_FILE}
+ if [ ! -f $rootdir$INSTALL_DIR/ipfs/${IPFS_FILE} ]; then
+ echo $'IPFS package could not be downloaded'
+ exit 63725
+ fi
+ tar -xzvf ${IPFS_FILE}
+ if [ ! -f $rootdir$INSTALL_DIR/ipfs/go-ipfs/ipfs ]; then
+ echo $"ipfs was not found in downloaded package"
+ exit 638235
+ fi
+ chroot "$rootdir" /bin/cp $INSTALL_DIR/ipfs/go-ipfs/ipfs $IPFS_PATH
+ if [ ! -f $rootdir$IPFS_PATH/ipfs ]; then
+ echo $'IPFS was not installed'
+ exit 63722
+ fi
+
+ IPFS_USER_DAEMON=${rootdir}/home/${MY_USERNAME}/.config/systemd/user/ipfs.service
+ mkdir -p ${rootdir}/home/${MY_USERNAME}/.config/systemd/user
+
+ echo '[Unit]' > $IPFS_USER_DAEMON
+ echo 'Description=IPFS go daemon' >> $IPFS_USER_DAEMON
+ echo '' >> $IPFS_USER_DAEMON
+ echo '[Service]' >> $IPFS_USER_DAEMON
+ echo "ExecStart=$IPFS_PATH/ipfs daemon" >> $IPFS_USER_DAEMON
+ echo 'Restart=on-failure' >> $IPFS_USER_DAEMON
+ echo 'RestartSec=10' >> $IPFS_USER_DAEMON
+ echo '' >> $IPFS_USER_DAEMON
+ echo '[Install]' >> $IPFS_USER_DAEMON
+ echo 'WantedBy=default.target' >> $IPFS_USER_DAEMON
+ chroot ${rootdir} /bin/chown -R $MY_USERNAME:$MY_USERNAME /home/${MY_USERNAME}/.config
+}
+
+function install_ipfs_go {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_ipfs_go
+ return
+ fi
+ if [[ $(app_is_installed ipfs_go) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install golang libpam0g-dev fuse
+
+ if [ ! -d /home/git ]; then
+ # add a gogs user account
+ adduser --disabled-login --gecos 'Gogs' git
+
+ # install Go
+ if ! grep -q "export GOPATH=" ~/.bashrc; then
+ echo "export GOPATH=$GOPATH" >> ~/.bashrc
+ else
+ sed -i "s|export GOPATH=.*|export GOPATH=$GOPATH|g" ~/.bashrc
+ fi
+ systemctl set-environment GOPATH=$GOPATH
+ if ! grep -q "systemctl set-environment GOPATH=" ~/.bashrc; then
+ echo "systemctl set-environment GOPATH=$GOPATH" >> ~/.bashrc
+ else
+ sed -i "s|systemctl set-environment GOPATH=.*|systemctl set-environment GOPATH=$GOPATH|g" ~/.bashrc
+ fi
+ if [ ! -d $GOPATH ]; then
+ mkdir -p $GOPATH
+ fi
+ fi
+
+ IPFS_PATH=$GOPATH/bin
+ export PATH="$GOPATH/bin:$PATH:"
+ if ! grep -q 'GOPATH/bin' ~/.bashrc; then
+ echo 'export PATH="$GOPATH/bin:$PATH:";' >> ~/.bashrc
+ else
+ sed -i "s|systemctl set-environment GOPATH=.*|systemctl set-environment GOPATH=$GOPATH|g" ~/.bashrc
+ fi
+
+ # set gopath for the user
+ if ! grep -q "GOPATH=" /home/$MY_USERNAME/.bashrc; then
+ echo "export GOPATH=$GOPATH" >> /home/$MY_USERNAME/.bashrc
+ echo 'export PATH="$GOPATH/bin:$PATH:";' >> /home/$MY_USERNAME/.bashrc
+ else
+ sed -i "s|export GOPATH=.*|export GOPATH=$GOPATH|g" /home/$MY_USERNAME/.bashrc
+ fi
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.bashrc
+
+ go get -u ${IPFS_GO_REPO_BASE}/cmd/ipfs
+ if [ ! "$?" = "0" ]; then
+ exit 8242
+ fi
+
+ if [ ! -d $GOPATH/src/$IPFS_GO_REPO_BASE ]; then
+ echo $'go get failed to get ipfs'
+ exit 63923
+ fi
+
+ cd $GOPATH/src/$IPFS_GO_REPO_BASE
+ git checkout $IPFS_COMMIT -b $IPFS_COMMIT
+ if [ ! "$?" = "0" ]; then
+ exit 735639
+ fi
+
+ set_completion_param "ipfs commit" "$IPFS_COMMIT"
+
+ make install
+ if [ ! "$?" = "0" ]; then
+ exit 547242
+ fi
+
+ # initialise
+ su -c "$IPFS_PATH/ipfs init -b 4096" - $MY_USERNAME
+ if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
+ echo "IPFS could not be initialised for user $MY_USERNAME"
+ exit 7358
+ fi
+
+ # directories to mount to
+ if [ ! -d /ipfs ]; then
+ mkdir /ipfs
+ mkdir /ipns
+ chown $MY_USERNAME:$MY_USERNAME /ipfs
+ chown $MY_USERNAME:$MY_USERNAME /ipns
+ fi
+
+ if [ -f /etc/fuse.conf ]; then
+ chown $MY_USERNAME:$MY_USERNAME /etc/fuse.conf
+ fi
+ if [ -f /dev/fuse ]; then
+ chown $MY_USERNAME:$MY_USERNAME /dev/fuse
+ fi
+
+ echo '[Unit]' > /etc/systemd/system/ipfs.service
+ echo 'Description=IPFS go daemon' >> /etc/systemd/system/ipfs.service
+ echo 'After=syslog.target' >> /etc/systemd/system/ipfs.service
+ echo 'After=network.target' >> /etc/systemd/system/ipfs.service
+ echo '' >> /etc/systemd/system/ipfs.service
+ echo '[Service]' >> /etc/systemd/system/ipfs.service
+ echo 'Type=simple' >> /etc/systemd/system/ipfs.service
+ echo "User=$MY_USERNAME" >> /etc/systemd/system/ipfs.service
+ echo "Group=$MY_USERNAME" >> /etc/systemd/system/ipfs.service
+ echo "WorkingDirectory=/home/$MY_USERNAME" >> /etc/systemd/system/ipfs.service
+ echo "ExecStart=$IPFS_PATH/ipfs daemon --mount" >> /etc/systemd/system/ipfs.service
+ echo 'Restart=on-failure' >> /etc/systemd/system/ipfs.service
+ echo "Environment=\"USER=$MY_USERNAME\" \"HOME=/home/$MY_USERNAME\" \"GOPATH=$GOPATH\" \"GVM_ROOT=$GVM_HOME\"" >> /etc/systemd/system/ipfs.service
+ echo '' >> /etc/systemd/system/ipfs.service
+ echo '[Install]' >> /etc/systemd/system/ipfs.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/ipfs.service
+
+ systemctl enable ipfs
+ systemctl daemon-reload
+ systemctl restart ipfs
+
+ if [ -d /etc/avahi ]; then
+ su -c "echo $($IPFS_PATH/ipfs id | grep '\"ID\":' | awk -F '\"' '{print $4}') > /tmp/ipfsid" - $MY_USERNAME
+ if [ ! -f /tmp/ipfsid ]; then
+ echo 'No IPFS identity was created'
+ exit 37895
+ fi
+ IPFS_PEER_ID=$(cat /tmp/ipfsid)
+ if [ ${#IPFS_PEER_ID} -lt 10 ]; then
+ echo 'Invalid IPFS peer ID'
+ echo "$IPFS_PEER_ID"
+ exit 74782
+ fi
+ # Add an avahi service
+ function_check create_avahi_service
+ create_avahi_service ipfs_id "ipfs_id" 'udp' $IPFS_PORT "$IPFS_PEER_ID:none"
+ rm /tmp/ipfsid
+ fi
+
+ function_check configure_firewall_for_ipfs
+ configure_firewall_for_ipfs
+
+ install_completed ipfs_go
+}
+
+function install_ipfs {
+ #install_ipfs_js
+ install_ipfs_go
+ APP_INSTALLED=1
+}
diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc
new file mode 100755
index 00000000..643ad0d6
--- /dev/null
+++ b/src/freedombone-app-irc
@@ -0,0 +1,672 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# IRC server application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim chat'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+IRC_BOUNCER_PORT=6697
+IRC_ONION_PORT=8098
+IRC_PORT=6698
+
+# An optional password to log into IRC. This applies to all users
+IRC_PASSWORD=
+
+# Number of entries for the bouncer to buffer
+IRC_BUFFER_LENGTH=300
+
+irc_variables=(MY_USERNAME
+ MY_NAME
+ IRC_PORT
+ IRC_BOUNCER_PORT
+ IRC_ONION_HOSTNAME
+ IRC_OPERATOR_PASSWORD
+ DEFAULT_DOMAIN_NAME
+ INSTALLED_WITHIN_DOCKER
+ IRC_BUFFER_LENGTH
+ ONION_ONLY)
+
+function irc_get_global_password {
+ echo $(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
+}
+
+function start_irc_bouncer {
+ update_default_domain
+ if [ ! -f /home/znc/.znc/znc.pem ]; then
+ # no certificate exists
+ su -c 'znc -p' - znc
+ else
+ # an existing certificate is being used
+ su -c 'znc' - znc
+ fi
+}
+
+function stop_irc_bouncer {
+ pkill znc
+}
+
+function create_irssi_config {
+ new_username="$1"
+
+ read_config_param IRC_BOUNCER_PORT
+ read_config_param IRC_ONION_PORT
+ IRC_PASSWORD=$(irc_get_global_password)
+
+ new_name="$2"
+ if [ ${#new_name} -eq 0 ]; then
+ new_name="$new_username"
+ fi
+
+ echo 'servers = (' > /home/${new_username}/.irssi/config
+ echo ' {' >> /home/${new_username}/.irssi/config
+ echo ' address = "chat.freenode.net";' >> /home/${new_username}/.irssi/config
+ echo ' chatnet = "Freenode";' >> /home/${new_username}/.irssi/config
+ echo ' port = "6667";' >> /home/${new_username}/.irssi/config
+ echo ' autoconnect = "no";' >> /home/${new_username}/.irssi/config
+ echo ' },' >> /home/${new_username}/.irssi/config
+ echo ' {' >> /home/${new_username}/.irssi/config
+ echo ' address = "irc.oftc.net";' >> /home/${new_username}/.irssi/config
+ echo ' chatnet = "OFTC";' >> /home/${new_username}/.irssi/config
+ echo ' port = "6667";' >> /home/${new_username}/.irssi/config
+ echo ' autoconnect = "no";' >> /home/${new_username}/.irssi/config
+ echo ' },' >> /home/${new_username}/.irssi/config
+ echo ' {' >> /home/${new_username}/.irssi/config
+ echo " address = \"127.0.0.1\";" >> /home/${new_username}/.irssi/config
+ echo ' ssl_verify = "no";' >> /home/${new_username}/.irssi/config
+ if [[ ${ONION_ONLY} == 'no' ]]; then
+ echo ' use_ssl = "yes";' >> /home/${new_username}/.irssi/config
+ echo " port = \"${IRC_BOUNCER_PORT}\";" >> /home/${new_username}/.irssi/config
+ else
+ echo ' use_ssl = "no";' >> /home/${new_username}/.irssi/config
+ IRC_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep "irc onion domain" | head -n 1 | awk -F ':' '{print $2}')
+ echo " port = \"${IRC_ONION_PORT}\";" >> /home/${new_username}/.irssi/config
+ fi
+ echo ' chatnet = "Freedombone";' >> /home/${new_username}/.irssi/config
+ echo ' autoconnect = "yes";' >> /home/${new_username}/.irssi/config
+ if [ ${IRC_PASSWORD} ]; then
+ echo " password = \"${IRC_PASSWORD}\";" >> /home/${new_username}/.irssi/config
+ fi
+ echo ' }' >> /home/${new_username}/.irssi/config
+ echo ');' >> /home/${new_username}/.irssi/config
+ echo '' >> /home/${new_username}/.irssi/config
+ echo 'chatnets = {' >> /home/${new_username}/.irssi/config
+ echo ' Freedombone = {' >> /home/${new_username}/.irssi/config
+ echo ' type = "IRC";' >> /home/${new_username}/.irssi/config
+ echo ' max_kicks = "1";' >> /home/${new_username}/.irssi/config
+ echo ' max_msgs = "4";' >> /home/${new_username}/.irssi/config
+ echo ' max_whois = "1";' >> /home/${new_username}/.irssi/config
+ echo ' };' >> /home/${new_username}/.irssi/config
+ echo ' Freenode = {' >> /home/${new_username}/.irssi/config
+ echo ' type = "IRC";' >> /home/${new_username}/.irssi/config
+ echo ' max_kicks = "1";' >> /home/${new_username}/.irssi/config
+ echo ' max_msgs = "4";' >> /home/${new_username}/.irssi/config
+ echo ' max_whois = "1";' >> /home/${new_username}/.irssi/config
+ echo ' };' >> /home/${new_username}/.irssi/config
+ echo ' OFTC = {' >> /home/${new_username}/.irssi/config
+ echo ' type = "IRC";' >> /home/${new_username}/.irssi/config
+ echo ' max_kicks = "1";' >> /home/${new_username}/.irssi/config
+ echo ' max_msgs = "1";' >> /home/${new_username}/.irssi/config
+ echo ' max_whois = "1";' >> /home/${new_username}/.irssi/config
+ echo ' };' >> /home/${new_username}/.irssi/config
+ echo '};' >> /home/${new_username}/.irssi/config
+ echo '' >> /home/${new_username}/.irssi/config
+ echo 'channels = (' >> /home/${new_username}/.irssi/config
+ echo ' { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/${new_username}/.irssi/config
+ echo ');' >> /home/${new_username}/.irssi/config
+ echo '' >> /home/${new_username}/.irssi/config
+ echo 'settings = {' >> /home/${new_username}/.irssi/config
+ echo " core = { real_name = \"$new_name\"; user_name = \"$new_username\"; nick = \"$new_username\"; };" >> /home/${new_username}/.irssi/config
+ echo ' "fe-text" = { actlist_sort = "refnum"; };' >> /home/${new_username}/.irssi/config
+ echo '};' >> /home/${new_username}/.irssi/config
+ echo 'ignores = ( { level = "CTCPS"; } );' >> /home/${new_username}/.irssi/config
+
+ chown -R ${new_username}:${new_username} /home/${new_username}/.irssi
+}
+
+function remove_user_irc_bouncer {
+ remove_username="$1"
+
+ if [ -f /home/znc/.znc/configs/znc.conf ]; then
+ stop_irc_bouncer
+ sed -i "//,/ /d" /home/znc/.znc/configs/znc.conf
+ start_irc_bouncer
+ fi
+}
+
+function remove_user_irc {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp irc
+
+ remove_user_irc_bouncer ${remove_username}
+ if [ -d /home/${remove_username}/.irssi ]; then
+ rm -rf /home/${remove_username}/.irssi
+ fi
+ if [ -d /home/${remove_username}/irclogs ]; then
+ rm -rf /home/${remove_username}/irclogs
+ fi
+}
+
+function irc_set_global_password_base {
+ NEW_IRC_PASSWORD="$1"
+ EXISTING_IRC_PASSWORD=$(irc_get_global_password)
+ sed -i "0,/RE/s/Password =.*/Password =$NEW_IRC_PASSWORD/" /etc/ngircd/ngircd.conf
+
+ # replace the password for all users
+ for d in /home/*/ ; do
+ IRC_USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$IRC_USERNAME") == "1" ]]; then
+ if [ -f /home/${IRC_USERNAME}/.irssi/config ]; then
+ sed -i "s|$EXISTING_IRC_PASSWORD|$NEW_IRC_PASSWORD|g" /home/${IRC_USERNAME}/.irssi/config
+ chown -R ${IRC_USERNAME}:${IRC_USERNAME} /home/${IRC_USERNAME}/.irssi
+ fi
+ fi
+ done
+
+ read_config_param DEFAULT_DOMAIN_NAME
+ read_config_param IRC_PORT
+ read_config_param MY_USERNAME
+
+ stop_irc_bouncer
+ sleep 2
+
+ # change the hashes. There are multiple users, but since we're using a global
+ # password this doesn't matter
+ ZNC_SALT="$(dd if=/dev/urandom bs=16c count=1 | md5sum | awk -F ' ' '{print $1}' | cut -c1-20)"
+ new_user_hash=$(echo -n "${NEW_IRC_PASSWORD}${ZNC_SALT}" | sha256sum | awk -F ' ' '{print $1}')
+ sed -i "s|Hash = .*|Hash = ${new_user_hash}|g" /home/znc/.znc/configs/znc.conf
+ sed -i "s|Salt = .*|Salt = ${ZNC_SALT}|g" /home/znc/.znc/configs/znc.conf
+
+ # change the server password
+ sed -i "s|Server = 127.0.0.1.*|Server = 127.0.0.1 ${IRC_PORT} ${NEW_IRC_PASSWORD}|g" /home/znc/.znc/configs/znc.conf
+
+ # Update the password
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a irc -p "$NEW_IRC_PASSWORD"
+
+ # matrix bridge to irc
+ if [ -f $INSTALL_DIR/matrix_irc_bridge/config.yaml ]; then
+ sed -i "s|password: .*|password: \"$NEW_IRC_PASSWORD\"|g" $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ systemctl restart matrix_irc_bridge
+ fi
+
+ write_config_param "IRC_PASSWORD" "$NEW_IRC_PASSWORD"
+
+ # restart the daemon for the new password to take effect
+ systemctl restart ngircd
+ start_irc_bouncer
+}
+
+function change_password_irc {
+ new_global_password="$2"
+
+ set_password_for_all_users irc "$new_global_password"
+ irc_set_global_password_base "$new_global_password"
+}
+
+function add_user_irc_bouncer {
+ new_username="$1"
+ new_user_password=$(irc_get_global_password)
+ IRC_PASSWORD="$new_user_password"
+ is_admin='true'
+ if [ ! $3 ]; then
+ is_admin='false'
+ fi
+
+ if [[ $(is_valid_user "$new_username") == "0" ]]; then
+ return
+ fi
+
+ read_config_param IRC_PORT
+ read_config_param DEFAULT_DOMAIN_NAME
+
+ ${PROJECT_NAME}-pass -u $new_username -a irc -p "$new_user_password"
+
+ stop_irc_bouncer
+
+ ZNC_SALT="$(dd if=/dev/urandom bs=16c count=1 | md5sum | awk -F ' ' '{print $1}' | cut -c1-20)"
+ new_user_hash=$(echo -n "${new_user_password}${ZNC_SALT}" | sha256sum | awk -F ' ' '{print $1}')
+
+ if grep -q "" /home/znc/.znc/configs/znc.conf; then
+ # user already exists
+ sed -i "s|Hash = .*|Hash = ${new_user_hash}|g" /home/znc/.znc/configs/znc.conf
+ sed -i "s|Salt = .*|Salt = ${ZNC_SALT}|g" /home/znc/.znc/configs/znc.conf
+ return
+ fi
+
+ echo "" >> /home/znc/.znc/configs/znc.conf
+ echo " Admin = ${is_admin}" >> /home/znc/.znc/configs/znc.conf
+ echo " AltNick = ${new_username}_" >> /home/znc/.znc/configs/znc.conf
+ echo ' AppendTimestamp = false' >> /home/znc/.znc/configs/znc.conf
+ echo ' AutoClearChanBuffer = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' AutoClearQueryBuffer = true' >> /home/znc/.znc/configs/znc.conf
+ echo " Buffer = ${IRC_BUFFER_LENGTH}" >> /home/znc/.znc/configs/znc.conf
+ echo ' DenyLoadMod = false' >> /home/znc/.znc/configs/znc.conf
+ echo ' DenySetBindHost = false' >> /home/znc/.znc/configs/znc.conf
+ echo " Ident = ${new_username}" >> /home/znc/.znc/configs/znc.conf
+ echo ' JoinTries = 10' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = chansaver' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = controlpanel' >> /home/znc/.znc/configs/znc.conf
+ echo ' MaxJoins = 10' >> /home/znc/.znc/configs/znc.conf
+ echo ' MaxNetworks = 10' >> /home/znc/.znc/configs/znc.conf
+ echo ' MaxQueryBuffers = 50' >> /home/znc/.znc/configs/znc.conf
+ echo ' MultiClients = true' >> /home/znc/.znc/configs/znc.conf
+ echo " Nick = ${new_username}" >> /home/znc/.znc/configs/znc.conf
+ echo ' PrependTimestamp = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' QuitMsg = Bye' >> /home/znc/.znc/configs/znc.conf
+ echo " RealName = ${new_username}" >> /home/znc/.znc/configs/znc.conf
+ echo ' StatusPrefix = *' >> /home/znc/.znc/configs/znc.conf
+ echo ' TimestampFormat = [%H:%M:%S]' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo " " >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = chansaver' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = simple_away' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo " Server = 127.0.0.1 ${IRC_PORT} ${IRC_PASSWORD}" >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo " " >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = chansaver' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = simple_away' >> /home/znc/.znc/configs/znc.conf
+ echo ' FloodBurst = 4' >> /home/znc/.znc/configs/znc.conf
+ echo ' FloodRate = 1.00' >> /home/znc/.znc/configs/znc.conf
+ echo ' IRCConnectEnabled = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' Server = irc.oftc.net 6697' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = chansaver' >> /home/znc/.znc/configs/znc.conf
+ echo ' LoadModule = simple_away' >> /home/znc/.znc/configs/znc.conf
+ echo ' FloodBurst = 4' >> /home/znc/.znc/configs/znc.conf
+ echo ' FloodRate = 1.00' >> /home/znc/.znc/configs/znc.conf
+ echo ' IRCConnectEnabled = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' Server = irc.freenode.net 6697' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo " Hash = ${new_user_hash}" >> /home/znc/.znc/configs/znc.conf
+ echo ' Method = sha256' >> /home/znc/.znc/configs/znc.conf
+ echo " Salt = ${ZNC_SALT}" >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+
+ mkdir -p /home/znc/.znc/users/${new_username}/moddata
+ mkdir -p /home/znc/.znc/users/${new_username}/networks
+ mkdir /home/znc/.znc/users/${new_username}/moddata/chanserver
+ mkdir /home/znc/.znc/users/${new_username}/moddata/controlpanel
+ mkdir /home/znc/.znc/users/${new_username}/moddata/perform
+ mkdir /home/znc/.znc/users/${new_username}/moddata/webadmin
+ mkdir -p /home/znc/.znc/users/${new_username}/networks/${PROJECT_NAME}/moddata/chansaver
+ mkdir -p /home/znc/.znc/users/${new_username}/networks/${PROJECT_NAME}/moddata/simple_away
+
+ mkdir -p /home/znc/.znc/moddata/webadmin
+
+ chown -R znc:znc /home/znc/.znc
+
+ start_irc_bouncer
+}
+
+function add_user_irc {
+ new_username="$1"
+ new_user_password="$2"
+
+ IRC_PASSWORD=$(irc_get_global_password)
+ if [ ${#IRC_PASSWORD} -lt 2 ]; then
+ IRC_PASSWORD=
+ fi
+
+ if [ ! -d /home/${new_username}/.irssi ]; then
+ mkdir /home/${new_username}/.irssi
+ fi
+
+ create_irssi_config "${new_username}"
+ add_user_irc_bouncer "${new_username}" "${IRC_PASSWORD}"
+ echo '0'
+}
+
+function run_client_irc {
+ irssi
+}
+
+function irc_show_password {
+ IRC_PASSWORD=$(irc_get_global_password)
+ dialog --title $"IRC Password" \
+ --msgbox "$IRC_PASSWORD" 6 40
+}
+
+function irc_set_global_password {
+ EXISTING_IRC_PASSWORD=$(irc_get_global_password)
+ dialog --title $"IRC Password" \
+ --clear \
+ --backtitle $"Freedombone Control Panel" \
+ --passwordbox $"Password for all IRC users, or press Enter for no password" 10 60 "$EXISTING_IRC_PASSWORD" 2> $data
+ sel=$?
+ case $sel in
+ 0)
+ NEW_IRC_PASSWORD=$(<$data)
+ irc_set_global_password_base "$NEW_IRC_PASSWORD"
+ dialog --title $"IRC Password" \
+ --msgbox $"The IRC password was changed" 6 40
+ ;;
+ esac
+}
+
+function configure_interactive_irc {
+ if [ ! -d /etc/ngircd ]; then
+ dialog --title $"IRC Menu" \
+ --msgbox $"No IRC server is installed" 6 70
+ return
+ fi
+
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"IRC Menu" \
+ --radiolist $"Choose an operation:" 14 70 4 \
+ 1 $"Set a password for all IRC users" off \
+ 2 $"Show current IRC login password" off \
+ 3 $"Exit" on 2> $data
+ sel=$?
+ case $sel in
+ 1) break;;
+ 255) break;;
+ esac
+ case $(cat $data) in
+ 1) irc_set_global_password;;
+ 2) irc_show_password;;
+ 3) break;;
+ esac
+ done
+}
+
+function install_interactive_irc {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_irc {
+ echo -n ''
+}
+
+function upgrade_irc {
+ echo -n ''
+}
+
+function backup_local_irc {
+ echo -n ''
+}
+
+function restore_local_irc {
+ echo -n ''
+}
+
+function backup_remote_irc {
+ echo -n ''
+}
+
+function restore_remote_irc {
+ echo -n ''
+}
+
+function remove_irc {
+ remove_watchdog_daemon ngircd
+ systemctl stop ngircd
+ apt-get -yq remove --purge ngircd
+ apt-get -yq remove --purge irssi
+ if [ -d /etc/ngircd ]; then
+ rm -rf /etc/ngircd
+ fi
+
+ iptables -D INPUT -p tcp --dport 1024:65535 --sport ${IRC_BOUNCER_PORT} -j ACCEPT
+ function_check save_firewall_settings
+ save_firewall_settings
+ firewall_remove ${IRC_BOUNCER_PORT} tcp
+
+ function_check remove_onion_service
+ remove_onion_service irc ${IRC_ONION_PORT}
+ remove_completion_param install_irc
+ remove_completion_param configure_firewall_for_irc
+ sed -i '/IRC /d' ${COMPLETION_FILE}
+ sed -i '/znc 2> /d' /etc/crontab
+ stop_irc_bouncer
+ if [ -d /home/znc ]; then
+ userdel -r znc
+ fi
+}
+
+function configure_firewall_for_irc {
+ if [ ! -d /etc/ngircd ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ ${INSTALLED_WITHIN_DOCKER} == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ if [[ ${ONION_ONLY} != "no" ]]; then
+ return
+ fi
+ iptables -I INPUT -p tcp --dport 1024:65535 --sport ${IRC_BOUNCER_PORT} -j ACCEPT
+ function_check save_firewall_settings
+ save_firewall_settings
+
+ firewall_add IRC ${IRC_BOUNCER_PORT} tcp
+ echo 'configure_firewall_for_irc' >> ${COMPLETION_FILE}
+}
+
+function install_irc_server {
+ if [[ $(app_is_installed irc_server) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install ngircd
+
+ if [ ! -d /etc/ngircd ]; then
+ echo $"ERROR: ngircd does not appear to have installed. $CHECK_MESSAGE"
+ exit 53
+ fi
+
+ # obtain a cert for the default domain
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ echo $'Obtaining certificate for the main domain'
+ create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
+ fi
+
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME})" == "0" ]]; then
+ ${PROJECT_NAME}-addcert -h ngircd --dhkey ${DH_KEYLENGTH}
+ function_check check_certificates
+ check_certificates ngircd
+ fi
+
+ DEFAULTDOMAIN=${DEFAULT_DOMAIN_NAME}
+
+ IRC_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+
+ set_password_for_all_users irc "$IRC_PASSWORD"
+
+
+ echo '**************************************************' > /etc/ngircd/motd
+ echo $'* F R E E D O M B O N E I R C *' >> /etc/ngircd/motd
+ echo '* *' >> /etc/ngircd/motd
+ echo $'* Freedom in the Cloud *' >> /etc/ngircd/motd
+ echo '**************************************************' >> /etc/ngircd/motd
+ sed -i 's|MotdFile = /etc/ngircd/ngircd.motd|MotdFile = /etc/ngircd/motd|g' /etc/ngircd/ngircd.conf
+ sed -i "s/irc@irc.example.com/$MY_EMAIL_ADDRESS/g" /etc/ngircd/ngircd.conf
+ sed -i "s/irc.example.net/$DEFAULTDOMAIN/g" /etc/ngircd/ngircd.conf
+ sed -i "s|Yet another IRC Server running on Debian GNU/Linux|IRC Server of $DEFAULTDOMAIN|g" /etc/ngircd/ngircd.conf
+ sed -i 's/;Password = wealllikedebian/Password =/g' /etc/ngircd/ngircd.conf
+ sed -i "s/;Ports =.*/Ports = ${IRC_PORT}/g" /etc/ngircd/ngircd.conf
+ if [[ $ONION_ONLY == 'no' ]]; then
+ if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
+ sed -i "s|;CertFile = /etc/ssl/certs/server.crt|CertFile = /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/ngircd/ngircd.conf
+ else
+ sed -i "s|;CertFile = /etc/ssl/certs/server.crt|CertFile = /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.crt|g" /etc/ngircd/ngircd.conf
+ fi
+ sed -i "s|;DHFile = /etc/ngircd/dhparams.pem|DHFile = /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam|g" /etc/ngircd/ngircd.conf
+ sed -i "s|;KeyFile = /etc/ssl/private/server.key|KeyFile = /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key|g" /etc/ngircd/ngircd.conf
+ sed -i "s/;Ports =.*/Ports = ${IRC_PORT}/2" /etc/ngircd/ngircd.conf
+ else
+ sed -i 's|;SSLConnect.*|SSLConnect = no|g'
+ # comment out the second Ports entry
+ if ! grep ";Ports =" /etc/ngircd/ngircd.conf; then
+ sed -i '0,/Ports =/! s/Ports =/;Ports =/' /etc/ngircd/ngircd.conf
+ fi
+ fi
+ sed -i "s/;Name = #ngircd/Name = #${PROJECT_NAME}/g" /etc/ngircd/ngircd.conf
+ sed -i "s/;Topic = Our ngircd testing channel/Topic = ${PROJECT_NAME} chat channel/g" /etc/ngircd/ngircd.conf
+ sed -i 's/;MaxUsers = 23/MaxUsers = 23/g' /etc/ngircd/ngircd.conf
+ sed -i "s|;KeyFile = /etc/ngircd/#chan.key|KeyFile = /etc/ngircd/${PROJECT_NAME}.key|g" /etc/ngircd/ngircd.conf
+ sed -i "s/;CloakHost = cloaked.host/CloakHost = ${PROJECT_NAME}/g" /etc/ngircd/ngircd.conf
+ IRC_SALT="$(create_password 30)"
+ if [ -f ${IMAGE_PASSWORD_FILE} ]; then
+ IRC_OPERATOR_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ IRC_OPERATOR_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ sed -i "s|;CloakHostSalt = abcdefghijklmnopqrstuvwxyz|CloakHostSalt = $IRC_SALT|g" /etc/ngircd/ngircd.conf
+ sed -i 's/;ConnectIPv4 = yes/ConnectIPv4 = yes/g' /etc/ngircd/ngircd.conf
+ sed -i 's/;MorePrivacy = no/MorePrivacy = yes/g' /etc/ngircd/ngircd.conf
+ sed -i 's/;RequireAuthPing = no/RequireAuthPing = no/g' /etc/ngircd/ngircd.conf
+ sed -i "s/;Name = TheOper/Name = $MY_USERNAME/g" /etc/ngircd/ngircd.conf
+ sed -i "s/;Password = ThePwd/Password = $IRC_OPERATOR_PASSWORD/g" /etc/ngircd/ngircd.conf
+ sed -i 's|;Listen =.*|Listen = 0.0.0.0,0.0.0.0:9050,127.0.0.1,127.0.0.1:9050|g' /etc/ngircd/ngircd.conf
+ if [ ${IRC_PASSWORD} ]; then
+ sed -i "0,/RE/s/Password =.*/Password =$IRC_PASSWORD/" /etc/ngircd/ngircd.conf
+ fi
+ # upgrade a cypher
+ sed -i 's|SECURE128|SECURE256|g' /etc/ngircd/ngircd.conf
+ mkdir /var/run/ircd
+ chown -R irc:irc /var/run/ircd
+ mkdir /var/run/ngircd
+ touch /var/run/ngircd/ngircd.pid
+ chown -R irc:irc /var/run/ngircd
+
+ IRC_ONION_HOSTNAME=$(add_onion_service irc ${IRC_BOUNCER_PORT} ${IRC_ONION_PORT})
+
+ chmod 600 /etc/ngircd/ngircd.conf
+ systemctl restart ngircd
+
+ add_watchdog_daemon ngircd
+
+ function_check configure_firewall_for_irc
+ configure_firewall_for_irc
+ install_completed irc_server
+}
+
+function install_irc_client {
+ if [[ $(app_is_installed irc_client) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install irssi
+
+ if [ ! -d /home/${MY_USERNAME}/.irssi ]; then
+ mkdir /home/${MY_USERNAME}/.irssi
+ fi
+
+ create_irssi_config "${MY_USERNAME}" "$MY_NAME"
+ install_completed irc_client
+}
+
+function install_irc_bouncer {
+ if [[ $(app_is_installed irc_bouncer) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq -t jessie-backports install znc
+
+ adduser --disabled-login --gecos 'znc' znc
+
+ mkdir -p /home/znc/.znc/configs
+ mkdir -p /home/znc/.znc/users
+
+ echo 'AnonIPLimit = 10' > /home/znc/.znc/configs/znc.conf
+ echo 'ConnectDelay = 5' >> /home/znc/.znc/configs/znc.conf
+ echo 'HideVersion = false' >> /home/znc/.znc/configs/znc.conf
+ echo 'MaxBufferSize = 500' >> /home/znc/.znc/configs/znc.conf
+ echo 'ProtectWebSessions = true' >> /home/znc/.znc/configs/znc.conf
+ echo 'SSLCertFile = /home/znc/.znc/znc.pem' >> /home/znc/.znc/configs/znc.conf
+ echo 'ServerThrottle = 30' >> /home/znc/.znc/configs/znc.conf
+ echo 'Version = 1.6.2' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo ' AllowIRC = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' AllowWeb = false' >> /home/znc/.znc/configs/znc.conf
+ echo ' IPv4 = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' IPv6 = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' Port = 6697' >> /home/znc/.znc/configs/znc.conf
+ if [[ ${ONION_ONLY} == 'no' ]]; then
+ echo ' SSL = true' >> /home/znc/.znc/configs/znc.conf
+ else
+ echo ' SSL = false' >> /home/znc/.znc/configs/znc.conf
+ fi
+ echo ' URIPrefix = /' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+
+ if [ $IRC_PORT -ne $IRC_ONION_PORT ]; then
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ echo ' AllowIRC = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' AllowWeb = false' >> /home/znc/.znc/configs/znc.conf
+ echo ' IPv4 = true' >> /home/znc/.znc/configs/znc.conf
+ echo ' IPv6 = true' >> /home/znc/.znc/configs/znc.conf
+ echo " Port = ${IRC_ONION_PORT}" >> /home/znc/.znc/configs/znc.conf
+ echo ' SSL = false' >> /home/znc/.znc/configs/znc.conf
+ echo ' URIPrefix = /' >> /home/znc/.znc/configs/znc.conf
+ echo ' ' >> /home/znc/.znc/configs/znc.conf
+ echo '' >> /home/znc/.znc/configs/znc.conf
+ fi
+
+ chown -R znc:znc /home/znc/.znc
+
+ add_user_irc_bouncer "${MY_USERNAME}" "${IRC_PASSWORD}" true
+
+ # certificate for use with SSL
+ start_irc_bouncer
+
+ function_check cron_add_mins
+ cron_add_mins 10 "/usr/bin/znc 2> /dev/null" znc
+
+ install_completed irc_bouncer
+}
+
+function install_irc {
+ install_irc_server
+ install_irc_client
+ install_irc_bouncer
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-jitsi b/src/freedombone-app-jitsi
new file mode 100755
index 00000000..e66823ed
--- /dev/null
+++ b/src/freedombone-app-jitsi
@@ -0,0 +1,406 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Jitsi meet + videobridge
+#
+# Instructions: https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS="full full-vim chat"
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+VIDEOBRIDGE_PORT=5347
+JITSI_ONION_PORT=8102
+JITSI_PORT=5280
+
+# domains
+JITSI_DOMAIN_NAME=
+JITSI_CODE=
+JITSI_ONION_HOSTNAME=
+
+jitsi_variables=(ONION_ONLY
+ JITSI_DOMAIN_NAME
+ JITSI_ONION_HOSTNAME
+ JITSI_CODE
+ DEFAULT_DOMAIN_NAME
+ MY_USERNAME)
+
+function jitsi_disable_google_spyware {
+ # Presumably they included Google Analytics for benign reasons, but it's
+ # an obvious security problem. This should disable it.
+ sed -i "s|Google Analytics|Google Spyware deactivated|g" /usr/share/jitsi-meet/analytics.js
+ sed -i "s|www.google-analytics.com|${JITSI_DOMAIN_NAME}|g" /usr/share/jitsi-meet/analytics.js
+ if ! grep '//ga(' /usr/share/jitsi-meet/analytics.js; then
+ sed -i 's|ga(|//ga(|g' /usr/share/jitsi-meet/analytics.js
+ fi
+ if ! grep '//action +' /usr/share/jitsi-meet/analytics.js; then
+ sed -i 's|action +|//action +|g' /usr/share/jitsi-meet/analytics.js
+ fi
+
+ sed -i "s|Google Analytics|Google Spyware deactivated|g" /usr/share/jitsi-meet/libs/analytics.js
+ sed -i "s|www.google-analytics.com|${JITSI_DOMAIN_NAME}|g" /usr/share/jitsi-meet/libs/analytics.js
+ if ! grep '//ga(' /usr/share/jitsi-meet/libs/analytics.js; then
+ sed -i 's|ga(|//ga(|g' /usr/share/jitsi-meet/libs/analytics.js
+ fi
+ if ! grep '//action +' /usr/share/jitsi-meet/libs/analytics.js; then
+ sed -i 's|action +|//action +|g' /usr/share/jitsi-meet/libs/analytics.js
+ fi
+}
+
+function can_install_videobridge {
+ check_architecture=$(uname -a)
+ if [[ "$check_architecture" == *"amd64"* || "$check_architecture" == *"i386"* ]]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+function remove_jitsi_subdomains {
+ function_check remove_onion_service
+ remove_onion_service jitsi ${JITSI_ONION_PORT}
+}
+
+function remove_user_jitsi {
+ remove_username="$1"
+}
+
+function add_user_jitsi {
+ new_username="$1"
+ new_user_password="$2"
+}
+
+function install_interactive_jitsi {
+ if [ ! ${ONION_ONLY} ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ ${ONION_ONLY} != "no" ]]; then
+ JITSI_DOMAIN_NAME='jitsi.local'
+ write_config_param "JITSI_DOMAIN_NAME" "$JITSI_DOMAIN_NAME"
+ else
+ function_check interactive_site_details
+ interactive_site_details "jitsi" "JITSI_DOMAIN_NAME" "JITSI_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function configure_interactive_jitsi {
+ echo -n ''
+}
+
+function reconfigure_jitsi {
+ echo -n ''
+}
+
+function upgrade_jitsi {
+ jitsi_disable_google_spyware
+}
+
+function backup_local_jitsi {
+ echo -n ''
+}
+
+function restore_local_jitsi {
+ echo -n ''
+}
+
+function backup_remote_jitsi {
+ echo -n ''
+}
+
+function restore_remote_jitsi {
+ echo -n ''
+}
+
+function remove_jitsi {
+ read_config_param JITSI_DOMAIN_NAME
+ if [ ${#JITSI_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+
+ if [ -f /etc/nginx/sites-available/${JITSI_DOMAIN_NAME} ]; then
+ nginx_dissite ${JITSI_DOMAIN_NAME}.conf
+ if [ -d /var/www/${JITSI_DOMAIN_NAME} ]; then
+ rm -rf /var/www/${JITSI_DOMAIN_NAME}
+ fi
+ rm /etc/nginx/sites-available/${JITSI_DOMAIN_NAME}.conf
+
+ function_check remove_certs
+ remove_certs ${JITSI_DOMAIN_NAME}
+
+ systemctl reload nginx
+ fi
+
+ remove_jitsi_subdomains
+
+ systemctl stop prosody
+ if [ -f /etc/prosody/conf.d/${JITSI_DOMAIN_NAME}.cfg.lua ]; then
+ rm /etc/prosody/conf.d/${JITSI_DOMAIN_NAME}.cfg.lua
+ fi
+ if [ -f /etc/prosody/conf.avail/${JITSI_DOMAIN_NAME}.cfg.lua ]; then
+ rm /etc/prosody/conf.avail/${JITSI_DOMAIN_NAME}.cfg.lua
+ fi
+ prosodyctl unregister focus auth.${JITSI_DOMAIN_NAME}
+ systemctl start prosody
+
+ remove_nodejs jitsi
+
+ # remove videobridge
+ firewall_remove ${VIDEOBRIDGE_PORT}
+ firewall_remove "10000:20000"
+ apt-get -yq remove --purge jitsi-videobridge jicofo jitsi-meet jitsi-meet-prosody
+ if [ -d /etc/jitsi ]; then
+ rm -rf /etc/jitsi
+ fi
+ if [ -d /usr/share/jitsi-videobridge ]; then
+ rm -rf /usr/share/jitsi-videobridge
+ fi
+ if [ -d /usr/share/jitsi-meet ]; then
+ rm -rf /usr/share/jitsi-meet
+ fi
+ if [ -d /etc/jitsi ]; then
+ rm -rf /etc/jitsi
+ fi
+ sed -i "/jitsi/d" /etc/apt/sources.list
+ apt-get update
+
+ remove_app jitsi
+ remove_completion_param install_jitsi
+ sed -i '/jitsi/d' ${COMPLETION_FILE}
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $JITSI_DOMAIN_NAME
+}
+
+function install_jitsi {
+ if [[ "$(can_install_videobridge)" == "0" ]]; then
+ echo $'jitsi meet/videobridge can only be installed on i386 or amd64 architectures'
+ exit 83562
+ fi
+
+ if [ ! ${JITSI_DOMAIN_NAME} ]; then
+ echo $'No domain name was given for jitsi'
+ exit 47682
+ fi
+
+ if [ ! -d /etc/prosody ]; then
+ echo $'xmpp must be installed before installing jitsi'
+ exit 62394
+ fi
+
+ if [[ "${JITSI_DOMAIN_NAME}" == "${DEFAULT_DOMAIN_NAME}" ]]; then
+ echo $'The jitsi domain name should not be the same as the main domain name'
+ exit 78372
+ fi
+
+ # add jitsi repo
+ jitsi_deb_repo=unstable #binary
+ apt-get -yq install wget debconf-utils default-jre
+ install_nodejs jitsi
+ npm install -g browserify@13.1.1
+ if [ ! "$?" = "0" ]; then
+ remove_nodejs jitsi
+ exit 638352
+ fi
+ if ! grep "jitsi" /etc/apt/sources.list; then
+ echo "deb http://download.jitsi.org/nightly/deb ${jitsi_deb_repo}/" >> /etc/apt/sources.list
+ fi
+ wget -qO - https://download.jitsi.org/nightly/deb/${jitsi_deb_repo}/archive.key | apt-key add -
+ apt-get update
+
+ JITSI_ONION_HOSTNAME=$(add_onion_service jitsi 80 ${JITSI_ONION_PORT})
+
+ # videobridge
+ if [[ $ONION_ONLY == 'no' ]]; then
+ debconf-set-selections <<< "jitsi-videobridge jitsi-videobridge/jvb-hostname string ${JITSI_DOMAIN_NAME}"
+ else
+ debconf-set-selections <<< "jitsi-videobridge jitsi-videobridge/jvb-hostname string ${JITSI_ONION_HOSTNAME}"
+ fi
+ apt-get -yq install jitsi-videobridge
+ if [ ! -d /etc/jitsi ]; then
+ echo $'Videobridge package failed to install'
+ exit 63983
+ fi
+ firewall_add videobridge ${VIDEOBRIDGE_PORT}
+ firewall_add_range jitsi 10000 20000 udp
+
+ # meet
+ debconf-set-selections <<< "jitsi-meet jitsi-meet/cert-choice multiselect 1"
+ apt-get -yq install jitsi-meet jitsi-meet-prosody
+
+ jitsi_nginx_site=/etc/nginx/sites-available/${JITSI_DOMAIN_NAME}.conf
+ echo 'server_names_hash_bucket_size 64;' > $jitsi_nginx_site
+ if [[ $ONION_ONLY == "no" ]]; then
+ echo '' >> $jitsi_nginx_site
+ echo 'server {' >> $jitsi_nginx_site
+ echo ' listen 80;' >> $jitsi_nginx_site
+ echo " server_name ${JITSI_DOMAIN_NAME};" >> $jitsi_nginx_site
+ echo ' return 301 https://$host$request_uri;' >> $jitsi_nginx_site
+ echo '}' >> $jitsi_nginx_site
+ echo 'server {' >> $jitsi_nginx_site
+ echo ' listen 443 ssl;' >> $jitsi_nginx_site
+ echo ' listen [::]:443 ssl;' >> $jitsi_nginx_site
+ echo " server_name ${JITSI_DOMAIN_NAME};" >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' ssl_protocols TLSv1 TLSv1.1 TLSv1.2;' >> $jitsi_nginx_site
+ echo ' ssl_prefer_server_ciphers on;' >> $jitsi_nginx_site
+ echo ' ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' add_header Strict-Transport-Security "max-age=31536000";' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo " ssl_certificate /etc/ssl/certs/${JITSI_DOMAIN_NAME}.crt;" >> $jitsi_nginx_site
+ echo " ssl_certificate_key /etc/ssl/private/${JITSI_DOMAIN_NAME}.key;" >> $jitsi_nginx_site
+ echo " ssl_dhparam /etc/ssl/certs/${JITSI_DOMAIN_NAME}.dhparam;" >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' root /usr/share/jitsi-meet;' >> $jitsi_nginx_site
+ echo ' index index.html index.htm;' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' location /config.js {' >> $jitsi_nginx_site
+ echo " alias /etc/jitsi/meet/${JITSI_DOMAIN_NAME}-config.js;" >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' location ~ ^/([a-zA-Z0-9=\?]+)$ {' >> $jitsi_nginx_site
+ echo ' rewrite ^/(.*)$ / break;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' location / {' >> $jitsi_nginx_site
+ echo ' ssi on;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' # Backward compatibility' >> $jitsi_nginx_site
+ echo ' location ~ /external_api.* {' >> $jitsi_nginx_site
+ echo ' root /usr/share/jitsi-meet/libs;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' # Logs' >> $jitsi_nginx_site
+ echo ' access_log /dev/null;' >> $jitsi_nginx_site
+ echo ' error_log /dev/null;' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' # BOSH' >> $jitsi_nginx_site
+ echo ' location /http-bind {' >> $jitsi_nginx_site
+ echo ' proxy_pass http://localhost:5280/http-bind;' >> $jitsi_nginx_site
+ echo ' proxy_set_header X-Forwarded-For $remote_addr;' >> $jitsi_nginx_site
+ echo ' proxy_set_header Host $http_host;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '}' >> $jitsi_nginx_site
+ fi
+ echo '' >> $jitsi_nginx_site
+ echo 'server {' >> $jitsi_nginx_site
+ echo " listen 127.0.0.1:$JITSI_ONION_PORT default_server;" >> $jitsi_nginx_site
+ if [[ $ONION_ONLY == 'no' ]]; then
+ echo " server_name ${JITSI_DOMAIN_NAME};" >> $jitsi_nginx_site
+ else
+ echo " server_name ${JITSI_ONION_HOSTNAME};" >> $jitsi_nginx_site
+ fi
+ echo '' >> $jitsi_nginx_site
+ echo ' root /usr/share/jitsi-meet;' >> $jitsi_nginx_site
+ echo ' index index.html index.htm;' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' location /config.js {' >> $jitsi_nginx_site
+ echo " alias /etc/jitsi/meet/${JITSI_DOMAIN_NAME}-config.js;" >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' location ~ ^/([a-zA-Z0-9=\?]+)$ {' >> $jitsi_nginx_site
+ echo ' rewrite ^/(.*)$ / break;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' location / {' >> $jitsi_nginx_site
+ echo ' ssi off;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' # Backward compatibility' >> $jitsi_nginx_site
+ echo ' location ~ /external_api.* {' >> $jitsi_nginx_site
+ echo ' root /usr/share/jitsi-meet/libs;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' # Logs' >> $jitsi_nginx_site
+ echo ' access_log /dev/null;' >> $jitsi_nginx_site
+ echo ' error_log /dev/null;' >> $jitsi_nginx_site
+ echo '' >> $jitsi_nginx_site
+ echo ' # BOSH' >> $jitsi_nginx_site
+ echo ' location /http-bind {' >> $jitsi_nginx_site
+ echo ' proxy_pass http://localhost:5280/http-bind;' >> $jitsi_nginx_site
+ echo ' proxy_set_header X-Forwarded-For $remote_addr;' >> $jitsi_nginx_site
+ echo ' proxy_set_header Host $http_host;' >> $jitsi_nginx_site
+ echo ' }' >> $jitsi_nginx_site
+ echo '}' >> $jitsi_nginx_site
+
+ sed -i "s|server_name ${JITSI_DOMAIN_NAME}.conf|server_name ${JITSI_DOMAIN_NAME}|g" $jitsi_nginx_site
+ sed -i "s|/var/www/${JITSI_DOMAIN_NAME}.conf/htdocs|/usr/share/jitsi-meet|g" $jitsi_nginx_site
+
+ if [ ! -f /etc/ssl/certs/${JITSI_DOMAIN_NAME}.pem ]; then
+ function_check create_site_certificate
+ create_site_certificate ${JITSI_DOMAIN_NAME} 'yes'
+ fi
+
+ if [ -f /etc/ssl/certs/${JITSI_DOMAIN_NAME}.crt ]; then
+ mv /etc/ssl/certs/${JITSI_DOMAIN_NAME}.crt /etc/ssl/certs/${JITSI_DOMAIN_NAME}.pem
+ fi
+
+ # ensure that certs are available to prosody with correct permissions
+ cp /etc/ssl/certs/${JITSI_DOMAIN_NAME}.* /etc/prosody/certs
+ cp /etc/ssl/private/${JITSI_DOMAIN_NAME}.key /etc/prosody/certs
+ chown prosody:prosody /etc/prosody/certs/${JITSI_DOMAIN_NAME}.*
+
+ if [ -f /etc/ssl/certs/${JITSI_DOMAIN_NAME}.pem ]; then
+ sed -i "s|.crt|.pem|g" $jitsi_nginx_site
+ sed -i "s|.crt|.pem|g" /etc/prosody/conf.d/${JITSI_DOMAIN_NAME}.cfg.lua
+ fi
+
+ sed -i "s|key =.*|key = \"/etc/prosody/certs/${JITSI_DOMAIN_NAME}.key\"|g" /etc/prosody/conf.avail/${JITSI_DOMAIN_NAME}.cfg.lua
+ sed -i "s|certificate =.*|certificate = \"/etc/prosody/certs/${JITSI_DOMAIN_NAME}.pem\"|g" /etc/prosody/conf.avail/${JITSI_DOMAIN_NAME}.cfg.lua
+
+ sed -i "s|.conf.crt|.crt|g" /etc/nginx/sites-available/${JITSI_DOMAIN_NAME}.conf
+ sed -i "s|.conf.pem|.pem|g" /etc/nginx/sites-available/${JITSI_DOMAIN_NAME}.conf
+ sed -i "s|.conf.key|.key|g" /etc/nginx/sites-available/${JITSI_DOMAIN_NAME}.conf
+ sed -i "s|.conf.dhparam|.dhparam|g" /etc/nginx/sites-available/${JITSI_DOMAIN_NAME}.conf
+
+ sed -i "s|enableWelcomePage:.*|enableWelcomePage: false,|g" /etc/jitsi/meet/${JITSI_DOMAIN_NAME}-config.js
+ sed -i "s|disableStats:.*|disableStats: true,|g" /etc/jitsi/meet/${JITSI_DOMAIN_NAME}-config.js
+ sed -i "s|minHDHeight:.*|minHDHeight: 800,|g" /etc/jitsi/meet/${JITSI_DOMAIN_NAME}-config.js
+ sed -i "s|clientNode:.*|clientNode: 'https://${JITSI_DOMAIN_NAME}',|g" /etc/jitsi/meet/${JITSI_DOMAIN_NAME}-config.js
+
+ sed -i "s|navigator.mozGetUserMedia|navigator.mediaDevices.getUserMedia|g" /usr/share/jitsi-meet/libs/lib-jitsi-meet.min.js
+
+ function_check nginx_ensite
+ nginx_ensite ${JITSI_DOMAIN_NAME}.conf
+
+ set_completion_param "jitsi domain" "$JITSI_DOMAIN_NAME"
+
+ jitsi_disable_google_spyware
+
+ systemctl restart nginx
+ systemctl restart prosody
+
+ function_check add_ddns_domain
+ add_ddns_domain $JITSI_DOMAIN_NAME
+
+ APP_INSTALLED=1
+}
diff --git a/src/freedombone-app-librevault b/src/freedombone-app-librevault
new file mode 100755
index 00000000..03a24962
--- /dev/null
+++ b/src/freedombone-app-librevault
@@ -0,0 +1,311 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Librevault application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+PROTOBUF_REPO="https://github.com/google/protobuf"
+PROTOBUF_COMMIT='b97a4a53cdd55be74c30badefeb132a091764f53'
+
+LIBREVAULT_REPO="https://github.com/Librevault/librevault"
+LIBREVAULT_COMMIT='86a6aefcb5cc458f4d42195368fbcff2871f98e3'
+LIBREVAULT_PORT=42345
+
+librevault_variables=(PROTOBUF_REPO
+ PROTOBUF_COMMIT
+ LIBREVAULT_REPO
+ LIBREVAULT_COMMIT
+ LIBREVAULT_PORT)
+
+function install_interactive_librevault {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_librevault {
+ echo -n ''
+ # TODO
+}
+
+function upgrade_librevault {
+ function_check set_repo_commit
+
+ if [ -d $INSTALL_DIR/protobuf ]; then
+ if ! grep -q "Protobuf commit:$PROTOBUF_COMMIT" $COMPLETION_FILE; then
+ set_repo_commit $INSTALL_DIR/protobuf "Protobuf commit" "$PROTOBUF_COMMIT" $PROTOBUF_REPO
+ cd $INSTALL_DIR/protobuf
+ ./autogen.sh
+ ./configure
+ make
+ make check
+ make install
+ ldconfig
+ fi
+ fi
+
+ if [ -d $INSTALL_DIR/librevault/build ]; then
+ if ! grep -q "Librevault commit:$LIBREVAULT_COMMIT" $COMPLETION_FILE; then
+ set_repo_commit $INSTALL_DIR/librevault "Librevault commit" "$LIBREVAULT_COMMIT" $LIBREVAULT_REPO
+ cd $INSTALL_DIR/librevault
+ git submodule update --init --recursive
+ cd $INSTALL_DIR/librevault/build
+ cmake ..
+ cmake --build .
+ make install
+ fi
+ fi
+}
+
+function backup_local_librevault {
+ echo -n ''
+ # TODO
+}
+
+function restore_local_librevault {
+ echo -n ''
+ # TODO
+}
+
+function backup_remote_librevault {
+ echo -n ''
+ # TODO
+}
+
+function restore_remote_librevault {
+ echo -n ''
+ # TODO
+}
+
+function remove_librevault {
+ firewall_remove ${LIBREVAULT_PORT}
+ systemctl stop librevault
+ systemctl disable librevault
+ rm /etc/systemd/system/librevault.service
+ remove_completion_param install_librevault
+ remove_completion_param configure_firewall_for_librevault
+}
+
+function configure_firewall_for_librevault {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ firewall_add Librevault ${LIBREVAULT_PORT}
+ mark_completed $FUNCNAME
+}
+
+function mesh_install_librevault {
+ install_tracker
+ install_cmake
+ install_cryptopp
+
+ chroot "$rootdir" apt-get -yq install bittornado nginx
+ chroot "$rootdir" apt-get -yq install build-essential
+ chroot "$rootdir" apt-get -yq install autoconf automake libtool curl make unzip
+
+ # A workaround which allows c++14 to be installed
+ sed -i 's|jessie|stretch|g' $rootdir/etc/apt/sources.list
+ sed -i 's|stretch-backports|jessie-backports|g' $rootdir/etc/apt/sources.list
+ chroot "$rootdir" apt-get update
+ chroot "$rootdir" apt-get -yq install g++ gcc-6 g++-6 libboost-all-dev libssl-dev
+ chroot "$rootdir" apt-get -yq install protobuf-compiler libprotobuf-dev
+ chroot "$rootdir" apt-get -yq install qtbase5-dev libqt5svg5-dev libqt5websockets5-dev
+ chroot "$rootdir" apt-get -yq install libsqlite3-dev qttools5-dev qttools5-dev-tools libnatpmp-dev
+ sed -i 's|stretch|jessie|g' $rootdir/etc/apt/sources.list
+ chroot "$rootdir" apt-get update
+
+ if [ ! -d $rootdir$INSTALL_DIR ]; then
+ mkdir -p $rootdir$INSTALL_DIR
+ fi
+
+ git clone $PROTOBUF_REPO $rootdir$INSTALL_DIR/protobuf
+ cd $rootdir$INSTALL_DIR/protobuf
+ git checkout $PROTOBUF_COMMIT -b $PROTOBUF_COMMIT
+
+ cat < $rootdir/root/install_protobuf
+cd $INSTALL_DIR/protobuf
+./autogen.sh
+./configure
+make
+make install
+ldconfig
+EOF
+ chroot "$rootdir" chmod +x /root/install_protobuf
+ chroot "$rootdir" /root/install_protobuf
+
+ git clone $LIBREVAULT_REPO $rootdir$INSTALL_DIR/librevault
+ cd $rootdir$INSTALL_DIR/librevault
+ git checkout $LIBREVAULT_COMMIT -b $LIBREVAULT_COMMIT
+ git submodule update --init --recursive
+
+ # rabin seems particularly broken
+ rm -rf $rootdir$INSTALL_DIR/librevault/contrib/rabin
+ git clone https://github.com/bashrc/rabin $rootdir$INSTALL_DIR/librevault/contrib/rabin
+ cd $rootdir$INSTALL_DIR/librevault/contrib/rabin
+ git checkout bashrc/fixup2
+
+ mkdir $rootdir$INSTALL_DIR/librevault/build
+
+ cat < $rootdir/root/install_librevault
+cd $INSTALL_DIR/librevault/build
+cmake -BUILD_UPDATER=OFF ..
+which Meta_s.pb.cc
+cmake --build $INSTALL_DIR/librevault/build
+make install
+EOF
+ chroot "$rootdir" chmod +x /root/install_librevault
+ chroot "$rootdir" /root/install_librevault
+ chroot "$rootdir" rm /root/install_librevault
+
+ LIBREVAULT_DAEMON=$rootdir/etc/systemd/system/librevault-daemon.service
+ echo '[Unit]' > $LIBREVAULT_DAEMON
+ echo 'Description=Librevault - Peer-to-peer, decentralized and open source file sync (multi-instance-master)' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Service]' >> $LIBREVAULT_DAEMON
+ echo 'Type=oneshot' >> $LIBREVAULT_DAEMON
+ echo 'RemainAfterExit=yes' >> $LIBREVAULT_DAEMON
+ echo 'ExecStart=/bin/true' >> $LIBREVAULT_DAEMON
+ echo 'ExecReload=/bin/true' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Install]' >> $LIBREVAULT_DAEMON
+ echo 'WantedBy=multi-user.target' >> $LIBREVAULT_DAEMON
+
+ LIBREVAULT_DAEMON=$rootdir/etc/systemd/system/librevault-daemon@.service
+ echo '[Unit]' > $LIBREVAULT_DAEMON
+ echo 'Description=Librevault - Peer-to-peer, decentralized and open source file sync (instance for %I)' >> $LIBREVAULT_DAEMON
+ echo 'After=network.target' >> $LIBREVAULT_DAEMON
+ echo 'PartOf=librevault-daemon.service' >> $LIBREVAULT_DAEMON
+ echo 'ReloadPropagatedFrom=librevault-daemon.service' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Service]' >> $LIBREVAULT_DAEMON
+ echo 'User=%i' >> $LIBREVAULT_DAEMON
+ echo 'ExecStart=/usr/bin/librevault-daemon' >> $LIBREVAULT_DAEMON
+ echo 'Restart=on-failure' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Install]' >> $LIBREVAULT_DAEMON
+ echo 'WantedBy=multi-user.target' >> $LIBREVAULT_DAEMON
+
+ chroot "$rootdir" systemctl enable librevault-daemon
+}
+
+function install_librevault {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_librevault
+ return
+ fi
+
+ install_tracker
+ install_cmake
+ install_cryptopp
+
+ apt-get -yq install build-essential
+ apt-get -yq install autoconf automake libtool curl make unzip
+
+ # A workaround which allows c++14 to be installed
+ sed -i 's|jessie|stretch|g' /etc/apt/sources.list
+ sed -i 's|stretch-backports|jessie-backports|g' /etc/apt/sources.list
+ apt-get update
+ apt-get -yq install protobuf-compiler libprotobuf-dev
+ apt-get -yq install g++ gcc-6 g++-6 libboost-all-dev libssl-dev
+ apt-get -yq install qtbase5-dev libqt5svg5-dev libqt5websockets5-dev
+ apt-get -yq install libsqlite3-dev qttools5-dev qttools5-dev-tools libnatpmp-dev
+ apt-get -yq install gcc-6 g++-6 libboost-all-dev
+ sed -i 's|stretch|jessie|g' /etc/apt/sources.list
+ apt-get update
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+ git_clone $PROTOBUF_REPO $INSTALL_DIR/protobuf
+ cd $INSTALL_DIR/protobuf
+ git checkout $PROTOBUF_COMMIT -b $PROTOBUF_COMMIT
+ ./autogen.sh
+ ./configure
+ make
+ make check
+ make install
+ ldconfig
+
+ set_completion_param "Protobuf commit" "$PROTOBUF_COMMIT"
+
+ git_clone $LIBREVAULT_REPO $INSTALL_DIR/librevault
+ cd $INSTALL_DIR/librevault
+ git checkout $LIBREVAULT_COMMIT -b $LIBREVAULT_COMMIT
+ git submodule update --init --recursive
+
+ # rabin seems particularly broken
+ rm -rf $INSTALL_DIR/librevault/contrib/rabin
+ git clone https://github.com/bashrc/rabin $INSTALL_DIR/librevault/contrib/rabin
+ cd $INSTALL_DIR/librevault/contrib/rabin
+ git checkout bashrc/fixup2
+
+ mkdir $INSTALL_DIR/librevault/build
+ cd $INSTALL_DIR/librevault/build
+ cmake -BUILD_UPDATER=OFF ..
+ cmake --build .
+ make install
+
+ set_completion_param "Librevault commit" "$LIBREVAULT_COMMIT"
+
+ LIBREVAULT_DAEMON=/etc/systemd/system/librevault-daemon.service
+ echo '[Unit]' > $LIBREVAULT_DAEMON
+ echo 'Description=Librevault - Peer-to-peer, decentralized and open source file sync (multi-instance-master)' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Service]' >> $LIBREVAULT_DAEMON
+ echo 'Type=oneshot' >> $LIBREVAULT_DAEMON
+ echo 'RemainAfterExit=yes' >> $LIBREVAULT_DAEMON
+ echo 'ExecStart=/bin/true' >> $LIBREVAULT_DAEMON
+ echo 'ExecReload=/bin/true' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Install]' >> $LIBREVAULT_DAEMON
+ echo 'WantedBy=multi-user.target' >> $LIBREVAULT_DAEMON
+
+ LIBREVAULT_DAEMON=/etc/systemd/system/librevault-daemon@.service
+ echo '[Unit]' > $LIBREVAULT_DAEMON
+ echo 'Description=Librevault - Peer-to-peer, decentralized and open source file sync (instance for %I)' >> $LIBREVAULT_DAEMON
+ echo 'After=network.target' >> $LIBREVAULT_DAEMON
+ echo 'PartOf=librevault-daemon.service' >> $LIBREVAULT_DAEMON
+ echo 'ReloadPropagatedFrom=librevault-daemon.service' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Service]' >> $LIBREVAULT_DAEMON
+ echo 'User=%i' >> $LIBREVAULT_DAEMON
+ echo 'ExecStart=/usr/bin/librevault-daemon' >> $LIBREVAULT_DAEMON
+ echo 'Restart=on-failure' >> $LIBREVAULT_DAEMON
+ echo '' >> $LIBREVAULT_DAEMON
+ echo '[Install]' >> $LIBREVAULT_DAEMON
+ echo 'WantedBy=multi-user.target' >> $LIBREVAULT_DAEMON
+
+ systemctl enable librevault-daemon
+ systemctl start librevault-daemon
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-lychee b/src/freedombone-app-lychee
new file mode 100755
index 00000000..167de87f
--- /dev/null
+++ b/src/freedombone-app-lychee
@@ -0,0 +1,436 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Lychee photo album
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS="full full-vim writer"
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+LYCHEE_DOMAIN_NAME=
+LYCHEE_CODE=
+LYCHEE_ONION_PORT=8105
+LYCHEE_REPO="https://github.com/electerious/Lychee"
+LYCHEE_COMMIT='3eaaed72715b30bf10ce66a5f75268467bcb728d'
+
+lychee_variables=(LYCHEE_REPO
+ LYCHEE_COMMIT
+ LYCHEE_DOMAIN_NAME
+ LYCHEE_CODE
+ ONION_ONLY
+ DDNS_PROVIDER
+ MY_USERNAME)
+
+
+function lychee_create_database {
+ if [ -f ${IMAGE_PASSWORD_FILE} ]; then
+ LYCHEE_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! ${LYCHEE_ADMIN_PASSWORD} ]; then
+ LYCHEE_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $LYCHEE_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database lychee "$LYCHEE_ADMIN_PASSWORD"
+}
+
+function remove_user_lychee {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp lychee
+}
+
+function add_user_lychee {
+ if [[ $(app_is_installed lychee) == "0" ]]; then
+ echo '0'
+ return
+ fi
+
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a lychee -p "$new_user_password"
+
+ echo '0'
+}
+
+function install_interactive_lychee {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ LYCHEE_DOMAIN_NAME='lychee.local'
+ write_config_param "LYCHEE_DOMAIN_NAME" "$LYCHEE_DOMAIN_NAME"
+ else
+ function_check interactive_site_details
+ interactive_site_details "lychee" "LYCHEE_DOMAIN_NAME" "LYCHEE_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function configure_interactive_lychee {
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ dialog --title $"Lychee Configuration" \
+ --msgbox $"\nYou can initially install the system with:\n\n Username: root\n Password: $MARIADB_PASSWORD" 10 70
+}
+
+
+function change_password_lychee {
+ LYCHEE_USERNAME="$1"
+ LYCHEE_PASSWORD="$2"
+ if [ ${#LYCHEE_PASSWORD} -lt 8 ]; then
+ echo $'Lychee password is too short'
+ return
+ fi
+ # TODO: This doesn't actually change the password
+ #${PROJECT_NAME}-pass -u $LYCHEE_USERNAME -a lychee -p "$LYCHEE_PASSWORD"
+}
+
+function reconfigure_lychee {
+ echo -n ''
+}
+
+function upgrade_lychee {
+ read_config_param "LYCHEE_DOMAIN_NAME"
+
+ function_check set_repo_commit
+ set_repo_commit /var/www/$LYCHEE_DOMAIN_NAME/htdocs "lychee commit" "$LYCHEE_COMMIT" $LYCHEE_REPO
+}
+
+function backup_local_lychee {
+ LYCHEE_DOMAIN_NAME='lychee.local'
+ if grep -q "lychee domain" $COMPLETION_FILE; then
+ LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
+ fi
+
+ lychee_path=/var/www/${LYCHEE_DOMAIN_NAME}/htdocs
+ if [ -d $lychee_path ]; then
+ function_check backup_database_to_usb
+ backup_database_to_usb lychee
+
+ backup_directory_to_usb $lychee_path lychee
+ restart_site
+ fi
+}
+
+function restore_local_lychee {
+ LYCHEE_DOMAIN_NAME='lychee.local'
+ if grep -q "lychee domain" $COMPLETION_FILE; then
+ LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
+ fi
+ if [ $LYCHEE_DOMAIN_NAME ]; then
+ function_check lychee_create_database
+ lychee_create_database
+
+ function_check restore_database
+ restore_database lychee ${LYCHEE_DOMAIN_NAME}
+ fi
+}
+
+function backup_remote_lychee {
+ LYCHEE_DOMAIN_NAME='lychee.local'
+ if grep -q "lychee domain" $COMPLETION_FILE; then
+ LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
+ fi
+
+ temp_backup_dir=/var/www/${LYCHEE_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ suspend_site ${LYCHEE_DOMAIN_NAME}
+ backup_database_to_friend lychee
+ backup_directory_to_friend $temp_backup_dir lychee
+ restart_site
+ else
+ echo $"Lychee domain specified but not found in /var/www/${LYCHEE_DOMAIN_NAME}"
+ exit 2578
+ fi
+}
+
+function restore_remote_lychee {
+ LYCHEE_DOMAIN_NAME='lychee.local'
+ if grep -q "lychee domain" $COMPLETION_FILE; then
+ LYCHEE_DOMAIN_NAME=$(get_completion_param "lychee domain")
+ fi
+
+ function_check restore_database_from_friend
+
+ function_check lychee_create_database
+ lychee_create_database
+
+ restore_database_from_friend lychee ${LYCHEE_DOMAIN_NAME}
+ restart_site
+ chown -R lychee: /var/www/$LYCHEE_DOMAIN_NAME/htdocs/
+}
+
+function remove_lychee {
+ if [ ${#LYCHEE_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+
+ read_config_param "LYCHEE_DOMAIN_NAME"
+ nginx_dissite $LYCHEE_DOMAIN_NAME
+ remove_certs ${LYCHEE_DOMAIN_NAME}
+
+ drop_database lychee
+ remove_backup_database_local lychee
+
+ if [ -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME ]; then
+ rm -f /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ fi
+ if [ -d /var/www/$LYCHEE_DOMAIN_NAME ]; then
+ rm -rf /var/www/$LYCHEE_DOMAIN_NAME
+ fi
+ remove_config_param LYCHEE_DOMAIN_NAME
+ remove_config_param LYCHEE_CODE
+ function_check remove_onion_service
+ remove_onion_service lychee ${LYCHEE_ONION_PORT}
+ remove_completion_param "install_lychee"
+ sed -i '/Lychee/d' $COMPLETION_FILE
+ sed -i '/lychee/d' $COMPLETION_FILE
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $LYCHEE_DOMAIN_NAME
+}
+
+function install_lychee_website {
+ function_check nginx_http_redirect
+ nginx_http_redirect $LYCHEE_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' listen [::]:443 ssl;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " root /var/www/$LYCHEE_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " server_name $LYCHEE_DOMAIN_NAME;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' index index.html;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ function_check nginx_ssl
+ nginx_ssl $LYCHEE_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $LYCHEE_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ nginx_keybase ${LYCHEE_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.html;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_index index.html;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+}
+
+function install_lychee_website_onion {
+ echo 'server {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " listen 127.0.0.1:${LYCHEE_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " root /var/www/$LYCHEE_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " server_name $LYCHEE_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " error_log /dev/null;" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' index index.html;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $LYCHEE_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ nginx_keybase ${LYCHEE_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ function_check nginx_limits
+ nginx_limits $LYCHEE_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.html;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_index index.html;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+}
+
+function install_lychee_from_repo {
+ if [ ! -d /var/www/$LYCHEE_DOMAIN_NAME ]; then
+ mkdir /var/www/$LYCHEE_DOMAIN_NAME
+ fi
+
+ cd /var/www/$LYCHEE_DOMAIN_NAME
+ git_clone $LYCHEE_REPO htdocs
+ cd htdocs
+ git checkout $LYCHEE_COMMIT -b $LYCHEE_COMMIT
+ set_completion_param "lychee commit" "$LYCHEE_COMMIT"
+}
+
+function install_lychee {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [ ! $LYCHEE_DOMAIN_NAME ]; then
+ echo $'The lychee domain name was not specified'
+ exit 543672
+ fi
+
+ # for the avatar changing command
+ apt-get -yq install imagemagick exif zip php5-mcrypt mcrypt
+
+ function_check install_lychee_from_repo
+ install_lychee_from_repo
+
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check install_lychee_website
+ install_lychee_website
+ else
+ echo -n '' > /etc/nginx/sites-available/$LYCHEE_DOMAIN_NAME
+ fi
+
+ LYCHEE_ONION_HOSTNAME=$(add_onion_service lychee 80 ${LYCHEE_ONION_PORT})
+
+ function_check install_lychee_website_onion
+ install_lychee_website_onion
+
+ function_check create_site_certificate
+ create_site_certificate $LYCHEE_DOMAIN_NAME 'yes'
+
+ function_check configure_php
+ configure_php
+
+ chmod -R 777 /var/www/$LYCHEE_DOMAIN_NAME/htdocs/uploads/
+ chmod -R 777 /var/www/$LYCHEE_DOMAIN_NAME/htdocs/data/
+ chown -R www-data:www-data /var/www/$LYCHEE_DOMAIN_NAME/htdocs
+
+ function_check nginx_ensite
+ nginx_ensite $LYCHEE_DOMAIN_NAME
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check lychee_create_database
+ lychee_create_database
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a lychee -p "$LYCHEE_ADMIN_PASSWORD"
+
+ function_check add_ddns_domain
+ add_ddns_domain $LYCHEE_DOMAIN_NAME
+
+ set_completion_param "lychee domain" "$LYCHEE_DOMAIN_NAME"
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-mailpile b/src/freedombone-app-mailpile
new file mode 100755
index 00000000..f575b19a
--- /dev/null
+++ b/src/freedombone-app-mailpile
@@ -0,0 +1,416 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# mailpile app
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS="full full-vim mailbox"
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+MAILPILE_DOMAIN_NAME=
+MAILPILE_CODE=
+MAILPILE_ONION_PORT=8103
+MAILPILE_REPO="https://github.com/mailpile/Mailpile"
+MAILPILE_COMMIT='352ca27a29f7d9525298264c04bc5c7d55887276'
+MAILPILE_PORT=33411
+
+mailpile_variables=(MAILPILE_REPO
+ MAILPILE_COMMIT
+ MAILPILE_DOMAIN_NAME
+ MAILPILE_CODE
+ ONION_ONLY
+ DDNS_PROVIDER
+ MY_USERNAME)
+
+function remove_user_mailpile {
+ remove_username="$1"
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp mailpile
+}
+
+function add_user_mailpile {
+ ${PROJECT_NAME}-pass -u $1 -a mailpile -p "$2"
+}
+
+function install_interactive_mailpile {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ MAILPILE_DOMAIN_NAME='mailpile.local'
+ write_config_param "MAILPILE_DOMAIN_NAME" "$MAILPILE_DOMAIN_NAME"
+ else
+ function_check interactive_site_details
+ interactive_site_details "mailpile" "MAILPILE_DOMAIN_NAME" "MAILPILE_CODE"
+ fi
+ APP_INSTALLED=1
+}
+
+function change_password_mailpile {
+ echo -n ''
+ #${PROJECT_NAME}-pass -u $1 -a mailpile -p "$2"
+}
+
+function reconfigure_mailpile {
+ echo -n ''
+}
+
+function upgrade_mailpile {
+ read_config_param "MAILPILE_DOMAIN_NAME"
+
+ function_check set_repo_commit
+ set_repo_commit /var/www/$MAILPILE_DOMAIN_NAME/mail "mailpile commit" "$MAILPILE_COMMIT" $MAILPILE_REPO
+}
+
+function backup_local_mailpile {
+ if [ ! -f /etc/systemd/system/mailpile.service ]; then
+ return
+ fi
+ MAILPILE_DOMAIN_NAME='mailpile.local'
+ if grep -q "mailpile domain" $COMPLETION_FILE; then
+ MAILPILE_DOMAIN_NAME=$(get_completion_param "mailpile domain")
+ fi
+ source_directory=/var/www/${MAILPILE_DOMAIN_NAME}/mail/.local
+ if [ -d $source_directory ]; then
+ systemctl stop mailpile
+
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory mailpile
+
+ systemctl start mailpile
+ fi
+}
+
+function restore_local_mailpile {
+ if [ ! -f /etc/systemd/system/mailpile.service ]; then
+ return
+ fi
+ MAILPILE_DOMAIN_NAME='mailpile.local'
+ if grep -q "mailpile domain" $COMPLETION_FILE; then
+ MAILPILE_DOMAIN_NAME=$(get_completion_param "mailpile domain")
+ fi
+ if [ $MAILPILE_DOMAIN_NAME ]; then
+ systemctl stop mailpile
+
+ temp_restore_dir=/root/tempmailpile
+ restore_directory_from_usb $temp_restore_dir mailpile
+ if [ -d /var/www/${MAILPILE_DOMAIN_NAME}/mail/.local ]; then
+ mv /var/www/${MAILPILE_DOMAIN_NAME}/mail/.local /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous
+ fi
+ temp_source_dir=$(find ${temp_restore_dir} -name ".local")
+ cp -r ${temp_source_dir} /var/www/${MAILPILE_DOMAIN_NAME}/mail/
+ if [ ! "$?" = "0" ]; then
+ if [ -d mv /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous ]; then
+ if [ -d /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous ]; then
+ rm -rf /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous
+ fi
+ mv /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous /var/www/${MAILPILE_DOMAIN_NAME}/mail/.local
+ fi
+ backup_unmount_drive
+ exit 3685
+ fi
+ rm -rf ${temp_restore_dir}
+ chown -R mailpile: /var/www/$MAILPILE_DOMAIN_NAME/mail/
+
+ if [ -d /etc/letsencrypt/live/${MAILPILE_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${MAILPILE_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${MAILPILE_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${MAILPILE_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.pem
+ fi
+
+ systemctl start mailpile
+ fi
+}
+
+function backup_remote_mailpile {
+ if [ ! -f /etc/systemd/system/mailpile.service ]; then
+ return
+ fi
+ MAILPILE_DOMAIN_NAME='mailpile.local'
+ if grep -q "mailpile domain" $COMPLETION_FILE; then
+ MAILPILE_DOMAIN_NAME=$(get_completion_param "mailpile domain")
+ fi
+ source_directory=/var/www/${MAILPILE_DOMAIN_NAME}/mail/.local
+ if [ -d $source_directory ]; then
+ systemctl stop mailpile
+
+ function_check backup_directory_to_usb
+ backup_directory_to_friend $source_directory mailpile
+
+ systemctl start mailpile
+ fi
+}
+
+function restore_remote_mailpile {
+ if [ ! -f /etc/systemd/system/mailpile.service ]; then
+ return
+ fi
+ MAILPILE_DOMAIN_NAME='mailpile.local'
+ if grep -q "mailpile domain" $COMPLETION_FILE; then
+ MAILPILE_DOMAIN_NAME=$(get_completion_param "mailpile domain")
+ fi
+ if [ $MAILPILE_DOMAIN_NAME ]; then
+ systemctl stop mailpile
+
+ temp_restore_dir=/root/tempmailpile
+ restore_directory_from_friend $temp_restore_dir mailpile
+ if [ -d /var/www/${MAILPILE_DOMAIN_NAME}/mail/.local ]; then
+ mv /var/www/${MAILPILE_DOMAIN_NAME}/mail/.local /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous
+ fi
+ temp_source_dir=$(find ${temp_restore_dir} -name ".local")
+ cp -r ${temp_source_dir} /var/www/${MAILPILE_DOMAIN_NAME}/mail/
+ if [ ! "$?" = "0" ]; then
+ if [ -d mv /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous ]; then
+ mv /var/www/${MAILPILE_DOMAIN_NAME}/mail/.previous /var/www/${MAILPILE_DOMAIN_NAME}/mail/.local
+ fi
+ backup_unmount_drive
+ exit 36732
+ fi
+ rm -rf ${temp_restore_dir}
+ chown -R mailpile: /var/www/$MAILPILE_DOMAIN_NAME/mail/
+
+ if [ -d /etc/letsencrypt/live/${MAILPILE_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${MAILPILE_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${MAILPILE_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${MAILPILE_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.pem
+ fi
+
+ systemctl start mailpile
+ fi
+}
+
+function remove_mailpile {
+ if [ ${#MAILPILE_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+
+ systemctl stop mailpile
+ systemctl disable mailpile
+ rm /etc/systemd/system/mailpile.service
+
+ read_config_param "MAILPILE_DOMAIN_NAME"
+ nginx_dissite $MAILPILE_DOMAIN_NAME
+ remove_certs ${MAILPILE_DOMAIN_NAME}
+ if [ -f /etc/nginx/sites-available/$MAILPILE_DOMAIN_NAME ]; then
+ rm -f /etc/nginx/sites-available/$MAILPILE_DOMAIN_NAME
+ fi
+ if [ -d /var/www/$MAILPILE_DOMAIN_NAME ]; then
+ rm -rf /var/www/$MAILPILE_DOMAIN_NAME
+ fi
+ function_check remove_ddns_domain
+ remove_ddns_domain $MAILPILE_DOMAIN_NAME
+ deluser --remove-all-files mailpile
+
+ remove_config_param MAILPILE_DOMAIN_NAME
+ remove_config_param MAILPILE_CODE
+ function_check remove_onion_service
+ remove_onion_service mailpile ${MAILPILE_ONION_PORT}
+ remove_completion_param "install_mailpile"
+
+ enable_email_encryption_at_rest
+
+ sed -i '/Mailpile/d' $COMPLETION_FILE
+ sed -i '/mailpile/d' $COMPLETION_FILE
+}
+
+function install_mailpile {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [ ! $MAILPILE_DOMAIN_NAME ]; then
+ echo $'The mailpile domain name was not specified'
+ exit 63824
+ fi
+
+ apt-get -yq install python-pip python-lxml python-dev libjpeg-dev
+
+ if [ ! -d /var/www/$MAILPILE_DOMAIN_NAME ]; then
+ mkdir /var/www/$MAILPILE_DOMAIN_NAME
+ fi
+
+ cd /var/www/$MAILPILE_DOMAIN_NAME
+ if [ -d /var/www/$MAILPILE_DOMAIN_NAME/mail ]; then
+ rm -rf /var/www/$MAILPILE_DOMAIN_NAME/mail
+ fi
+ git_clone $MAILPILE_REPO mail
+ cd mail
+ git checkout $MAILPILE_COMMIT -b $MAILPILE_COMMIT
+ set_completion_param "mailpile commit" "$MAILPILE_COMMIT"
+
+ if [ ! -f requirements-dev.txt ]; then
+ echo $'No python requirements file found'
+ exit 62382
+ fi
+ pip install -r requirements.txt
+
+ adduser --system --home=/var/www/$MAILPILE_DOMAIN_NAME/mail/ --group mailpile
+ adduser mailpile debian-tor
+ adduser mailpile www-data
+ adduser mailpile $MY_USERNAME
+ chown -R mailpile: /var/www/$MAILPILE_DOMAIN_NAME/mail/
+
+ # create folders and tags
+ su -c "cd /var/www/$MAILPILE_DOMAIN_NAME/mail && ./mp --setup" - mailpile
+
+ MAILPILE_ONION_HOSTNAME=$(add_onion_service mailpile 80 ${MAILPILE_ONION_PORT})
+
+ echo '[Unit]' > /etc/systemd/system/mailpile.service
+ echo 'Description=Mailpile Email Client' >> /etc/systemd/system/mailpile.service
+ echo 'After=syslog.target network.target nginx.target' >> /etc/systemd/system/mailpile.service
+ echo '' >> /etc/systemd/system/mailpile.service
+ echo '[Service]' >> /etc/systemd/system/mailpile.service
+ echo 'User=mailpile' >> /etc/systemd/system/mailpile.service
+ echo 'Group=debian-tor' >> /etc/systemd/system/mailpile.service
+ echo "WorkingDirectory=/var/www/$MAILPILE_DOMAIN_NAME/mail" >> /etc/systemd/system/mailpile.service
+ echo "ExecStart=/var/www/$MAILPILE_DOMAIN_NAME/mail/mp --www=0.0.0.0:${MAILPILE_PORT} --wait" >> /etc/systemd/system/mailpile.service
+ echo 'Restart=always' >> /etc/systemd/system/mailpile.service
+ echo 'RestartSec=10' >> /etc/systemd/system/mailpile.service
+ echo '' >> /etc/systemd/system/mailpile.service
+ echo '[Install]' >> /etc/systemd/system/mailpile.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mailpile.service
+ chmod +x /etc/systemd/system/mailpile.service
+
+ mailpile_nginx_site=/etc/nginx/sites-available/$MAILPILE_DOMAIN_NAME
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect $MAILPILE_DOMAIN_NAME
+ echo 'server {' >> $mailpile_nginx_site
+ echo ' listen 443 ssl;' >> $mailpile_nginx_site
+ echo ' listen [::]:443 ssl;' >> $mailpile_nginx_site
+ echo " server_name $MAILPILE_DOMAIN_NAME;" >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ echo ' # Security' >> $mailpile_nginx_site
+ function_check nginx_ssl
+ nginx_ssl $MAILPILE_DOMAIN_NAME
+
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $MAILPILE_DOMAIN_NAME
+
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ echo ' # Logs' >> $mailpile_nginx_site
+ echo ' access_log /dev/null;' >> $mailpile_nginx_site
+ echo ' error_log /dev/null;' >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ echo ' # Root' >> $mailpile_nginx_site
+ echo " root /var/www/$MAILPILE_DOMAIN_NAME/mail;" >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ echo ' location / {' >> $mailpile_nginx_site
+ function_check nginx_limits
+ nginx_limits $MAILPILE_DOMAIN_NAME '15m'
+ echo ' rewrite /(.*) /$1 break;' >> $mailpile_nginx_site
+ echo ' proxy_set_header X-Real-IP $remote_addr;' >> $mailpile_nginx_site
+ echo ' proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;' >> $mailpile_nginx_site
+ echo ' proxy_set_header Host $http_host;' >> $mailpile_nginx_site
+ echo ' proxy_set_header X-NginX-Proxy true;' >> $mailpile_nginx_site
+ echo " proxy_pass http://localhost:${MAILPILE_PORT};" >> $mailpile_nginx_site
+ echo ' proxy_redirect off;' >> $mailpile_nginx_site
+ echo ' }' >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ nginx_keybase ${MAILPILE_DOMAIN_NAME}
+ echo '}' >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ else
+ echo -n '' > $mailpile_nginx_site
+ fi
+ echo 'server {' >> $mailpile_nginx_site
+ echo " listen 127.0.0.1:$MAILPILE_ONION_PORT default_server;" >> $mailpile_nginx_site
+ echo " server_name $MAILPILE_ONION_HOSTNAME;" >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $MAILPILE_DOMAIN_NAME
+ echo '' >> $mailpile_nginx_site
+ echo ' # Logs' >> $mailpile_nginx_site
+ echo ' access_log /dev/null;' >> $mailpile_nginx_site
+ echo ' error_log /dev/null;' >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ echo ' # Root' >> $mailpile_nginx_site
+ echo " root /var/www/$MAILPILE_DOMAIN_NAME/mail;" >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ echo ' location / {' >> $mailpile_nginx_site
+ function_check nginx_limits
+ nginx_limits $MAILPILE_DOMAIN_NAME '15m'
+ echo ' rewrite /(.*) /$1 break;' >> $mailpile_nginx_site
+ echo ' proxy_set_header X-Real-IP $remote_addr;' >> $mailpile_nginx_site
+ echo ' proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;' >> $mailpile_nginx_site
+ echo ' proxy_set_header Host $http_host;' >> $mailpile_nginx_site
+ echo ' proxy_set_header X-NginX-Proxy true;' >> $mailpile_nginx_site
+ echo " proxy_pass http://localhost:${MAILPILE_PORT};" >> $mailpile_nginx_site
+ echo ' proxy_redirect off;' >> $mailpile_nginx_site
+ echo ' }' >> $mailpile_nginx_site
+ echo '' >> $mailpile_nginx_site
+ nginx_keybase ${MAILPILE_DOMAIN_NAME}
+ echo '}' >> $mailpile_nginx_site
+
+ function_check create_site_certificate
+ if [ ! -f /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.pem ]; then
+ create_site_certificate $MAILPILE_DOMAIN_NAME 'yes'
+ fi
+
+ if [ -f /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.crt ]; then
+ mv /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.crt /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.pem
+ fi
+ if [ -f /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.pem ]; then
+ chown mailpile: /etc/ssl/certs/${MAILPILE_DOMAIN_NAME}.pem
+ sed -i "s|.crt|.pem|g" /etc/nginx/sites-available/${MAILPILE_DOMAIN_NAME}
+ fi
+ if [ -f /etc/ssl/private/${MAILPILE_DOMAIN_NAME}.key ]; then
+ chown mailpile: /etc/ssl/private/${MAILPILE_DOMAIN_NAME}.key
+ fi
+
+ function_check nginx_ensite
+ nginx_ensite $MAILPILE_DOMAIN_NAME
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a mailpile -p "*"
+
+ function_check add_ddns_domain
+ add_ddns_domain $MAILPILE_DOMAIN_NAME
+
+ disable_email_encryption_at_rest
+
+ # if strict https is enforced then buttons don't work. This is probably a security bug
+ sed -i "/Content-Security-Policy/d" $mailpile_nginx_site
+
+ # link to the administrator's keyring
+ if [ -d /var/www/$MAILPILE_DOMAIN_NAME/mail/.gnupg ]; then
+ mv /var/www/$MAILPILE_DOMAIN_NAME/mail/.gnupg /var/www/$MAILPILE_DOMAIN_NAME/mail/.gnupg_orig
+ fi
+ cp -r /home/$MY_USERNAME/.gnupg /var/www/$MAILPILE_DOMAIN_NAME/mail/
+ chown -R mailpile:mailpile /var/www/$MAILPILE_DOMAIN_NAME/mail/.gnupg
+ chmod +x /var/www/$MAILPILE_DOMAIN_NAME/mail/.gnupg
+
+ systemctl enable mailpile
+ systemctl daemon-reload
+ systemctl start mailpile
+ systemctl restart nginx
+
+ set_completion_param "mailpile domain" "$MAILPILE_DOMAIN_NAME"
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-mumble b/src/freedombone-app-mumble
new file mode 100755
index 00000000..e71b1e8e
--- /dev/null
+++ b/src/freedombone-app-mumble
@@ -0,0 +1,271 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Mumble application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim chat'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+# Password used for mumble server
+MUMBLE_SERVER_PASSWORD=
+# Port on which mumble server listens
+MUMBLE_PORT=64738
+
+# Location of mumble database and configuration
+MUMBLE_DATABASE="mumble-server.sqlite"
+MUMBLE_CONFIG_FILE="mumble-server.ini"
+
+mumble_variables=(MY_USERNAME
+ MUMBLE_PORT
+ ONION_ONLY
+ ADMIN_USERNAME)
+
+function install_interactive_mumble {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function change_password_mumble {
+ new_mumble_password="$2"
+
+ set_password_for_all_users mumble "$new_mumble_password"
+ sed -i "s|serverpassword=.*|serverpassword=$new_mumble_password|g" /etc/mumble-server.ini
+ systemctl restart mumble-server
+}
+
+function reconfigure_mumble {
+ echo -n ''
+}
+
+function upgrade_mumble {
+ echo -n ''
+}
+
+function backup_local_mumble {
+ if [ -f /etc/mumble-server.ini ]; then
+ echo $"Backing up Mumble settings"
+ temp_backup_dir=/root/tempmumblebackup
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir -p $temp_backup_dir
+ fi
+ cp -f /etc/mumble-server.ini $temp_backup_dir
+ cp -f /var/lib/mumble-server/mumble-server.sqlite $temp_backup_dir
+ backup_directory_to_usb $temp_backup_dir mumble
+ echo $"Mumble settings backup complete"
+ fi
+}
+
+function restore_local_mumble {
+ if [ -d $USB_MOUNT/backup/mumble ]; then
+ echo $"Restoring mumble settings"
+ temp_restore_dir=/root/tempmumble
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir voip
+ restore_directory_from_usb $temp_restore_dir mumble
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 3679
+ fi
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 276
+ fi
+ rm -rf $temp_restore_dir
+ cp /etc/ssl/certs/mumble* /var/lib/mumble-server
+ cp /etc/ssl/private/mumble* /var/lib/mumble-server
+ chown -R mumble-server:mumble-server /var/lib/mumble-server
+ systemctl restart mumble-server
+ fi
+}
+
+function backup_remote_mumble {
+ if [ -f /etc/mumble-server.ini ]; then
+ echo $"Backing up mumble settings"
+ if [ ! -d /root/tempmumblebackup ]; then
+ mkdir -p /root/tempmumblebackup
+ fi
+ cp -f /etc/mumble-server.ini /root/tempmumblebackup
+ cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempmumblebackup
+ backup_directory_to_friend /root/tempmumblebackup mumble
+ echo $"Backup of mumble settings complete"
+ fi
+}
+
+function restore_remote_mumble {
+ if [ -d $SERVER_DIRECTORY/backup/mumble ]; then
+ echo $"Restoring Mumble settings"
+ temp_restore_dir=/root/tempmumble
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir mumble
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ exit 7823
+ fi
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ exit 7823
+ fi
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ exit 276
+ fi
+ rm -rf $temp_restore_dir
+ cp /etc/ssl/certs/mumble* /var/lib/mumble-server
+ cp /etc/ssl/private/mumble* /var/lib/mumble-server
+ chown -R mumble-server:mumble-server /var/lib/mumble-server
+ systemctl restart mumble-server
+ echo $"Restore of Mumble complete"
+ fi
+}
+
+function remove_mumble {
+ apt-get -yq remove --purge mumble-server
+ if [[ $ONION_ONLY == "no" ]]; then
+ firewall_remove ${MUMBLE_PORT}
+ fi
+ if [ -f /etc/mumble-server.ini ]; then
+ rm /etc/mumble-server.ini
+ fi
+ remove_certs mumble
+ if [ -d /var/lib/mumble-server ]; then
+ rm -rf /var/lib/mumble-server
+ fi
+ function_check remove_onion_service
+ remove_onion_service mumble ${MUMBLE_PORT}
+ sed -i '/mumble/d' $COMPLETION_FILE
+}
+
+function configure_firewall_for_mumble {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ firewall_add Mumble ${MUMBLE_PORT}
+ mark_completed $FUNCNAME
+}
+
+function install_mumble {
+ apt-get -yq install mumble-server
+
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ MUMBLE_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $MUMBLE_SERVER_PASSWORD ]; then
+ MUMBLE_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ if [ ${#MUMBLE_SERVER_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
+ MUMBLE_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ fi
+
+ # Make an ssl cert for the server
+ if [ ! -f /etc/ssl/certs/mumble.dhparam ]; then
+ ${PROJECT_NAME}-addcert -h mumble --dhkey $DH_KEYLENGTH
+ function_check check_certificates
+ check_certificates mumble
+ fi
+
+ # Check that the cert was created
+ if [ ! -f /etc/ssl/certs/mumble.crt ]; then
+ echo $'mumble server certificate not created'
+ exit 57892
+ fi
+ if [ ! -f /etc/ssl/private/mumble.key ]; then
+ echo $'mumble server key not created'
+ exit 57893
+ fi
+ if [ ! -d /var/lib/mumble-server ]; then
+ mkdir /var/lib/mumble-server
+ fi
+ cp /etc/ssl/certs/mumble.* /var/lib/mumble-server
+ cp /etc/ssl/private/mumble.key /var/lib/mumble-server
+ if [ ! -f /var/lib/mumble-server/mumble.pem ]; then
+ mv /var/lib/mumble-server/mumble.crt /var/lib/mumble-server/mumble.pem
+ fi
+ chown -R mumble-server:mumble-server /var/lib/mumble-server
+
+ sed -i "s|welcometext=.*|welcometext=\" Welcome to $DEFAULT_DOMAIN_NAME mumble . Chat freely! \"|g" /etc/mumble-server.ini
+
+ if [[ $MUMBLE_SERVER_PASSWORD ]]; then
+ sed -i "s|serverpassword=.*|serverpassword=$MUMBLE_SERVER_PASSWORD|g" /etc/mumble-server.ini
+ fi
+
+ sed -i 's|#autobanAttempts.*|autobanAttempts = 10|g' /etc/mumble-server.ini
+ sed -i 's|#autobanTimeframe.*|autobanTimeframe = 120|g' /etc/mumble-server.ini
+ sed -i 's|#autobanTime.*|autobanTime = 300|g' /etc/mumble-server.ini
+ sed -i 's|#sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
+ sed -i 's|sendversion=.*|sendversion=False|g' /etc/mumble-server.ini
+ if ! grep -q "allowping" /etc/mumble-server.ini; then
+ echo 'allowping=False' >> /etc/mumble-server.ini
+ fi
+ sed -i 's|allowping=.*|allowping=False|g' /etc/mumble-server.ini
+ sed -i 's|#sslCert=.*|sslCert=/var/lib/mumble-server/mumble.pem|g' /etc/mumble-server.ini
+ sed -i 's|#sslKey=.*|sslKey=/var/lib/mumble-server/mumble.key|g' /etc/mumble-server.ini
+ sed -i 's|#certrequired=.*|certrequired=True|g' /etc/mumble-server.ini
+ sed -i 's|users=100|users=10|g' /etc/mumble-server.ini
+ sed -i 's|#channelnestinglimit=10|channelnestinglimit=10|g' /etc/mumble-server.ini
+ sed -i 's|#textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
+ sed -i 's|textmessagelength=.*|textmessagelength=1000|g' /etc/mumble-server.ini
+ sed -i 's|#imagemessagelength=.*|imagemessagelength=131072|g' /etc/mumble-server.ini
+ sed -i 's|#allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
+ sed -i 's|allowhtml=.*|allowhtml=False|g' /etc/mumble-server.ini
+ sed -i "s|port=.*|port=${MUMBLE_PORT}|g" /etc/mumble-server.ini
+
+ MUMBLE_ONION_HOSTNAME=$(add_onion_service mumble ${MUMBLE_PORT} ${MUMBLE_PORT})
+
+ # turn off logs by default
+ sed -i 's|logfile=.*|logfile=/dev/null|g' /etc/mumble-server.ini
+
+ update_default_domain
+ systemctl restart mumble-server
+
+ set_password_for_all_users mumble "$MUMBLE_SERVER_PASSWORD"
+
+ function_check configure_firewall_for_mumble
+ configure_firewall_for_mumble
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-pelican b/src/freedombone-app-pelican
new file mode 100755
index 00000000..d898a014
--- /dev/null
+++ b/src/freedombone-app-pelican
@@ -0,0 +1,351 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Static blog
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+STATIC_BLOG_INSTALL_DIR=/etc/staticblog
+PELICAN_THEMES_REPO="https://github.com/getpelican/pelican-themes"
+PELICAN_PLUGINS_REPO="https://github.com/getpelican/pelican-plugins"
+DEFAULT_BLOG_TITLE=$"Freedombone Blog"
+
+pelican_variables=(MY_USERNAME
+ STATIC_BLOG_DOMAIN)
+
+function configure_interactive_pelican {
+ echo -n ''
+}
+
+function install_interactive_pelican {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_pelican {
+ echo -n ''
+}
+
+function upgrade_pelican {
+ echo -n ''
+}
+
+function backup_local_pelican {
+ echo -n ''
+}
+
+function restore_local_pelican {
+ echo -n ''
+}
+
+function backup_remote_pelican {
+ echo -n ''
+}
+
+function restore_remote_pelican {
+ echo -n ''
+}
+
+function remove_pelican {
+ if [ -d /var/www/$STATIC_BLOG_DOMAIN/htdocs ]; then
+ rm -rf /var/www/$STATIC_BLOG_DOMAIN/htdocs
+ fi
+ pip uninstall pelican
+ remove_certs $STATIC_BLOG_DOMAIN
+}
+
+function create_pelican_conf {
+ STATIC_BLOG_FILE=$1
+
+ echo '#!/usr/bin/env python' > $STATIC_BLOG_FILE
+ echo '# -*- coding: utf-8 -*- #' >> $STATIC_BLOG_FILE
+ echo 'from __future__ import unicode_literals' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo "AUTHOR=u\"$MY_USERNAME\"" >> $STATIC_BLOG_FILE
+ echo "SITENAME=u'$DEFAULT_BLOG_TITLE'" >> $STATIC_BLOG_FILE
+ echo "SITEURL=''" >> $STATIC_BLOG_FILE
+ echo "PATH='content'" >> $STATIC_BLOG_FILE
+ echo 'TIMEZONE=u"Europe/London"' >> $STATIC_BLOG_FILE
+ echo "DEFAULT_LANG=u'en'" >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'FEED_ALL_ATOM=None' >> $STATIC_BLOG_FILE
+ echo 'CATEGORY_FEED_ATOM=None' >> $STATIC_BLOG_FILE
+ echo 'TRANSLATION_FEED_ATOM=None' >> $STATIC_BLOG_FILE
+ echo 'AUTHOR_FEED_ATOM=None' >> $STATIC_BLOG_FILE
+ echo 'AUTHOR_FEED_RSS=None' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'DEFAULT_PAGINATION=False' >> $STATIC_BLOG_FILE
+ echo 'RELATIVE_URLS=True' >> $STATIC_BLOG_FILE
+ echo "THEME='themes/nice-blog'" >> $STATIC_BLOG_FILE
+}
+
+function create_pelican_makefile {
+ STATIC_BLOG_FILE=$1
+
+ echo 'PY?=python' > $STATIC_BLOG_FILE
+ echo 'PELICAN?=pelican' >> $STATIC_BLOG_FILE
+ echo 'PELICANOPTS=' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'BASEDIR=$(CURDIR)' >> $STATIC_BLOG_FILE
+ echo 'INPUTDIR=$(BASEDIR)/content' >> $STATIC_BLOG_FILE
+ echo "OUTPUTDIR=$STATIC_BLOG_PATH" >> $STATIC_BLOG_FILE
+ echo 'CONFFILE=$(BASEDIR)/pelicanconf.py' >> $STATIC_BLOG_FILE
+ echo 'PUBLISHCONF=$(BASEDIR)/publishconf.py' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'DEBUG ?= 0' >> $STATIC_BLOG_FILE
+ echo 'ifeq ($(DEBUG), 1)' >> $STATIC_BLOG_FILE
+ echo -e '\tPELICANOPTS += -D' >> $STATIC_BLOG_FILE
+ echo 'endif' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'RELATIVE ?= 0' >> $STATIC_BLOG_FILE
+ echo 'ifeq ($(RELATIVE), 1)' >> $STATIC_BLOG_FILE
+ echo -e '\tPELICANOPTS += --relative-urls' >> $STATIC_BLOG_FILE
+ echo 'endif' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'html:' >> $STATIC_BLOG_FILE
+ echo -e '\t$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'clean:' >> $STATIC_BLOG_FILE
+ echo -e '\t[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'regenerate:' >> $STATIC_BLOG_FILE
+ echo -e '\t$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'serve:' >> $STATIC_BLOG_FILE
+ echo 'ifdef PORT' >> $STATIC_BLOG_FILE
+ echo -e '\tcd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)' >> $STATIC_BLOG_FILE
+ echo 'else' >> $STATIC_BLOG_FILE
+ echo -e '\tcd $(OUTPUTDIR) && $(PY) -m pelican.server' >> $STATIC_BLOG_FILE
+ echo 'endif' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'serve-global:' >> $STATIC_BLOG_FILE
+ echo 'ifdef SERVER' >> $STATIC_BLOG_FILE
+ echo -e '\tcd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)' >> $STATIC_BLOG_FILE
+ echo 'else' >> $STATIC_BLOG_FILE
+ echo -e '\tcd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0' >> $STATIC_BLOG_FILE
+ echo 'endif' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'devserver:' >> $STATIC_BLOG_FILE
+ echo 'ifdef PORT' >> $STATIC_BLOG_FILE
+ echo -e '\t$(BASEDIR)/develop_server.sh restart $(PORT)' >> $STATIC_BLOG_FILE
+ echo 'else' >> $STATIC_BLOG_FILE
+ echo -e '\t$(BASEDIR)/develop_server.sh restart' >> $STATIC_BLOG_FILE
+ echo 'endif' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'stopserver:' >> $STATIC_BLOG_FILE
+ echo -e '\t$(BASEDIR)/develop_server.sh stop' >> $STATIC_BLOG_FILE
+ echo -e '\t@echo "Stopped Pelican and SimpleHTTPServer processes running in background."' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'publish:' >> $STATIC_BLOG_FILE
+ echo -e '\t$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo '.PHONY: html clean regenerate serve serve-global devserver publish' >> $STATIC_BLOG_FILE
+}
+
+function create_pelican_publish_conf {
+ STATIC_BLOG_FILE=$1
+
+ echo '#!/usr/bin/env python' > $STATIC_BLOG_FILE
+ echo '# -*- coding: utf-8 -*- #' >> $STATIC_BLOG_FILE
+ echo 'from __future__ import unicode_literals' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'import os' >> $STATIC_BLOG_FILE
+ echo 'import sys' >> $STATIC_BLOG_FILE
+ echo 'sys.path.append(os.curdir)' >> $STATIC_BLOG_FILE
+ echo 'from pelicanconf import *' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo "SITEURL = ''" >> $STATIC_BLOG_FILE
+ echo 'RELATIVE_URLS = True' >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo "FEED_ALL_ATOM = 'feeds/all.atom.xml'" >> $STATIC_BLOG_FILE
+ echo "CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'" >> $STATIC_BLOG_FILE
+ echo '' >> $STATIC_BLOG_FILE
+ echo 'DELETE_OUTPUT_DIRECTORY = True' >> $STATIC_BLOG_FILE
+}
+
+function pelican_themes {
+ # Clone themes separately because the themes repo sometimes has bad refs
+ git clone https://github.com/KenMercusLai/BT3-Flat
+ git clone https://github.com/abr4xas/Casper2Pelican
+ git clone https://github.com/alexandrevicenzi/Flex
+ git clone https://github.com/allenskd/Nuja
+ git clone https://github.com/ir193/Responsive-Pelican
+ git clone https://github.com/nairobilug/pelican-alchemy
+ git clone https://github.com/livibetter-backup/apricot
+ git clone https://github.com/jody-frankowski/blue-penguin
+ git clone https://github.com/gregseth/pelican-bgh
+ git clone https://github.com/blueicefield/pelican-blueidea
+ git clone https://github.com/demianbrecht/pelican-bold
+ git clone https://github.com/fly/burrito
+ git clone https://github.com/yuex/pelican-iliork
+ git clone https://github.com/tbunnyman/pelican-chunk
+ git clone https://github.com/hdra/Pelican-Cid
+ git clone https://github.com/gilsondev/pelican-clean-blog
+ git clone https://github.com/porterjamesj/crowsfoot
+ git clone https://github.com/22decembre/dev-random3.git
+ git clone https://github.com/kura/eevee
+ git clone https://github.com/talha131/pelican-elegant.git
+ git clone https://github.com/callmefish/pelican-free-agent
+ git clone https://github.com/jsliang/pelican-fresh
+ git clone https://github.com/vaiski/genus
+ git clone https://github.com/PierrePaul/html5-dopetrope
+ git clone https://github.com/jvanz/pelican-hyde
+ git clone https://github.com/erfaan/pelican-theme-irfan
+ git clone https://github.com/slok/iris
+ git clone https://github.com/badele/pelican-theme-jesuislibre
+ git clone https://github.com/mothsART/pelican-lab
+ git clone https://github.com/siovene/lannisport
+ git clone https://github.com/lazycoder-ru/lazystrap
+ git clone https://github.com/chdoig/pelican-bootstrap3-lovers
+ git clone https://github.com/kplaube/maggner-pelican
+ git clone https://github.com/cpaulik/martin-pelican
+ git clone https://github.com/greizgh/pelican-material
+ git clone https://github.com/eswarm/materialistic-pelican
+ git clone https://github.com/cprieto/pelican-mediumfox
+ git clone https://github.com/onuraslan/medius
+ git clone https://github.com/lucachr/pelican-mg
+ git clone https://github.com/BYK/pelican-neat
+ git clone https://github.com/molivier/nest
+ git clone https://github.com/guilherme-toti/nice-blog
+ git clone https://github.com/gunchu/nikhil-theme
+ git clone https://github.com/wilbur-ma/niu-x2
+ git clone https://github.com/duilio/pelican-octopress-theme
+ git clone https://github.com/Parbhat/pelican-blue
+ git clone https://github.com/hdra/pelican-cait
+ git clone https://github.com/laughk/pelican-hss
+ git clone https://github.com/wrl/pelican-mockingbird
+ git clone https://github.com/fle/pelican-simplegrey
+ git clone https://github.com/fle/pelican-sober
+ git clone https://github.com/ingwinlu/pelican-twitchy
+ git clone https://github.com/badele/pelicanthemes-generator
+ git clone https://github.com/jjimenezlopez/pelipress
+ git clone https://github.com/xm3ron/pjport
+ git clone https://github.com/kdeldycke/plumage
+ git clone https://github.com/habibillah/pujangga
+ git clone https://github.com/danclaudiupop/pure
+ git clone https://github.com/wamonite/relapse
+ git clone https://github.com/ellisonleao/pelican-semantic-ui
+ git clone https://github.com/kdheepak89/pelican-smoothie
+ git clone https://github.com/if1live/pelican-sora
+ git clone https://github.com/redVi/storm
+ git clone https://github.com/keningle/pelican-sundown
+ git clone https://github.com/giulivo/pelican-svbhack
+ git clone https://github.com/wting/pelican-svbtle
+ git clone https://github.com/frankV/twenty-pelican-html5up
+ git clone https://github.com/robulouski/voidy-bootstrap
+ git clone https://github.com/samael500/w3-personal-blog
+ git clone https://github.com/jarv/water-iris
+ git clone https://github.com/kplaube/yapeme
+}
+
+function mesh_install_pelican {
+ if [[ $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
+ return
+ fi
+
+ chroot "$rootdir" apt-get -yq install python-pip
+ chroot "$rootdir" pip install ipython
+ chroot "$rootdir" pip install Markdown
+ chroot "$rootdir" pip install typogrify
+ chroot "$rootdir" pip install pelican
+
+ STATIC_BLOG_INSTALL_DIR=/home/$MY_USERNAME/CreateBlog
+ STATIC_BLOG_PATH=/home/$MY_USERNAME/Public/Blog
+
+ if [ ! -d $rootdir$STATIC_BLOG_INSTALL_DIR ]; then
+ mkdir -p $rootdir$STATIC_BLOG_INSTALL_DIR
+ fi
+
+ if [ ! -d $rootdir$STATIC_BLOG_PATH ]; then
+ mkdir -p $rootdir$STATIC_BLOG_PATH
+ fi
+
+ if [ ! -d $rootdir$STATIC_BLOG_INSTALL_DIR/content/images ]; then
+ mkdir -p $rootdir$STATIC_BLOG_INSTALL_DIR/content/images
+ fi
+
+ create_pelican_conf $rootdir$STATIC_BLOG_INSTALL_DIR/pelicanconf.py
+ create_pelican_makefile $rootdir$STATIC_BLOG_INSTALL_DIR/Makefile
+ create_pelican_publish_conf $rootdir$STATIC_BLOG_INSTALL_DIR/publishconf.py
+
+ mkdir -p $rootdir$STATIC_BLOG_INSTALL_DIR/themes
+ cd $rootdir$STATIC_BLOG_INSTALL_DIR/themes
+ pelican_themes
+
+ #git clone --recursive $PELICAN_PLUGINS_REPO $rootdir$STATIC_BLOG_INSTALL_DIR/plugins
+
+ chroot "$rootdir" chown -R $MY_USERNAME:$MY_USERNAME $STATIC_BLOG_INSTALL_DIR
+ chroot "$rootdir" chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Public
+}
+
+function install_pelican {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_pelican
+ return
+ fi
+
+ apt-get -yq install python-pip
+ pip install ipython
+ pip install Markdown
+ pip install typogrify
+ pip install pelican
+
+ STATIC_BLOG_INSTALL_DIR=/etc/blog
+ STATIC_BLOG_PATH=/var/www/$STATIC_BLOG_DOMAIN/htdocs
+
+ if [ ! -d $STATIC_BLOG_INSTALL_DIR ]; then
+ mkdir -p $STATIC_BLOG_INSTALL_DIR
+ fi
+
+ if [ ! -d $STATIC_BLOG_PATH ]; then
+ mkdir -p $STATIC_BLOG_PATH
+ fi
+
+ if [ ! -d $STATIC_BLOG_INSTALL_DIR/content ]; then
+ mkdir -p $STATIC_BLOG_INSTALL_DIR/content
+ fi
+
+ create_pelican_conf $STATIC_BLOG_INSTALL_DIR/pelicanconf.py
+ create_pelican_makefile $STATIC_BLOG_INSTALL_DIR/Makefile
+ create_pelican_publish_conf $STATIC_BLOG_INSTALL_DIR/publishconf.py
+
+ mkdir -p $PELICAN_THEMES_REPO $STATIC_BLOG_INSTALL_DIR/themes
+ cd $PELICAN_THEMES_REPO $STATIC_BLOG_INSTALL_DIR/themes
+ pelican_themes
+
+ #git clone --recursive $PELICAN_PLUGINS_REPO $STATIC_BLOG_INSTALL_DIR/plugins
+
+ chown -R $MY_USERNAME:$MY_USERNAME $STATIC_BLOG_INSTALL_DIR
+ chown -R www-data:www-data $STATIC_BLOG_PATH
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-pihole b/src/freedombone-app-pihole
new file mode 100755
index 00000000..153c77f0
--- /dev/null
+++ b/src/freedombone-app-pihole
@@ -0,0 +1,408 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# pi-hole ad blocker
+#
+# Adapted from instructions at:
+# http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0/#manualsetup
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim adblocker'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+PIHOLE_IFACE=eth0
+PIHOLE_DNS1='85.214.73.63'
+PIHOLE_DNS2='213.73.91.35'
+
+piholeBasename=pihole
+piholeDir=/etc/$piholeBasename
+PIHOLE_CUSTOM_ADLIST=$piholeDir/adlists.list
+PIHOLE_BLACKLIST=$piholeDir/blacklist.txt
+PIHOLE_WHITELIST=$piholeDir/whitelist.txt
+
+PIHOLE_REPO="https://github.com/pi-hole/pi-hole"
+PIHOLE_COMMIT='69e3a45083bd311aecdbc3935986dac5ce64caa8'
+
+pihole_variables=(ONION_ONLY
+ PIHOLE_IFACE
+ PIHOLE_DNS1
+ PIHOLE_DNS2)
+
+function pihole_copy_files {
+ if [ ! -d /etc/.pihole ]; then
+ mkdir /etc/.pihole
+ fi
+ cp $INSTALL_DIR/pihole/adlists.default /etc/.pihole/adlists.default
+ cp $INSTALL_DIR/pihole/adlists.default $piholeDir/adlists.default
+ if [ ! -f $PIHOLE_CUSTOM_ADLIST ]; then
+ cp $INSTALL_DIR/pihole/adlists.default $PIHOLE_CUSTOM_ADLIST
+ fi
+ cp $INSTALL_DIR/pihole/advanced/Scripts/* /opt/$piholeBasename
+ if [ -f /etc/dnsmasq.d/01-pihole.conf ]; then
+ rm /etc/dnsmasq.d/01-pihole.conf
+ fi
+ cp $INSTALL_DIR/pihole/advanced/pihole.cron /etc/cron.d/pihole
+ cp $INSTALL_DIR/pihole/gravity.sh /opt/$piholeBasename
+ chmod +x /opt/pihole/*.sh
+}
+
+function pihole_change_ipv4 {
+ new_ipv4="$1"
+ if [ -f /usr/local/bin/pihole ]; then
+ setupVars=$piholeDir/setupVars.conf
+ if [ -f $setupVars ]; then
+ sed -i "s|IPv4_address=.*|IPv4_address=${new_ipv4}|g" $setupVars
+ fi
+ fi
+}
+
+function pihole_update {
+ if [ ! -f /usr/local/bin/gravity.sh ]; then
+ return
+ fi
+
+ if [ ! -f $HOME/${PROJECT_NAME}-wifi.cfg ]; then
+ PIHOLE_IFACE=eth0
+ else
+ read_config_param WIFI_INTERFACE
+ PIHOLE_IFACE=$WIFI_INTERFACE
+ fi
+
+ IPv4_address="$(get_ipv4_address)"
+ IPv6_address="$(get_ipv6_address)"
+
+ setupVars=$piholeDir/setupVars.conf
+ echo "piholeInterface=${PIHOLE_IFACE}" > ${setupVars}
+ echo "IPv4_address=${IPv4_address}" >> ${setupVars}
+ if [ ${#IPv6_address} -gt 0 ]; then
+ echo "IPv6_address=${IPv6_address}" >> ${setupVars}
+ fi
+ echo "piholeDNS1=${PIHOLE_DNS1}" >> ${setupVars}
+ echo "piholeDNS2=${PIHOLE_DNS1}" >> ${setupVars}
+
+ echo 'domain-needed' > /etc/dnsmasq.conf
+ echo 'bogus-priv' >> /etc/dnsmasq.conf
+ echo 'no-resolv' >> /etc/dnsmasq.conf
+ echo "server=${PIHOLE_DNS1}" >> /etc/dnsmasq.conf
+ echo "server=${PIHOLE_DNS2}" >> /etc/dnsmasq.conf
+ echo "interface=${PIHOLE_IFACE}" >> /etc/dnsmasq.conf
+ echo 'listen-address=127.0.0.1' >> /etc/dnsmasq.conf
+
+ pihole -g
+ systemctl restart dnsmasq
+}
+
+function pihole_change_upstream_dns {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Ad Blocker Upstream DNS" \
+ --radiolist $"Pick a domain name service (DNS):" 25 50 16 \
+ 1 $"Digital Courage" on \
+ 2 $"German Privacy Foundation 1" off \
+ 3 $"German Privacy Foundation 2" off \
+ 4 $"Chaos Computer Club" off \
+ 5 $"ClaraNet" off \
+ 6 $"OpenNIC 1" off \
+ 7 $"OpenNIC 2" off \
+ 8 $"OpenNIC 3" off \
+ 9 $"OpenNIC 4" off \
+ 10 $"OpenNIC 5" off \
+ 11 $"OpenNIC 6" off \
+ 12 $"OpenNIC 7" off \
+ 13 $"PowerNS" off \
+ 14 $"ValiDOM" off \
+ 15 $"Freie Unzensierte" off \
+ 16 $"Google" off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) PIHOLE_DNS1='85.214.73.63'
+ PIHOLE_DNS2='213.73.91.35'
+ ;;
+ 2) PIHOLE_DNS1='87.118.100.175'
+ PIHOLE_DNS2='94.75.228.29'
+ ;;
+ 3) PIHOLE_DNS1='85.25.251.254'
+ PIHOLE_DNS2='2.141.58.13'
+ ;;
+ 4) PIHOLE_DNS1='213.73.91.35'
+ PIHOLE_DNS2='85.214.73.63'
+ ;;
+ 5) PIHOLE_DNS1='212.82.225.7'
+ PIHOLE_DNS2='212.82.226.212'
+ ;;
+ 6) PIHOLE_DNS1='58.6.115.42'
+ PIHOLE_DNS2='58.6.115.43'
+ ;;
+ 7) PIHOLE_DNS1='119.31.230.42'
+ PIHOLE_DNS2='200.252.98.162'
+ ;;
+ 8) PIHOLE_DNS1='217.79.186.148'
+ PIHOLE_DNS2='81.89.98.6'
+ ;;
+ 9) PIHOLE_DNS1='78.159.101.37'
+ PIHOLE_DNS2='203.167.220.153'
+ ;;
+ 10) PIHOLE_DNS1='82.229.244.191'
+ PIHOLE_DNS2='82.229.244.191'
+ ;;
+ 11) PIHOLE_DNS1='216.87.84.211'
+ PIHOLE_DNS2='66.244.95.20'
+ ;;
+ 12) PIHOLE_DNS1='207.192.69.155'
+ PIHOLE_DNS2='72.14.189.120'
+ ;;
+ 13) PIHOLE_DNS1='194.145.226.26'
+ PIHOLE_DNS2='77.220.232.44'
+ ;;
+ 14) PIHOLE_DNS1='78.46.89.147'
+ PIHOLE_DNS2='88.198.75.145'
+ ;;
+ 15) PIHOLE_DNS1='85.25.149.144'
+ PIHOLE_DNS2='87.106.37.196'
+ ;;
+ 16) PIHOLE_DNS1='8.8.8.8'
+ PIHOLE_DNS2='4.4.4.4'
+ ;;
+ 255) exit 1;;
+ esac
+ write_config_param "PIHOLE_DNS1" "$PIHOLE_DNS1"
+ write_config_param "PIHOLE_DNS2" "$PIHOLE_DNS2"
+}
+
+function update_pihole_interactive {
+ clear
+ echo $'Updating Ad Blocker Lists'
+ echo ''
+ pihole_update
+}
+
+function configure_firewall_for_pihole {
+ firewall_add DNS 53
+}
+
+function pihole_pause {
+ pihole disable
+ dialog --title $"Pause Ad Blocker" \
+ --msgbox $"Ad blocking is paused" 6 60
+}
+
+function pihole_resume {
+ pihole enable
+ dialog --title $"Resume Ad Blocker" \
+ --msgbox $"Ad blocking has resumed" 6 60
+}
+
+function configure_interactive_pihole {
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"Ad Blocker" \
+ --radiolist $"Choose an operation:" 16 70 7 \
+ 1 $"Edit ads list" off \
+ 2 $"Edit blacklisted domain names" off \
+ 3 $"Edit whitelisted domain names" off \
+ 4 $"Change upstream DNS servers" off \
+ 5 $"Pause blocker" off \
+ 6 $"Resume blocker" off \
+ 7 $"Exit" on 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) editor $PIHOLE_CUSTOM_ADLIST
+ update_pihole_interactive
+ ;;
+ 2) editor $PIHOLE_BLACKLIST
+ update_pihole_interactive
+ ;;
+ 3) editor $PIHOLE_WHITELIST
+ update_pihole_interactive
+ ;;
+ 4) pihole_change_upstream_dns
+ update_pihole_interactive
+ ;;
+ 5) pihole_pause
+ ;;
+ 6) pihole_resume
+ ;;
+ 7) break;;
+ esac
+ done
+}
+
+function install_interactive_pihole {
+ APP_INSTALLED=1
+}
+
+function reconfigure_pihole {
+ echo -n ''
+}
+
+function upgrade_pihole {
+ function_check set_repo_commit
+ set_repo_commit $INSTALL_DIR/pihole "pihole commit" "$PIHOLE_COMMIT" $PIHOLE_REPO
+
+ pihole_copy_files
+ pihole_update
+}
+
+function backup_local_pihole {
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $piholeDir pihole
+}
+
+function restore_local_pihole {
+ function_check restore_directory_from_usb
+ restore_directory_from_usb / pihole
+}
+
+function backup_remote_pihole {
+ function_check backup_directory_to_friend
+ backup_directory_to_friend $piholeDir pihole
+}
+
+function restore_remote_pihole {
+ function_check restore_directory_from_friend
+ restore_directory_from_friend / pihole
+}
+
+function remove_pihole {
+ apt-get -yq remove --purge dnsmasq
+
+ if [ ! -d /var/www/pihole ]; then
+ rm -rf /var/www/pihole
+ fi
+
+ if [ -f /usr/local/bin/gravity.sh ]; then
+ rm /usr/local/bin/gravity.sh
+ fi
+
+ if [ -f /usr/local/bin/pihole ]; then
+ rm /usr/local/bin/pihole
+ fi
+
+ if [ -d /opt/pihole ]; then
+ rm -rf /opt/pihole
+ fi
+
+ if [ -d $piholeDir ]; then
+ rm -rf $piholeDir
+ fi
+
+ if [ -d /etc/.pihole ]; then
+ rm -rf /etc/.pihole
+ fi
+
+ if [ -f /var/log/pihole.log ]; then
+ rm /var/log/pihole.log
+ fi
+
+ if [ -f /etc/cron.d/pihole ]; then
+ rm /etc/cron.d/pihole
+ fi
+
+ if [ -d $INSTALL_DIR/pihole ]; then
+ rm -rf $INSTALL_DIR/pihole
+ fi
+
+ firewall_remove 53
+ userdel -r pihole
+}
+
+function install_pihole {
+ apt-get -yq install dnsmasq curl
+ adduser --disabled-login --gecos 'pi-hole' pihole
+ usermod -a -G www-data pihole
+
+ systemctl enable dnsmasq
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+
+ if [ ! -d $INSTALL_DIR/pihole ]; then
+ cd $INSTALL_DIR
+ git_clone $PIHOLE_REPO pihole
+ if [ ! -d $INSTALL_DIR/pihole ]; then
+ exit 523925
+ fi
+ cd $INSTALL_DIR/pihole
+ git checkout $PIHOLE_COMMIT -b $PIHOLE_COMMIT
+ set_completion_param "pihole commit" "$PIHOLE_COMMIT"
+ fi
+
+ if [ ! -d /var/www/pihole/htdocs ]; then
+ mkdir -p /var/www/pihole/htdocs
+ fi
+
+ # blank file which takes the place of ads
+ echo '' > /var/www/pihole/htdocs/index.html
+ echo '' >> /var/www/pihole/htdocs/index.html
+ echo '' >> /var/www/pihole/htdocs/index.html
+ echo '' >> /var/www/pihole/htdocs/index.html
+
+ if [ ! -f $INSTALL_DIR/pihole/gravity.sh ]; then
+ exit 26738
+ fi
+ cp $INSTALL_DIR/pihole/gravity.sh /usr/local/bin/gravity.sh
+ chmod 755 /usr/local/bin/gravity.sh
+
+ if [ ! -f $INSTALL_DIR/pihole/pihole ]; then
+ exit 52935
+ fi
+ cp $INSTALL_DIR/pihole/pihole /usr/local/bin/pihole
+ chmod 755 /usr/local/bin/pihole
+
+ if [ ! -d $piholeDir ]; then
+ mkdir $piholeDir
+ fi
+ if [ ! -d /opt/pihole ]; then
+ mkdir -p /opt/pihole
+ fi
+
+ pihole_copy_files
+
+ chown -R www-data:www-data /var/www/pihole/htdocs
+
+ configure_firewall_for_pihole
+
+ pihole_update
+
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-postactiv b/src/freedombone-app-postactiv
new file mode 100755
index 00000000..64ca8ac2
--- /dev/null
+++ b/src/freedombone-app-postactiv
@@ -0,0 +1,663 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# postactiv application
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim media'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+POSTACTIV_DOMAIN_NAME=
+POSTACTIV_CODE=
+POSTACTIV_ONION_PORT=8100
+POSTACTIV_REPO="https://git.postactiv.com/postActiv/postActiv.git"
+POSTACTIV_COMMIT='e14ef2385a2d8083b712ce1ae2f4bf10c0814679'
+POSTACTIV_ADMIN_PASSWORD=
+
+# script which causes old posts to expire
+postactiv_expire_script=/usr/bin/postactiv-expire
+
+postactiv_variables=(POSTACTIV_COMMIT
+ ONION_ONLY
+ POSTACTIV_DOMAIN_NAME
+ POSTACTIV_CODE
+ DDNS_PROVIDER
+ MY_USERNAME)
+
+function remove_user_postactiv {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp postactiv
+
+ function_check get_completion_param
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+ if [ -d /var/www/$POSTACTIV_DOMAIN_NAME ]; then
+ cd /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
+ php scripts/deleteprofile.php -n $remove_username -y
+ fi
+}
+
+function add_user_postactiv {
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a postactiv -p "$new_user_password"
+
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+ if [ -d /var/www/${POSTACTIV_DOMAIN_NAME}/htdocs ]; then
+ cd /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
+ php scripts/registeruser.php -n $new_username -w "$new_user_password" -e "$new_username@$HOSTNAME"
+ ${PROJECT_NAME}-addemail -u $new_username -e "noreply@$POSTACTIV_DOMAIN_NAME" -g postactiv --public no
+ echo '0'
+ else
+ echo '1'
+ fi
+}
+
+function install_interactive_postactiv {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ POSTACTIV_DOMAIN_NAME='postactiv.local'
+ else
+ POSTACTIV_DETAILS_COMPLETE=
+ while [ ! $POSTACTIV_DETAILS_COMPLETE ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"PostActiv Configuration" \
+ --form $"\nPlease enter your postactiv details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \
+ $"Domain:" 1 1 "$(grep 'POSTACTIV_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
+ $"Code:" 2 1 "$(grep 'POSTACTIV_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 25 33 255 \
+ 2> $data
+ else
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"PostActiv Configuration" \
+ --form $"\nPlease enter your postactiv details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \
+ $"Domain:" 1 1 "$(grep 'POSTACTIV_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
+ 2> $data
+ fi
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ POSTACTIV_DOMAIN_NAME=$(cat $data | sed -n 1p)
+ img_url=$(cat $data | sed -n 3p)
+ if [ $POSTACTIV_DOMAIN_NAME ]; then
+ if [[ $POSTACTIV_DOMAIN_NAME == "$HUBZILLA_DOMAIN_NAME" ]]; then
+ POSTACTIV_DOMAIN_NAME=""
+ fi
+ TEST_DOMAIN_NAME=$POSTACTIV_DOMAIN_NAME
+ validate_domain_name
+ if [[ $TEST_DOMAIN_NAME != $POSTACTIV_DOMAIN_NAME ]]; then
+ POSTACTIV_DOMAIN_NAME=
+ dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
+ else
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ POSTACTIV_CODE=$(cat $data | sed -n 4p)
+ validate_freedns_code "$POSTACTIV_CODE"
+ if [ ! $VALID_CODE ]; then
+ POSTACTIV_DOMAIN_NAME=
+ fi
+ fi
+ fi
+ fi
+ if [ $POSTACTIV_DOMAIN_NAME ]; then
+ POSTACTIV_DETAILS_COMPLETE="yes"
+ fi
+ done
+
+ # save the results in the config file
+ write_config_param "POSTACTIV_CODE" "$POSTACTIV_CODE"
+ fi
+ write_config_param "POSTACTIV_DOMAIN_NAME" "$POSTACTIV_DOMAIN_NAME"
+ APP_INSTALLED=1
+}
+
+function change_password_postactiv {
+ curr_username="$1"
+ new_user_password="$2"
+
+ read_config_param ${POSTACTIV_DOMAIN_NAME}
+
+ cd /var/www/${POSTACTIV_DOMAIN_NAME}/htdocs
+ ./scripts/setpassword "$curr_username" "$new_user_password"
+
+ ${PROJECT_NAME}-pass -u "$curr_username" -a postactiv -p "$new_user_password"
+}
+
+function postactiv_create_database {
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ POSTACTIV_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $POSTACTIV_ADMIN_PASSWORD ]; then
+ POSTACTIV_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $POSTACTIV_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database postactiv "$POSTACTIV_ADMIN_PASSWORD" $MY_USERNAME
+}
+
+function postactiv_running_script {
+ # check that the daemon is running
+ echo '#!/bin/bash' > /etc/cron.hourly/postactiv-daemons
+ echo 'daemon_lines=$(ps aux | grep "scripts/queuedaemon.php" | grep "/var/www")' >> /etc/cron.hourly/postactiv-daemons
+ echo 'if [[ $daemon_lines != *"/var/www/"* ]]; then' >> /etc/cron.hourly/postactiv-daemons
+
+ echo " ADMIN_USER=\$(cat $COMPLETION_FILE | grep 'Admin user' | awk -F ':' '{print \$2}')" >> /etc/cron.hourly/postactiv-daemons
+ echo ' MY_EMAIL_ADDRESS=$ADMIN_USER@$HOSTNAME' >> /etc/cron.hourly/postactiv-daemons
+ echo ' echo "Restarting postactiv daemons" | mail -s "postactiv daemons not found" $MY_EMAIL_ADDRESS' >> /etc/cron.hourly/postactiv-daemons
+ echo " cd /var/www/${POSTACTIV_DOMAIN_NAME}/htdocs" >> /etc/cron.hourly/postactiv-daemons
+ echo ' scripts/startdaemons.sh' >> /etc/cron.hourly/postactiv-daemons
+ echo 'fi' >> /etc/cron.hourly/postactiv-daemons
+ chmod +x /etc/cron.hourly/postactiv-daemons
+}
+
+function reconfigure_postactiv {
+ echo -n ''
+}
+
+function upgrade_postactiv {
+ if grep -q "postactiv domain" $COMPLETION_FILE; then
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit /var/www/$POSTACTIV_DOMAIN_NAME/htdocs "postactiv commit" "$POSTACTIV_COMMIT" $POSTACTIV_REPO
+
+ function_check postactiv_running_script
+ postactiv_running_script
+}
+
+
+function backup_local_postactiv {
+ POSTACTIV_DOMAIN_NAME='postactiv'
+ if grep -q "postactiv domain" $COMPLETION_FILE; then
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+ fi
+
+ source_directory=/var/www/${POSTACTIV_DOMAIN_NAME}/htdocs
+ if [ -d $source_directory ]; then
+ dest_directory=postactiv
+ function_check suspend_site
+ suspend_site ${POSTACTIV_DOMAIN_NAME}
+
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+
+ function_check backup_database_to_usb
+ backup_database_to_usb postactiv
+
+ function_check restart_site
+ restart_site
+ fi
+}
+
+function restore_local_postactiv {
+ if ! grep -q "postactiv domain" $COMPLETION_FILE; then
+ return
+ fi
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+ if [ $POSTACTIV_DOMAIN_NAME ]; then
+ temp_restore_dir=/root/temppostactiv
+ postactiv_dir=/var/www/${POSTACTIV_DOMAIN_NAME}/htdocs
+ # stop the daemons
+ cd $postactiv_dir
+ scripts/stopdaemons.sh
+
+ function_check postactiv_create_database
+ postactiv_create_database
+
+ restore_database postactiv ${POSTACTIV_DOMAIN_NAME}
+ if [ -d $temp_restore_dir ]; then
+ rm -rf $temp_restore_dir
+ fi
+
+ # start the daemons
+ cd $postactiv_dir
+ scripts/startdaemons.sh
+ fi
+}
+
+function backup_remote_postactiv {
+ if grep -q "postactiv domain" $COMPLETION_FILE; then
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+ temp_backup_dir=/var/www/${POSTACTIV_DOMAIN_NAME}/htdocs
+ if [ -d $temp_backup_dir ]; then
+ function_check suspend_site
+ suspend_site ${POSTACTIV_DOMAIN_NAME}
+
+ function_check backup_database_to_friend
+ backup_database_to_friend postactiv
+
+ function_check backup_directory_to_friend
+ backup_directory_to_friend $temp_backup_dir postactiv
+
+ function_check restart_site
+ restart_site
+ else
+ echo $"postactiv domain specified but not found in ${temp_backup_dir}"
+ fi
+ fi
+}
+
+function restore_remote_postactiv {
+ if grep -q "postactiv domain" $COMPLETION_FILE; then
+ POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
+
+ # stop the daemons
+ cd /var/www/${POSTACTIV_DOMAIN_NAME}/htdocs
+ ./scripts/stopdaemons.sh
+
+ function_check postactiv_create_database
+ postactiv_create_database
+
+ function_check restore_database_from_friend
+ restore_database_from_friend postactiv ${POSTACTIV_DOMAIN_NAME}
+ if [ -d /root/temppostactiv ]; then
+ rm -rf /root/temppostactiv
+ fi
+
+ # start the daemons
+ cd /var/www/${POSTACTIV_DOMAIN_NAME}/htdocs
+ ./scripts/startdaemons.sh
+ fi
+}
+
+function remove_postactiv {
+ if [ ${#POSTACTIV_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+ read_config_param "POSTACTIV_DOMAIN_NAME"
+ read_config_param "MY_USERNAME"
+ echo "Removing $POSTACTIV_DOMAIN_NAME"
+ nginx_dissite $POSTACTIV_DOMAIN_NAME
+ remove_certs $POSTACTIV_DOMAIN_NAME
+ if [ -f /var/www/$POSTACTIV_DOMAIN_NAME/htdocs/scripts/stopdaemons.sh ]; then
+ cd /var/www/$POSTACTIV_DOMAIN_NAME/htdocs/scripts
+ ./scripts/stopdaemons.sh
+ fi
+ if [ -d /var/www/$POSTACTIV_DOMAIN_NAME ]; then
+ rm -rf /var/www/$POSTACTIV_DOMAIN_NAME
+ fi
+ if [ -f /etc/nginx/sites-available/$POSTACTIV_DOMAIN_NAME ]; then
+ rm /etc/nginx/sites-available/$POSTACTIV_DOMAIN_NAME
+ fi
+ function_check drop_database
+ drop_database postactiv
+ function_check remove_onion_service
+ remove_onion_service postactiv ${POSTACTIV_ONION_PORT}
+ if grep -q "postactiv" /etc/crontab; then
+ sed -i "/postactiv/d" /etc/crontab
+ fi
+ remove_app postactiv
+ remove_completion_param install_postactiv
+ sed -i '/postactiv/d' $COMPLETION_FILE
+ if [ -f /etc/cron.hourly/postactiv-daemons ]; then
+ rm /etc/cron.hourly/postactiv-daemons
+ fi
+ remove_backup_database_local postactiv
+
+ function_check remove_ddns_domain
+ remove_ddns_domain $POSTACTIV_DOMAIN_NAME
+}
+
+function install_postactiv_main {
+ if [ ! $POSTACTIV_DOMAIN_NAME ]; then
+ echo $'No domain name was given for postactiv'
+ exit 7359
+ fi
+
+ if [[ $(app_is_installed postactiv_main) == "1" ]]; then
+ return
+ fi
+
+ function_check postactiv_running_script
+ postactiv_running_script
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check repair_databases_script
+ repair_databases_script
+
+ apt-get -yq install php-gettext php5-curl php5-gd php5-mysql git curl php-xml-parser
+ apt-get -yq install php5-memcached php5-intl
+
+ if [ ! -d /var/www/$POSTACTIV_DOMAIN_NAME ]; then
+ mkdir /var/www/$POSTACTIV_DOMAIN_NAME
+ fi
+ if [ ! -d /var/www/$POSTACTIV_DOMAIN_NAME/htdocs ]; then
+ function_check git_clone
+ git_clone $POSTACTIV_REPO /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
+ if [ ! -d /var/www/$POSTACTIV_DOMAIN_NAME/htdocs ]; then
+ echo $'Unable to clone postactiv repo'
+ exit 87525
+ fi
+ fi
+
+ cd /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
+ git checkout $POSTACTIV_COMMIT -b $POSTACTIV_COMMIT
+ set_completion_param "postactiv commit" "$POSTACTIV_COMMIT"
+
+ chmod a+w /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
+ chown www-data:www-data /var/www/$POSTACTIV_DOMAIN_NAME/htdocs
+ chmod +x /var/www/$POSTACTIV_DOMAIN_NAME/htdocs/scripts/maildaemon.php
+
+ function_check postactiv_create_database
+ postactiv_create_database
+
+ if [ ! -f "/etc/aliases" ]; then
+ touch /etc/aliases
+ fi
+ if ! grep -q "www-data: root" /etc/aliases; then
+ echo 'www-data: root' >> /etc/aliases
+ fi
+ if ! grep -q "/var/www/$POSTACTIV_DOMAIN_NAME/htdocs/scripts/maildaemon.php" /etc/aliases; then
+ echo "*: /var/www/$POSTACTIV_DOMAIN_NAME/htdocs/scripts/maildaemon.php" >> /etc/aliases
+ fi
+
+ function_check add_ddns_domain
+ add_ddns_domain $POSTACTIV_DOMAIN_NAME
+
+ postactiv_nginx_site=/etc/nginx/sites-available/$POSTACTIV_DOMAIN_NAME
+ if [[ $ONION_ONLY == "no" ]]; then
+ function_check nginx_http_redirect
+ nginx_http_redirect $POSTACTIV_DOMAIN_NAME
+ echo 'server {' >> $postactiv_nginx_site
+ echo ' listen 443 ssl;' >> $postactiv_nginx_site
+ echo ' listen [::]:443 ssl;' >> $postactiv_nginx_site
+ echo " server_name $POSTACTIV_DOMAIN_NAME;" >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Security' >> $postactiv_nginx_site
+ function_check nginx_ssl
+ nginx_ssl $POSTACTIV_DOMAIN_NAME
+
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $POSTACTIV_DOMAIN_NAME
+
+ echo ' add_header Strict-Transport-Security max-age=15768000;' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Logs' >> $postactiv_nginx_site
+ echo ' access_log /dev/null;' >> $postactiv_nginx_site
+ echo ' error_log /dev/null;' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Root' >> $postactiv_nginx_site
+ echo " root /var/www/$POSTACTIV_DOMAIN_NAME/htdocs;" >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Index' >> $postactiv_nginx_site
+ echo ' index index.php;' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # PHP' >> $postactiv_nginx_site
+ echo ' location ~ \.php {' >> $postactiv_nginx_site
+ echo ' include snippets/fastcgi-php.conf;' >> $postactiv_nginx_site
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Location' >> $postactiv_nginx_site
+ echo ' location / {' >> $postactiv_nginx_site
+ function_check nginx_limits
+ nginx_limits $POSTACTIV_DOMAIN_NAME '15m'
+ echo ' try_files $uri $uri/ @postactiv;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Fancy URLs' >> $postactiv_nginx_site
+ echo ' location @postactiv {' >> $postactiv_nginx_site
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Restrict access that is unnecessary anyway' >> $postactiv_nginx_site
+ echo ' location ~ /\.(ht|git) {' >> $postactiv_nginx_site
+ echo ' deny all;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ nginx_keybase ${POSTACTIV_DOMAIN_NAME}
+ echo '}' >> $postactiv_nginx_site
+ else
+ echo -n '' > $postactiv_nginx_site
+ fi
+ echo 'server {' >> $postactiv_nginx_site
+ echo " listen 127.0.0.1:$POSTACTIV_ONION_PORT default_server;" >> $postactiv_nginx_site
+ echo " server_name $POSTACTIV_DOMAIN_NAME;" >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing $POSTACTIV_DOMAIN_NAME
+ echo '' >> $postactiv_nginx_site
+ echo ' # Logs' >> $postactiv_nginx_site
+ echo ' access_log /dev/null;' >> $postactiv_nginx_site
+ echo ' error_log /dev/null;' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Root' >> $postactiv_nginx_site
+ echo " root /var/www/$POSTACTIV_DOMAIN_NAME/htdocs;" >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Index' >> $postactiv_nginx_site
+ echo ' index index.php;' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # PHP' >> $postactiv_nginx_site
+ echo ' location ~ \.php {' >> $postactiv_nginx_site
+ echo ' include snippets/fastcgi-php.conf;' >> $postactiv_nginx_site
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Location' >> $postactiv_nginx_site
+ echo ' location / {' >> $postactiv_nginx_site
+ function_check nginx_limits
+ nginx_limits $POSTACTIV_DOMAIN_NAME '15m'
+ echo ' try_files $uri $uri/ @postactiv;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Fancy URLs' >> $postactiv_nginx_site
+ echo ' location @postactiv {' >> $postactiv_nginx_site
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ echo ' # Restrict access that is unnecessary anyway' >> $postactiv_nginx_site
+ echo ' location ~ /\.(ht|git) {' >> $postactiv_nginx_site
+ echo ' deny all;' >> $postactiv_nginx_site
+ echo ' }' >> $postactiv_nginx_site
+ echo '' >> $postactiv_nginx_site
+ nginx_keybase ${POSTACTIV_DOMAIN_NAME}
+ echo '}' >> $postactiv_nginx_site
+
+ function_check configure_php
+ configure_php
+
+ function_check create_site_certificate
+ create_site_certificate $POSTACTIV_DOMAIN_NAME 'yes'
+
+ # Ensure that the database gets backed up locally, if remote
+ # backups are not being used
+ function_check backup_databases_script_header
+ backup_databases_script_header
+
+ function_check backup_database_local
+ backup_database_local postactiv
+
+ function_check nginx_ensite
+ nginx_ensite $POSTACTIV_DOMAIN_NAME
+
+ # NOTE: For the typical case always enable SSL and only
+ # disable it if in onion only mode. This is due to complexities
+ # with the way URLs are generated by postactiv
+ postactiv_ssl='always'
+ if [[ $ONION_ONLY != 'no' ]]; then
+ postactiv_ssl='never'
+ fi
+
+ POSTACTIV_ONION_HOSTNAME=$(add_onion_service postactiv 80 ${POSTACTIV_ONION_PORT})
+
+ POSTACTIV_SERVER=${POSTACTIV_DOMAIN_NAME}
+ if [[ $ONION_ONLY != 'no' ]]; then
+ POSTACTIV_SERVER=${POSTACTIV_ONION_HOSTNAME}
+ fi
+
+ # Create the configuration
+ postactiv_installer=/var/www/${POSTACTIV_DOMAIN_NAME}/htdocs/scripts/install_cli.php
+ if [ ! -f $postactiv_installer ]; then
+ echo $'No postactiv commandline installer found'
+ exit 53026
+ fi
+ ${postactiv_installer} --server "${POSTACTIV_SERVER}" \
+ --host="localhost" --database="postactiv" \
+ --dbtype=mysql --username="root" -v \
+ --password="$MARIADB_PASSWORD" \
+ --sitename=$"postactiv" --fancy='yes' \
+ --admin-nick="$MY_USERNAME" \
+ --admin-pass="$POSTACTIV_ADMIN_PASSWORD" \
+ --site-profile="community" \
+ --ssl=${postactiv_ssl}
+ # There can be a lot of warnings here so the return value check is disabled
+ #if [ ! "$?" = "0" ]; then
+ # # failed to install
+ # echo $'Could not install postactiv'
+ # exit 72357
+ #fi
+
+ # check postactiv has a config file
+ postactiv_config_file=/var/www/$POSTACTIV_DOMAIN_NAME/htdocs/config.php
+ if [ ! -f $postactiv_config_file ]; then
+ echo $'Postactiv config.php not found'
+ exit 87586
+ fi
+
+ # Some useful settings
+ if ! grep -q "Recommended postactiv settings" $postactiv_config_file; then
+ echo "" >> $postactiv_config_file
+ echo "// Recommended postactiv settings" >> $postactiv_config_file
+ echo "\$config['thumbnail']['maxsize'] = 3000;" >> $postactiv_config_file
+ echo "\$config['profile']['delete'] = true;" >> $postactiv_config_file
+ echo "\$config['profile']['changenick'] = true;" >> $postactiv_config_file
+ echo "\$config['public']['localonly'] = false;" >> $postactiv_config_file
+ echo "addPlugin('StoreRemoteMedia');" >> $postactiv_config_file
+ echo "\$config['queue']['enabled'] = true;" >> $postactiv_config_file
+ echo "\$config['queue']['daemon'] = true;" >> $postactiv_config_file
+ echo "\$config['ostatus']['hub_retries'] = 3;" >> $postactiv_config_file
+ fi
+
+ # This improves performance
+ sed -i "s|//\$config\['db'\]\['schemacheck'\].*|\$config\['db'\]\['schemacheck'\] = 'script';|g" $postactiv_config_file
+
+ # remove the install script
+ if [ -f /var/www/$POSTACTIV_DOMAIN_NAME/htdocs/install.php ]; then
+ rm /var/www/$POSTACTIV_DOMAIN_NAME/htdocs/install.php
+ fi
+
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$POSTACTIV_DOMAIN_NAME" -g postactiv --public no
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a postactiv -p "$POSTACTIV_ADMIN_PASSWORD"
+
+ set_completion_param "postactiv domain" "$POSTACTIV_DOMAIN_NAME"
+
+ install_completed postactiv_main
+}
+
+function expire_postactiv_posts {
+ # To prevent the database size from growing endlessly this script expires posts
+ # after a number of months
+ if [ ! -d /var/www/$POSTACTIV_DOMAIN_NAME/htdocs ]; then
+ return
+ fi
+
+ echo ' $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo '// postactiv post expiry script, based on StatExpire by Tony Baldwin' >> $postactiv_expire_script
+ echo '// https://github.com/tonybaldwin/statexpire' >> $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo '$oldate=date(("Y-m-d"), strtotime("-3 months"));' >> $postactiv_expire_script
+ echo '$username="root";' >> $postactiv_expire_script
+ echo "\$password=shell_exec('${PROJECT_NAME}-pass -u root -a mariadb');" >> $postactiv_expire_script
+ echo '$database="postactiv";' >> $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo 'if (!$link = mysql_connect("localhost", $username, $password)) {' >> $postactiv_expire_script
+ echo ' echo "Could not connect to mariadb";' >> $postactiv_expire_script
+ echo ' exit;' >> $postactiv_expire_script
+ echo '}' >> $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo 'if (!mysql_select_db($database, $link)) {' >> $postactiv_expire_script
+ echo ' echo "Could not select postactiv database";' >> $postactiv_expire_script
+ echo ' exit;' >> $postactiv_expire_script
+ echo '}' >> $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo "\$notice_query=\"DELETE FROM notice WHERE created <= '\$oldate 01:01:01'\";" >> $postactiv_expire_script
+ echo "\$conversation_query=\"DELETE FROM conversation WHERE created <= '$oldate 01:01:01'\";" >> $postactiv_expire_script
+ echo "\$reply_query=\"DELETE FROM reply WHERE modified <= '\$oldate 01:01:01'\";" >> $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo 'mysql_query($notice_query);' >> $postactiv_expire_script
+ echo '$rowaff1=mysql_affected_rows();' >> $postactiv_expire_script
+ echo 'mysql_query($conversation_query);' >> $postactiv_expire_script
+ echo '$rowaff2=mysql_affected_rows();' >> $postactiv_expire_script
+ echo 'mysql_query($reply_query);' >> $postactiv_expire_script
+ echo '$rowaff3=mysql_affected_rows();' >> $postactiv_expire_script
+ echo 'mysql_close();' >> $postactiv_expire_script
+ echo '' >> $postactiv_expire_script
+ echo 'echo "Expire postactiv posts: $rowaff1 notices, $rowaff2 conversations, and $rowaff3 replies deleted from database.\n";' >> $postactiv_expire_script
+ chmod +x $postactiv_expire_script
+
+ # Add a cron job
+ if ! grep -q "$postactiv_expire_script" /etc/crontab; then
+ echo "10 3 5 * * root /usr/bin/timeout 500 /usr/bin/php $postactiv_expire_script" >> /etc/crontab
+ fi
+
+ # remove old expire script
+ if [ -f /etc/cron.weekly/clear-postactiv-database ]; then
+ rm /etc/cron.weekly/clear-postactiv-database
+ fi
+}
+
+function install_postactiv {
+ if [ ! $ONION_ONLY ]; then
+ ONION_ONLY='no'
+ fi
+
+ install_postactiv_main
+ expire_postactiv_posts
+
+ # unleash the daemons!
+ /etc/cron.hourly/postactiv-daemons
+
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-app-radicale b/src/freedombone-app-radicale
new file mode 100755
index 00000000..17fd9615
--- /dev/null
+++ b/src/freedombone-app-radicale
@@ -0,0 +1,509 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Radicale calendar system
+#
+# Configuration based upon:
+# https://gigacog.com/blog/2016/01/radicale-and-uwsgi-on-nginx-with-systemd
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+RADICALE_DOWNLOAD_URL='http://pypi.python.org/packages/source/R/Radicale/Radicale-'
+RADICALE_VERSION='1.1.1'
+RADICALE_HASH='e2c9812913c464ab88ae1f66b29e81f87a4cc6ee1c94d167b33508c530dab4b0'
+RADICALE_PASSWORD=
+RADICALE_ONION_PORT=8106
+RADICALE_PORT=5232
+RADICALE_DIRECTORY='/etc/radicale'
+RADICALE_USERS=/var/www/radicale/users
+
+radicale_variables=(ONION_ONLY
+ MY_USERNAME
+ RADICALE_PASSWORD
+ DEFAULT_DOMAIN_NAME)
+
+function remove_user_radicale {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp radicale
+
+ if grep "${remove_username}:" ${RADICALE_USERS}; then
+ sed -i "/${remove_username}:/d" ${RADICALE_USERS}
+ if [ -d /var/www/radicale/collections/${remove_username} ]; then
+ rm -rf /var/www/radicale/collections/${remove_username}
+ fi
+ if [ -f /var/www/radicale/collections/${remove_username}.props ]; then
+ rm /var/www/radicale/collections/${remove_username}.props
+ fi
+ systemctl restart radicale
+ fi
+}
+
+function add_user_radicale {
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a radicale -p "$new_user_password"
+
+ if [ ! -f ${RADICALE_USERS} ]; then
+ touch ${RADICALE_USERS}
+ fi
+
+ if ! grep "$new_username:" ${RADICALE_USERS}; then
+ htpasswd -bd ${RADICALE_USERS} "$new_username" "$new_user_password"
+
+ echo '{"ICAL:calendar-color": "#9e50df"}' > /var/www/radicale/collections/${new_username}.props
+ mkdir /var/www/radicale/collections/${new_username}
+ echo '{"ICAL:calendar-color": "#de631a", "tag": "VCALENDAR"}' > /var/www/radicale/collections/${new_username}/calendar.props
+ echo 'BEGIN:VCALENDAR' > /var/www/radicale/collections/${new_username}/calendar
+ echo 'PRODID:-//Radicale//NONSGML Radicale Server//EN' >> /var/www/radicale/collections/${new_username}/calendar
+ echo 'VERSION:2.0' >> /var/www/radicale/collections/${new_username}/calendar
+ echo 'END:VCALENDAR' >> /var/www/radicale/collections/${new_username}/calendar
+
+ chown -R www-data:www-data /var/www/radicale
+ chmod -R 755 /var/www/radicale/*
+ systemctl restart radicale
+ fi
+ echo '0'
+}
+
+function change_password_radicale {
+ existing_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $existing_username -a radicale -p "$new_user_password"
+
+ if grep "${existing_username}:" ${RADICALE_USERS}; then
+ sed -i "/${existing_username}:/d" ${RADICALE_USERS}
+ htpasswd -bd ${RADICALE_USERS} "$existing_username" "$new_user_password"
+ systemctl reload radicale
+ fi
+}
+
+function install_interactive_radicale {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_radicale {
+ rm $RADICALE_USERS
+ rm -rf /var/www/radicale/collections/*
+ rm -rf /var/log/radicale/*
+
+ # create an admin password
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ RADICALE_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ RADICALE_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ add_user_radicale "$MY_USERNAME" "$RADICALE_PASSWORD"
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a radicale -p "$RADICALE_PASSWORD"
+
+ touch /var/log/radicale/radicale.log
+ chown -R www-data:www-data /var/log/radicale
+}
+
+function upgrade_radicale {
+ if [ ! -f /usr/local/bin/radicale ]; then
+ return
+ fi
+
+ if ! grep -q "radicale version:" $COMPLETION_FILE; then
+ return
+ fi
+
+ CURR_RADICALE_VERSION=$(get_completion_param "radicale version")
+ if [[ "${CURR_RADICALE_VERSION}" == "${RADICALE_VERSION}" ]]; then
+ return
+ fi
+
+ # get the source
+ cd /var/www/radicale
+ wget ${RADICALE_DOWNLOAD_URL}${RADICALE_VERSION}.tar.gz
+
+ # check the hash
+ hash=$(sha256sum Radicale-${RADICALE_VERSION}.tar.gz | awk -F ' ' '{print $1}')
+ if [[ "$hash" != "$RADICALE_HASH" ]]; then
+ echo $'radicale hash does not match'
+ exit 638532
+ fi
+
+ tar -xzf Radicale-${RADICALE_VERSION}.tar.gz
+ if [ ! -d Radicale-${RADICALE_VERSION} ]; then
+ exit 73529
+ fi
+ rm Radicale-${RADICALE_VERSION}.tar.gz
+ cd Radicale-${RADICALE_VERSION}
+
+ # move the old command
+ mv /usr/local/bin/radicale /usr/local/bin/radicale_previous
+
+ # do the install
+ python setup.py install
+
+ # check for install success
+ if [ ! -f /usr/local/bin/radicale ]; then
+ mv /usr/local/bin/radicale_previous /usr/local/bin/radicale
+ echo $'Radicale did not upgrade'
+ exit 692353
+ fi
+
+ # remove the old source
+ rm -rf Radicale-${CURR_RADICALE_VERSION}
+
+ sed -i "s|radicale version.*|radicale version:$RADICALE_VERSION|g" ${COMPLETION_FILE}
+ chown -R www-data:www-data /var/www/radicale
+ systemctl restart radicale
+ systemctl restart nginx
+}
+
+function backup_local_radicale {
+ source_directory=${RADICALE_DIRECTORY}
+ if [ -d $source_directory ]; then
+ dest_directory=radicale
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ fi
+ source_directory=/var/www/radicale
+ if [ -d $source_directory ]; then
+ dest_directory=radicalewww
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ fi
+}
+
+function restore_local_radicale {
+ if [ -d ${RADICALE_DIRECTORY} ]; then
+ temp_restore_dir=/root/tempradicale
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir radicale
+ cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
+ if [ ! "$?" = "0" ]; then
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 46872
+ fi
+ rm -rf $temp_restore_dir
+
+ temp_restore_dir=/root/tempradicalewww
+ restore_directory_from_usb $temp_restore_dir radicalewww
+ cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
+ if [ ! "$?" = "0" ]; then
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 367363
+ fi
+ rm -rf $temp_restore_dir
+ chown -R www-data:www-data /var/www/radicale
+
+ systemctl restart radicale
+ fi
+}
+
+function backup_remote_radicale {
+ if [ -d ${RADICALE_DIRECTORY} ]; then
+ echo $"Backing up the radicale settings"
+ backup_directory_to_friend ${RADICALE_DIRECTORY} radicale
+ backup_directory_to_friend /var/www/radicale radicalewww
+ echo $"Backup of radicale settings complete"
+ fi
+}
+
+function restore_remote_radicale {
+ if [ -d ${RADICALE_DIRECTORY} ]; then
+ temp_restore_dir=/root/tempradicale
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir radicale
+ cp -r $temp_restore_dir${RADICALE_DIRECTORY}/* ${RADICALE_DIRECTORY}
+ if [ ! "$?" = "0" ]; then
+ exit 236746
+ fi
+ rm -rf $temp_restore_dir
+
+ temp_restore_dir=/root/tempradicalewww
+ restore_directory_from_friend $temp_restore_dir radicalewww
+ cp -r $temp_restore_dir/var/www/radicale/* /var/www/radicale
+ if [ ! "$?" = "0" ]; then
+ exit 3674284
+ fi
+ rm -rf $temp_restore_dir
+ chown -R www-data:www-data /var/www/radicale
+
+ systemctl restart radicale
+ fi
+}
+
+function remove_radicale {
+ nginx_dissite radicale
+ systemctl stop radicale
+ systemctl stop uwsgi_rundir
+ systemctl disable radicale
+ systemctl disable uwsgi_rundir
+ if [ -f /etc/systemd/system/uwsgi_rundir.service ]; then
+ rm /etc/systemd/system/uwsgi_rundir.service
+ fi
+ if [ -f /etc/systemd/system/radicale.service ]; then
+ rm /etc/systemd/system/radicale.service
+ fi
+ if [ -f /etc/nginx/sites-available/radicale ]; then
+ rm /etc/nginx/sites-available/radicale
+ fi
+ if [ -f /usr/local/bin/uwsgi_rundir.sh ]; then
+ rm /usr/local/bin/uwsgi_rundir.sh
+ fi
+
+ firewall_remove ${RADICALE_PORT} tcp
+
+ function_check remove_onion_service
+ remove_onion_service radicale ${RADICALE_ONION_PORT}
+
+ apt-get -yq remove --purge radicale python-radicale
+ if [ -d ${RADICALE_DIRECTORY} ]; then
+ rm -rf ${RADICALE_DIRECTORY}
+ fi
+ if [ -d /var/www/radicale ]; then
+ rm -rf /var/www/radicale
+ fi
+ if [ -f /var/log/radicale/radicale.log ]; then
+ rm -rf /var/log/radicale
+ fi
+ if [ -d /var/log/radicale ]; then
+ rm -rf /var/log/radicale
+ fi
+
+ remove_completion_param install_radicale
+ sed -i '/radicale/d' $COMPLETION_FILE
+ sed -i '/location \/radicale/,/}/d' /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ systemctl restart nginx
+}
+
+function install_radicale {
+ if [[ $ONION_ONLY == 'no' ]]; then
+ # obtain a cert for the default domain
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ echo $'Obtaining certificate for the main domain'
+ create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
+ fi
+ fi
+
+ apt-get -yq remove --purge radicale python-radicale
+
+ # create directories
+ if [ ! -d /var/log/radicale ]; then
+ mkdir /var/log/radicale
+ fi
+ if [ ! -f /var/log/radicale/radicale.log ]; then
+ touch /var/log/radicale/radicale.log
+ fi
+ chown -R www-data:www-data /var/log/radicale
+
+ apt-get -yq install python-setuptools apache2-utils
+
+ if [ ! -d /var/www/radicale ]; then
+ mkdir -p /var/www/radicale
+ fi
+
+ # get the source
+ cd /var/www/radicale
+ wget ${RADICALE_DOWNLOAD_URL}${RADICALE_VERSION}.tar.gz
+
+ # check the hash
+ hash=$(sha256sum Radicale-${RADICALE_VERSION}.tar.gz | awk -F ' ' '{print $1}')
+ if [[ "$hash" != "$RADICALE_HASH" ]]; then
+ echo $'radicale hash does not match'
+ exit 638532
+ fi
+
+ tar -xzf Radicale-${RADICALE_VERSION}.tar.gz
+ if [ ! -d Radicale-${RADICALE_VERSION} ]; then
+ exit 623252
+ fi
+ rm Radicale-${RADICALE_VERSION}.tar.gz
+ cd Radicale-${RADICALE_VERSION}
+ python setup.py install
+ if [ ! -f /usr/local/bin/radicale ]; then
+ echo $'Radicale did not install'
+ exit 7283554
+ fi
+
+ if [ ! -d ${RADICALE_DIRECTORY} ]; then
+ mkdir ${RADICALE_DIRECTORY}
+ fi
+ if [ ! -d /var/www/radicale/collections ]; then
+ mkdir -p /var/www/radicale/collections
+ fi
+
+ # create the configuration
+ echo '[server]' > ${RADICALE_DIRECTORY}/config
+ echo 'hosts=localhost:52322' >> ${RADICALE_DIRECTORY}/config
+ echo 'ssl = False' >> ${RADICALE_DIRECTORY}/config
+ echo 'daemon = False' >> ${RADICALE_DIRECTORY}/config
+ echo 'base_prefix=/radicale/' >> ${RADICALE_DIRECTORY}/config
+ echo '' >> ${RADICALE_DIRECTORY}/config
+ echo '[storage]' >> ${RADICALE_DIRECTORY}/config
+ echo 'type = filesystem' >> ${RADICALE_DIRECTORY}/config
+ echo "filesystem_folder = /var/www/radicale/collections" >> ${RADICALE_DIRECTORY}/config
+ echo '' >> ${RADICALE_DIRECTORY}/config
+ echo '[well-known]' >> ${RADICALE_DIRECTORY}/config
+ echo "caldav = '/%(user)s/caldav/'" >> ${RADICALE_DIRECTORY}/config
+ echo "carddav = '/%(user)s/carddav/'" >> ${RADICALE_DIRECTORY}/config
+ echo '' >> ${RADICALE_DIRECTORY}/config
+ echo '#[auth]' >> ${RADICALE_DIRECTORY}/config
+ echo '#imap_hostname = localhost' >> ${RADICALE_DIRECTORY}/config
+ echo '#imap_port = 143' >> ${RADICALE_DIRECTORY}/config
+ echo '#imap_ssl = False' >> ${RADICALE_DIRECTORY}/config
+ echo '' >> ${RADICALE_DIRECTORY}/config
+ echo '[logging]' >> ${RADICALE_DIRECTORY}/config
+ echo 'debug = False' >> ${RADICALE_DIRECTORY}/config
+
+ # create an admin password
+ if [ ${#RADICALE_PASSWORD} -lt 8 ]; then
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ RADICALE_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ RADICALE_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ add_user_radicale "$MY_USERNAME" "$RADICALE_PASSWORD"
+
+ echo '[Unit]' > /etc/systemd/system/radicale.service
+ echo 'Description=Radicale CalDAV Server' >> /etc/systemd/system/radicale.service
+ echo 'After=network.target' >> /etc/systemd/system/radicale.service
+ echo '' >> /etc/systemd/system/radicale.service
+ echo '[Service]' >> /etc/systemd/system/radicale.service
+ echo 'Type=simple' >> /etc/systemd/system/radicale.service
+ echo 'User=www-data' >> /etc/systemd/system/radicale.service
+ echo 'Group=www-data' >> /etc/systemd/system/radicale.service
+ echo "ExecStart=/usr/local/bin/radicale --config ${RADICALE_DIRECTORY}/config" >> /etc/systemd/system/radicale.service
+ echo '' >> /etc/systemd/system/radicale.service
+ echo '[Install]' >> /etc/systemd/system/radicale.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/radicale.service
+
+ addresses_str=$"Addresses"
+ echo "{\"tag\": \"VADDRESSBOOK\", \"D:displayname\": \"${addresses_str}\"}" > /var/www/radicale/collections/addresses.props
+ touch /var/www/radicale/collections/addresses
+
+ chown -R www-data:www-data /var/www/radicale
+ chmod -R 755 /var/www/radicale
+ chown -R www-data:www-data ${RADICALE_DIRECTORY}
+
+ systemctl enable radicale
+ systemctl start radicale
+
+ if [ ! -f /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME} ]; then
+ # create a new site config
+ RADICALE_ONION_HOSTNAME=$(add_onion_service radicale 80 ${RADICALE_ONION_PORT})
+
+ if [[ $ONION_ONLY == 'no' ]]; then
+ echo 'server {' > /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " listen 443 ssl;" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " listen [::]:443 ssl;" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ function_check nginx_ssl
+ nginx_ssl ${DEFAULT_DOMAIN_NAME}
+ function_check nginx_disable_sniffing
+ nginx_disable_sniffing ${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " server_name ${DEFAULT_DOMAIN_NAME};" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' error_log /dev/null;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' location /radicale {' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' auth_basic "Radicale";' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " auth_basic_user_file ${RADICALE_USERS};" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' proxy_pass http://localhost:52322;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' proxy_buffering on;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '}' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ else
+ echo -n '' > /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ fi
+ echo 'server {' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " listen localhost:${RADICALE_ONION_PORT} default_server;" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " server_name ${RADICALE_ONION_HOSTNAME};" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' error_log /dev/null;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' location /radicale {' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' auth_basic "Radicale";' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo " auth_basic_user_file ${RADICALE_USERS};" >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' proxy_pass http://localhost:52322;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' proxy_buffering on;' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo ' }' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ echo '}' >> /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+
+ set_completion_param "radicale onion domain" "${RADICALE_ONION_HOSTNAME}"
+ else
+ # alter the existing site config
+ if ! grep "radicale" /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}; then
+ sed -i '/ 443/a location \/radicale {\n auth_basic "Radicale";\n auth_basic_user_file \/var\/www\/radicale\/users;\n proxy_pass http://localhost:52322;\n proxy_buffering on;\n }' /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ sed -i '/listen localhost/a location \/radicale {\n auth_basic "Radicale";\n auth_basic_user_file \/var\/www\/radicale\/users;\n proxy_pass http://localhost:52322;\n proxy_buffering on;\n }' /etc/nginx/sites-available/${DEFAULT_DOMAIN_NAME}
+ fi
+ fi
+
+ # create a certificate
+ if [ ! -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
+ if [ ! -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.crt ]; then
+ ${PROJECT_NAME}-addcert -h $DEFAULT_DOMAIN_NAME --dhkey ${DH_KEYLENGTH}
+ check_certificates $DEFAULT_DOMAIN_NAME
+ fi
+ fi
+
+ if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
+ sed -i "s|radicale.crt|${DEFAULT_DOMAIN_NAME}.pem|g" /etc/nginx/sites-available/radicale
+ sed -i "s|radicale.pem|${DEFAULT_DOMAIN_NAME}.pem|g" /etc/nginx/sites-available/radicale
+ fi
+ sed -i "s|radicale.key|${DEFAULT_DOMAIN_NAME}.key|g" /etc/nginx/sites-available/radicale
+ sed -i "s|radicale.dhparam|${DEFAULT_DOMAIN_NAME}.dhparam|g" /etc/nginx/sites-available/radicale
+
+ update_default_domain
+
+ systemctl restart nginx
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a radicale -p "$RADICALE_PASSWORD"
+
+ # keep track of the version so we can check for upgrades
+ if ! grep -q "radicale version:" ${COMPLETION_FILE}; then
+ echo "radicale version:${RADICALE_VERSION}" >> ${COMPLETION_FILE}
+ else
+ sed -i "s|radicale version.*|radicale version:${RADICALE_VERSION}|g" ${COMPLETION_FILE}
+ fi
+
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-rss b/src/freedombone-app-rss
new file mode 100755
index 00000000..7adf4025
--- /dev/null
+++ b/src/freedombone-app-rss
@@ -0,0 +1,590 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# RSS reader application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim writer'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+RSS_READER_REPO="https://tt-rss.org/git/tt-rss.git"
+RSS_READER_COMMIT='48007463861d8db8b2b79c2f4f54e0564edb0ec0'
+RSS_READER_ADMIN_PASSWORD=
+RSS_READER_ONION_PORT=8092
+RSS_MOBILE_READER_ONION_PORT=8095
+RSS_READER_DOMAIN_NAME=ttrss
+RSS_MOBILE_READER_REPO="https://github.com/mboinet/ttrss-mobile"
+RSS_MOBILE_READER_COMMIT='d5242e1c269e9480ab3b66b7a38da3c892dfb326'
+RSS_READER_PATH=/etc/share/tt-rss
+RSS_READER_GNUSOCIAL_REPO="https://github.com/bashrc/ttrss-gnusocial"
+RSS_READER_GNUSOCIAL_COMMIT='20b2535e3f2b0ddc0117b584bdcaa6bf7a2d9fa2'
+
+rss_variables=(RSS_READER_REPO
+ RSS_MOBILE_READER_REPO
+ RSS_READER_COMMIT
+ RSS_MOBILE_READER_COMMIT
+ RSS_READER_ADMIN_PASSWORD
+ RSS_READER_DOMAIN_NAME
+ USB_MOUNT
+ MY_USERNAME)
+
+function install_interactive_rss {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function change_password_rss {
+ curr_username="$1"
+ new_user_password="$2"
+
+ #${PROJECT_NAME}-pass -u "$curr_username" -a rss -p "$new_user_password"
+}
+
+function rss_create_database {
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ RSS_READER_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $RSS_READER_ADMIN_PASSWORD ]; then
+ RSS_READER_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ if [ ! $RSS_READER_ADMIN_PASSWORD ]; then
+ return
+ fi
+
+ function_check create_database
+ create_database ttrss "$RSS_READER_ADMIN_PASSWORD" $MY_USERNAME
+}
+
+function reconfigure_rss {
+ echo -n ''
+}
+
+function upgrade_rss {
+ if [[ $(app_is_installed rss) == "1" ]]; then
+ function_check set_repo_commit
+ set_repo_commit $RSS_READER_PATH "rss reader commit" "$RSS_READER_COMMIT" $RSS_READER_REPO
+ if [[ $(commit_has_changed $RSS_READER_PATH "rss reader commit" "$RSS_READER_COMMIT") == "1" ]]; then
+ function_check rss_modifications
+ rss_modifications
+ fi
+ fi
+
+ if [[ $(app_is_installed rss_mobile_reader) == "1" ]]; then
+ if [ ! $RSS_READER_PATH ]; then
+ RSS_READER_PATH=/etc/share/tt-rss
+ fi
+
+ if [ ! -d $RSS_READER_PATH ]; then
+ echo $'tt-rss is not installed, so the mobile version cannot be installed'
+ exit 63452
+ fi
+
+ RSS_MOBILE_READER_PATH=/etc/share/ttrss-mobile
+
+ # remove any previous install
+ if [ -d $RSS_READER_PATH/g2ttree-mobile ]; then
+ if [[ $(is_completed "install_rss_mobile_reader") == "1" ]]; then
+ sed -i '/install_rss_mobile_reader/d' $COMPLETION_FILE
+ sed -i '/rss mobile reader commit/d' $COMPLETION_FILE
+ rm -rf $RSS_READER_PATH/g2ttree-mobile
+ fi
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $RSS_MOBILE_READER_PATH "rss mobile reader commit" "$RSS_MOBILE_READER_COMMIT" $RSS_MOBILE_READER_REPO
+ fi
+}
+
+function backup_local_rss {
+ if [ -d /etc/share/tt-rss ]; then
+ RSS_READER_DOMAIN_NAME=$(get_completion_param "rss reader domain")
+
+ echo $"Backing up ttrss"
+
+ function_check backup_database_to_usb
+ backup_database_to_usb ttrss
+
+ backup_directory_to_usb /etc/share/tt-rss ttrss
+
+ echo $"ttrss backup complete"
+ fi
+}
+
+function restore_local_rss {
+ temp_restore_dir=/root/tempttrss
+
+ function_check rss_create_database
+ rss_create_database
+
+ restore_database ttrss ${RSS_READER_DOMAIN_NAME}
+
+ if [ -d /etc/share/tt-rss ]; then
+ if [ -d /root/tempttrss/etc/share/tt-rss ]; then
+ rm -rf /etc/share/tt-rss
+ mv /root/tempttrss/etc/share/tt-rss /etc/share/
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 528823
+ fi
+ if [ -d /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${2}.key
+ ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${2}.pem
+ else
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${RSS_READER_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${RSS_READER_DOMAIN_NAME}.crt|${RSS_READER_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${2}
+ fi
+ fi
+ fi
+ fi
+
+ function_check rss_modifications
+ rss_modifications
+
+ if [ -d $USB_MOUNT/backup/ttrss ]; then
+ chown -R www-data:www-data /etc/share/tt-rss
+ if [ -d $temp_restore_dir ]; then
+ rm -rf $temp_restore_dir
+ fi
+ fi
+}
+
+function backup_remote_rss {
+ if [ -d /etc/share/tt-rss ]; then
+ function_check suspend_site
+ suspend_site ${RSS_READER_DOMAIN_NAME}
+
+ function_check backup_database_to_friend
+ backup_database_to_friend ttrss
+
+ echo $"Backing up RSS reader installation"
+
+ function_check backup_directory_to_friend
+ backup_directory_to_friend /etc/share/tt-rss ttrss
+
+ function_check restart_site
+ restart_site
+ else
+ echo $"RSS reader domain specified but not found in /etc/share/ttrss}"
+ fi
+}
+
+function restore_remote_rss {
+ if grep -q "rss reader domain" $COMPLETION_FILE; then
+ echo $"Restoring ttrss"
+ function_check restore_database_from_friend
+
+ function_check rss_create_database
+ rss_create_database
+
+ restore_database_from_friend ttrss ${RSS_READER_DOMAIN_NAME}
+
+ if [ -d /etc/share/tt-rss ]; then
+ rm -rf /etc/share/tt-rss
+ mv /root/tempttrss/etc/share/tt-rss /etc/share/
+ if [ ! "$?" = "0" ]; then
+ exit 6391
+ fi
+ if [ -d /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${RSS_READER_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${RSS_READER_DOMAIN_NAME}.pem
+ else
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${RSS_READER_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${RSS_READER_DOMAIN_NAME}.crt|${RSS_READER_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${RSS_READER_DOMAIN_NAME}
+ fi
+ fi
+ fi
+
+ function_check rss_modifications
+ rss_modifications
+
+ if [ -d $SERVER_DIRECTORY/backup/ttrss ]; then
+ chown -R www-data:www-data /etc/share/tt-rss
+ fi
+ if [ -d /root/tempttrss ]; then
+ rm -rf /root/tempttrss
+ fi
+ echo $"Restore of ttrss complete"
+ fi
+}
+
+function remove_rss {
+ if [ ${#RSS_READER_DOMAIN_NAME} -eq 0 ]; then
+ return
+ fi
+
+ nginx_dissite $RSS_READER_DOMAIN_NAME
+ function_check remove_onion_service
+ remove_onion_service ttrss ${RSS_READER_ONION_PORT} ${RSS_MOBILE_READER_ONION_PORT}
+ if [ -f /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME ]; then
+ rm /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ fi
+ if [ -d $RSS_READER_PATH ]; then
+ rm -rf $RSS_READER_PATH
+ fi
+ function_check drop_database
+ drop_database ttrss
+ remove_completion_param install_rss
+ sed -i '/RSS /d' $COMPLETION_FILE
+ sed -i '/rss /d' $COMPLETION_FILE
+ remove_backup_database_local ttrss
+}
+
+function rss_modifications {
+ # modify the rss reader to use a socks5 proxy rather than a http proxy
+ if [ ! -d $RSS_READER_PATH ]; then
+ return
+ fi
+
+ # ensure that socks5 proxy is used
+ if ! grep -q "CURLOPT_PROXYTYPE" $RSS_READER_PATH/plugins/af_unburn/init.php; then
+ sed -i '/curl_setopt($ch, CURLOPT_PROXY, _CURL_HTTP_PROXY);/a \\t\t\t\t\tcurl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);' $RSS_READER_PATH/plugins/af_unburn/init.php
+ fi
+ if ! grep -q "CURLOPT_PROXYTYPE" $RSS_READER_PATH/include/functions.php; then
+ sed -i '/curl_setopt($ch, CURLOPT_PROXY, _CURL_HTTP_PROXY);/a \\t\t\t\tcurl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);' $RSS_READER_PATH/include/functions.php
+ fi
+ chown -R www-data:www-data $RSS_READER_PATH
+ chmod a+x $RSS_READER_PATH
+}
+
+function install_rss_main {
+ apt-get -yq install php-gettext php5-curl php5-gd php5-mysql git
+ apt-get -yq install curl php-xml-parser php5-mcrypt
+
+ if [ ! -d /etc/share ]; then
+ mkdir /etc/share
+ fi
+ cd /etc/share
+ function_check git_clone
+ git_clone $RSS_READER_REPO tt-rss
+ if [ ! -d $RSS_READER_PATH ]; then
+ echo $'Could not clone RSS reader repo'
+ exit 52925
+ fi
+ cd $RSS_READER_PATH
+ git checkout $RSS_READER_COMMIT -b $RSS_READER_COMMIT
+ set_completion_param "rss reader commit" "$RSS_READER_COMMIT"
+
+ function_check install_mariadb
+ install_mariadb
+
+ function_check get_mariadb_password
+ get_mariadb_password
+
+ function_check repair_databases_script
+ repair_databases_script
+
+ rss_create_database
+
+ RSS_READER_ONION_HOSTNAME=$(add_onion_service rss 80 ${RSS_READER_ONION_PORT})
+ RSS_MOBILE_READER_ONION_HOSTNAME=$(add_onion_service rss_mobile 80 ${RSS_MOBILE_READER_ONION_PORT})
+
+ echo 'server {' > /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo " listen 127.0.0.1:$RSS_MOBILE_READER_ONION_PORT;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo " server_name $RSS_MOBILE_READER_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' error_log /dev/null;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' root /etc/share/ttrss-mobile;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' index index.html index.php;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location ~ \.php {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' include snippets/fastcgi-php.conf;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' try_files $uri $uri/ @ttrss;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location /tt-rss {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' try_files $uri $uri/ @ttrss_base;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location @ttrss {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' rewrite ^(.*)$ /index.html?p=$1 last;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location @ttrss_base {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location ~ /\.(git) {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' client_max_body_size 15m;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo " listen 127.0.0.1:$RSS_READER_ONION_PORT default_server;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo " server_name $RSS_READER_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' access_log /dev/null;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' error_log /dev/null;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' root /etc/share/tt-rss;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location ~ \.php {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' include snippets/fastcgi-php.conf;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' set $mobile_rewrite do_not_perform;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' ## chi http_user_agent for mobile / smart phones ##' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino") {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' set $mobile_rewrite perform;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)") {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' set $mobile_rewrite perform;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' if ($mobile_rewrite = perform) {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo " rewrite ^/(.*) http://$RSS_MOBILE_READER_ONION_HOSTNAME permanent;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' break;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location ~ \.php {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' include snippets/fastcgi-php.conf;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' try_files $uri $uri/ @ttrss;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location @ttrss {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' location ~ /\.(git) {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo ' client_max_body_size 15m;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
+
+ if [ ! -f $RSS_READER_PATH/config.php ]; then
+ # generate a config file
+ RSS_FEED_CRYPT_KEY="$(create_password 24)"
+ echo ' $RSS_READER_PATH/config.php
+ echo " define ('_CURL_HTTP_PROXY', '127.0.0.1:9050');" >> $RSS_READER_PATH/config.php
+ echo " define('DB_TYPE', 'mysql');" >> $RSS_READER_PATH/config.php
+ echo " define('DB_HOST', 'localhost');" >> $RSS_READER_PATH/config.php
+ echo " define('DB_USER', 'root');" >> $RSS_READER_PATH/config.php
+ echo " define('DB_NAME', 'ttrss');" >> $RSS_READER_PATH/config.php
+ echo " define('DB_PASS', '${MARIADB_PASSWORD}');" >> $RSS_READER_PATH/config.php
+ echo " define('DB_PORT', '3306');" >> $RSS_READER_PATH/config.php
+ echo " define('MYSQL_CHARSET', 'UTF8');" >> $RSS_READER_PATH/config.php
+ echo " define('SELF_URL_PATH', 'http://${RSS_READER_ONION_HOSTNAME}/');" >> $RSS_READER_PATH/config.php
+ echo " define('FEED_CRYPT_KEY', '${RSS_FEED_CRYPT_KEY}');" >> $RSS_READER_PATH/config.php
+ echo " define('SINGLE_USER_MODE', false);" >> $RSS_READER_PATH/config.php
+ echo " define('SIMPLE_UPDATE_MODE', false);" >> $RSS_READER_PATH/config.php
+ echo " define('PHP_EXECUTABLE', '/usr/bin/php');" >> $RSS_READER_PATH/config.php
+ echo " define('LOCK_DIRECTORY', 'lock');" >> $RSS_READER_PATH/config.php
+ echo " define('CACHE_DIR', 'cache');" >> $RSS_READER_PATH/config.php
+ echo " define('ICONS_DIR', \"feed-icons\");" >> $RSS_READER_PATH/config.php
+ echo " define('ICONS_URL', \"feed-icons\");" >> $RSS_READER_PATH/config.php
+ echo " define('AUTH_AUTO_CREATE', true);" >> $RSS_READER_PATH/config.php
+ echo " define('AUTH_AUTO_LOGIN', true);" >> $RSS_READER_PATH/config.php
+ echo " define('FORCE_ARTICLE_PURGE', 0);" >> $RSS_READER_PATH/config.php
+ echo " define('PUBSUBHUBBUB_HUB', '');" >> $RSS_READER_PATH/config.php
+ echo " define('PUBSUBHUBBUB_ENABLED', false);" >> $RSS_READER_PATH/config.php
+ echo " define('SPHINX_SERVER', 'localhost:9312');" >> $RSS_READER_PATH/config.php
+ echo " define('SPHINX_INDEX', 'ttrss, delta');" >> $RSS_READER_PATH/config.php
+ echo " define('ENABLE_REGISTRATION', false);" >> $RSS_READER_PATH/config.php
+ echo " define('REG_NOTIFY_ADDRESS', '${MY_EMAIL_ADDRESS}');" >> $RSS_READER_PATH/config.php
+ echo " define('REG_MAX_USERS', 10);" >> $RSS_READER_PATH/config.php
+ echo " define('SESSION_COOKIE_LIFETIME', 86400);" >> $RSS_READER_PATH/config.php
+ echo " define('SMTP_FROM_NAME', 'Tiny Tiny RSS');" >> $RSS_READER_PATH/config.php
+ echo " define('SMTP_FROM_ADDRESS', 'noreply@${RSS_READER_ONION_HOSTNAME}');" >> $RSS_READER_PATH/config.php
+ echo " define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');" >> $RSS_READER_PATH/config.php
+ echo " define('SMTP_SERVER', '');" >> $RSS_READER_PATH/config.php
+ echo " define('SMTP_LOGIN', '');" >> $RSS_READER_PATH/config.php
+ echo " define('SMTP_PASSWORD', '');" >> $RSS_READER_PATH/config.php
+ echo " define('SMTP_SECURE', '');" >> $RSS_READER_PATH/config.php
+ echo " define('CHECK_FOR_UPDATES', false);" >> $RSS_READER_PATH/config.php
+ echo " define('ENABLE_GZIP_OUTPUT', false);" >> $RSS_READER_PATH/config.php
+ echo " define('PLUGINS', 'auth_internal, note, gnusocial');" >> $RSS_READER_PATH/config.php
+ echo " define('LOG_DESTINATION', 'sql');" >> $RSS_READER_PATH/config.php
+ echo " define('CONFIG_VERSION', 26);" >> $RSS_READER_PATH/config.php
+ fi
+
+ # initialize the database
+ if [ ! -f $RSS_READER_PATH/schema/ttrss_schema_mysql.sql ]; then
+ echo $'No database schema found for rss reader'
+ exit 52926
+ fi
+ initialise_database ttrss $RSS_READER_PATH/schema/ttrss_schema_mysql.sql
+
+ # change the password from the default
+ RSS_READER_ADMIN_PASSWORD_HASH=$(echo -n "${RSS_READER_ADMIN_PASSWORD}" | sha1sum | awk -F ' ' '{print $1}')
+
+ function_check run_query
+ run_query ttrss "update ttrss_users set pwd_hash = 'SHA1:${RSS_READER_ADMIN_PASSWORD_HASH}', salt= '' WHERE login = 'admin';"
+
+ function_check rss_modifications
+ rss_modifications
+
+ function_check configure_php
+ configure_php
+
+ nginx_ensite $RSS_READER_DOMAIN_NAME
+ systemctl restart php5-fpm
+ systemctl restart nginx
+
+ # daemon to update feeds
+ echo '[Unit]' > /etc/systemd/system/ttrss.service
+ echo 'Description=ttrss_backend' >> /etc/systemd/system/ttrss.service
+ echo 'After=network.target mysql.service' >> /etc/systemd/system/ttrss.service
+ echo 'After=tor.service' >> /etc/systemd/system/ttrss.service
+ echo '' >> /etc/systemd/system/ttrss.service
+ echo '[Service]' >> /etc/systemd/system/ttrss.service
+ echo 'User=www-data' >> /etc/systemd/system/ttrss.service
+ echo "ExecStart=/usr/bin/php $RSS_READER_PATH/update.php --daemon" >> /etc/systemd/system/ttrss.service
+ echo '' >> /etc/systemd/system/ttrss.service
+ echo '[Install]' >> /etc/systemd/system/ttrss.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/ttrss.service
+ systemctl enable ttrss
+ systemctl daemon-reload
+ systemctl start ttrss
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a rss -p "$RSS_READER_ADMIN_PASSWORD"
+
+ install_completed rss_main
+}
+
+function install_rss_gnusocial {
+ if [ ! $GNUSOCIAL_DOMAIN_NAME ]; then
+ return
+ fi
+
+ if [ ! $RSS_READER_PATH ]; then
+ RSS_READER_PATH=/etc/share/tt-rss
+ fi
+ RSS_READER_GNUSOCIAL_PATH=${RSS_READER_PATH}/plugins/gnusocial
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $RSS_READER_GNUSOCIAL_PATH "rss reader gnusocial commit" "$RSS_READER_GNUSOCIAL_COMMIT" $RSS_READER_GNUSOCIAL_REPO
+ chown -R www-data:www-data $RSS_READER_GNUSOCIAL_PATH
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+
+ cd $INSTALL_DIR
+ function_check git_clone
+ git_clone $RSS_READER_GNUSOCIAL_REPO ttrss-gnusocial
+ if [ ! -d $INSTALL_DIR/ttrss-gnusocial ]; then
+ echo $'Could not clone repo for RSS reader gnusocial plugin'
+ exit 52838
+ fi
+ cp -r $INSTALL_DIR/ttrss-gnusocial $RSS_READER_GNUSOCIAL_PATH
+ cd $RSS_READER_GNUSOCIAL_PATH
+ git checkout $RSS_READER_GNUSOCIAL_COMMIT -b $RSS_READER_GNUSOCIAL_COMMIT
+ set_completion_param "rss reader gnusocial commit" "$RSS_READER_GNUSOCIAL_COMMIT"
+ chown -R www-data:www-data $RSS_READER_GNUSOCIAL_PATH
+ install_completed rss_gnusocial
+}
+
+function install_rss_mobile_reader {
+ if [ ! $RSS_READER_PATH ]; then
+ RSS_READER_PATH=/etc/share/tt-rss
+ fi
+
+ if [ ! -d $RSS_READER_PATH ]; then
+ echo $'tt-rss is not installed, so the mobile version cannot be installed'
+ exit 63452
+ fi
+
+ RSS_MOBILE_READER_PATH=/etc/share/ttrss-mobile
+
+ # remove any previous install
+ if [ -d $RSS_READER_PATH/g2ttree-mobile ]; then
+ if [[ $(is_completed "install_rss_mobile_reader") == "1" ]]; then
+ sed -i '/install_rss_mobile_reader/d' $COMPLETION_FILE
+ sed -i '/rss mobile reader commit/d' $COMPLETION_FILE
+ rm -rf $RSS_READER_PATH/g2ttree-mobile
+ fi
+ fi
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ cd /etc/share
+ function_check git_clone
+ git_clone $RSS_MOBILE_READER_REPO ttrss-mobile
+ if [ ! -d $RSS_MOBILE_READER_PATH ]; then
+ echo $'Could not clone RSS mobile reader repo'
+ exit 24816
+ fi
+ cd $RSS_MOBILE_READER_PATH
+ git checkout $RSS_MOBILE_READER_COMMIT -b $RSS_MOBILE_READER_COMMIT
+ set_completion_param "rss mobile reader commit" "$RSS_MOBILE_READER_COMMIT"
+
+ echo 'define({' > $RSS_MOBILE_READER_PATH/scripts/conf.js
+ echo ' apiPath: "/tt-rss/"' >> $RSS_MOBILE_READER_PATH/scripts/conf.js
+ echo '});' >> $RSS_MOBILE_READER_PATH/scripts/conf.js
+
+ # link to the main site
+ ln -s $RSS_READER_PATH $RSS_MOBILE_READER_PATH/tt-rss
+
+ chown -R www-data:www-data $RSS_MOBILE_READER_PATH
+ chown -R www-data:www-data $RSS_READER_PATH
+ chmod a+x $RSS_MOBILE_READER_PATH
+ install_completed rss_mobile_reader
+}
+
+function install_rss {
+ install_rss_main
+ install_rss_gnusocial
+ install_rss_mobile_reader
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-sip b/src/freedombone-app-sip
new file mode 100755
index 00000000..d9f5e578
--- /dev/null
+++ b/src/freedombone-app-sip
@@ -0,0 +1,461 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# SIP functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+SIP_SERVER_PASSWORD=
+SIP_PORT=5060
+SIP_TLS_PORT=5061
+
+TURN_PORT=3478
+TURN_TLS_PORT=5349
+TURN_NONCE=
+
+sip_variables=(ONION_ONLY
+ MY_USERNAME
+ SIP_PORT
+ SIP_TLS_PORT
+ SIP_SERVER_PASSWORD
+ TURN_PORT
+ TURN_TLS_PORT
+ TURN_NONCE)
+
+function remove_user_sip {
+ remove_username="$1"
+ ${PROJECT_NAME}-rmsipuser ${remove_username}
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp sip
+
+ # remove user from SIP TURN/STUN
+ if [ -f /etc/turnserver/turnusers.txt ]; then
+ sed -i "/${remove_username}:/d" /etc/turnserver/turnusers.txt
+ fi
+}
+
+function add_user_sip {
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a sip -p "$new_user_password"
+
+ SIP_EXTENSION=$(${PROJECT_NAME}-sipfreeext)
+ ${PROJECT_NAME}-addsipuser -u $new_username -e $SIP_EXTENSION -p "$new_user_password"
+ if [ ! "$?" = "0" ]; then
+ echo '1'
+ return
+ fi
+
+ # add user to the sipwitch group
+ if [ -f /etc/sipwitch.conf ]; then
+ usermod -aG sipwitch $new_username
+ fi
+
+ # add user for SIP STUN/TURN
+ if [ -d /etc/turnserver ]; then
+ if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
+ read_config_param "DEFAULT_DOMAIN_NAME"
+ echo "${new_username}:${new_user_password}:${DEFAULT_DOMAIN_NAME}:authorized" >> /etc/turnserver/turnusers.txt
+ fi
+ fi
+
+ echo '0'
+}
+
+function install_interactive_sip {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function change_password_sip {
+ curr_username="$1"
+ new_user_password="$2"
+
+ #${PROJECT_NAME}-pass -u "$curr_username" -a sip -p "$new_user_password"
+}
+
+function reconfigure_sip {
+ echo -n ''
+}
+
+function upgrade_sip {
+ # remove the original sipwitch daemon if it exists
+ if [ -f /etc/init.d/sipwitch ]; then
+ rm -f /etc/init.d/sipwitch
+ fi
+}
+
+function backup_local_sip {
+ if [ -f /etc/sipwitch.conf ]; then
+ echo $"Backing up SIP settings"
+ temp_backup_dir=/root/tempsipbackup
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir -p $temp_backup_dir
+ fi
+ cp -f /etc/sipwitch.conf $temp_backup_dir
+ backup_directory_to_usb $temp_backup_dir sip
+ echo $"SIP settings backup complete"
+ fi
+}
+
+function restore_local_sip {
+ if [ -d $USB_MOUNT/backup/sip ]; then
+ echo $"Restoring SIP settings"
+ temp_restore_dir=/root/tempsip
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir sip
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ backup_unmount_drive
+ exit 3679
+ fi
+ rm -rf $temp_restore_dir
+ service sipwitch restart
+ echo $"Restore of SIP settings complete"
+ fi
+}
+
+function backup_remote_sip {
+ if [ -f /etc/sipwitch.conf ]; then
+ echo $"Backing up SIP settings"
+ temp_backup_dir=/root/tempsipbackup
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir -p $temp_backup_dir
+ fi
+ cp -f /etc/sipwitch.conf $temp_backup_dir
+ backup_directory_to_friend $temp_backup_dir sip
+ echo $"Backup SIP settings complete"
+ fi
+}
+
+function restore_remote_sip {
+ echo -n ''
+}
+
+function remove_sip {
+ firewall_remove ${TURN_PORT}
+ firewall_remove ${TURN_TLS_PORT} tcp
+ firewall_remove ${SIP_PORT}
+ firewall_remove ${SIP_TLS_PORT}
+
+ function_check remove_onion_service
+ remove_onion_service sip ${SIP_PORT}
+
+ apt-get -yq remove --purge sipwitch
+ apt-get -yq remove --purge turnserver
+ if [ -f /etc/sipwitch.conf ]; then
+ rm /etc/sipwitch.conf
+ fi
+ if [ -d /etc/turnserver ]; then
+ rm -rf /etc/turnserver
+ fi
+ remove_completion_param install_sip
+ remove_completion_param configure_firewall_for_turn
+ remove_completion_param configure_firewall_for_sip4
+}
+
+function configure_firewall_for_turn {
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ firewall_add TURN ${TURN_PORT}
+ firewall_add "TURN TLS" ${TURN_TLS_PORT} tcp
+}
+
+
+function configure_firewall_for_sip4 {
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ firewall_add SIP ${SIP_PORT}
+ firewall_add "SIP TLS" ${SIP_TLS_PORT}
+}
+
+function update_sipwitch_daemon {
+ if [ ! -f /etc/init.d/sipwitch ]; then
+ return
+ fi
+
+ service sipwitch stop
+
+ # remove the original sipwitch daemon if it exists
+ if [ -f /etc/init.d/sipwitch ]; then
+ rm -f /etc/init.d/sipwitch
+ fi
+
+ # daemon
+ echo '[Unit]' > /etc/systemd/system/sipwitch.service
+ echo 'Description=GNU SIP Witch, a SIP telephony service daemon.' >> /etc/systemd/system/sipwitch.service
+ echo 'After=network.target' >> /etc/systemd/system/sipwitch.service
+ echo '' >> /etc/systemd/system/sipwitch.service
+ echo '[Service]' >> /etc/systemd/system/sipwitch.service
+ echo 'Type=simple' >> /etc/systemd/system/sipwitch.service
+ echo 'Group=sipwitch' >> /etc/systemd/system/sipwitch.service
+ echo 'PIDFile=/var/run/sipwitch/pidfile' >> /etc/systemd/system/sipwitch.service
+ echo 'EnvironmentFile=-/etc/conf.d/sipwitch' >> /etc/systemd/system/sipwitch.service
+ echo 'EnvironmentFile=-/etc/sipwitch.conf' >> /etc/systemd/system/sipwitch.service
+ echo 'EnvironmentFile=-/etc/default/sipwitch' >> /etc/systemd/system/sipwitch.service
+ echo 'ExecStartPre=-/bin/rm -f /var/run/sipwitch/control' >> /etc/systemd/system/sipwitch.service
+ echo "ExecStart=/usr/sbin/sipw -f \$OPTIONS -P$SIP_PORT" >> /etc/systemd/system/sipwitch.service
+ echo 'Restart=always' >> /etc/systemd/system/sipwitch.service
+ echo 'NotifyAccess=main' >> /etc/systemd/system/sipwitch.service
+ echo '' >> /etc/systemd/system/sipwitch.service
+ echo '[Install]' >> /etc/systemd/system/sipwitch.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/sipwitch.service
+
+ systemctl enable sipwitch
+ systemctl daemon-reload
+ systemctl start sipwitch
+}
+
+function install_sip_main {
+ if [[ $(app_is_installed sip_main) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install sipwitch
+
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ SIP_SERVER_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ! $SIP_SERVER_PASSWORD ]; then
+ SIP_SERVER_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+
+ echo '' > /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+
+ echo "" >> /etc/sipwitch.conf
+ echo '201 ' >> /etc/sipwitch.conf
+ echo "$SIP_SERVER_PASSWORD " >> /etc/sipwitch.conf
+ echo "$MY_USERNAME 201 " >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+
+ echo ' ' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo " $DEFAULT_DOMAIN_NAME " >> /etc/sipwitch.conf
+ echo ' 200 ' >> /etc/sipwitch.conf
+ echo ' 2 ' >> /etc/sipwitch.conf
+ echo ' * ' >> /etc/sipwitch.conf
+ echo ' false ' >> /etc/sipwitch.conf
+ echo ' system ' >> /etc/sipwitch.conf
+ echo ' anonymous ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo ' 4 ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo ' 4 ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo ' 6 ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo ' 200 ' >> /etc/sipwitch.conf
+ echo ' 100 ' >> /etc/sipwitch.conf
+ echo ' 77 ' >> /etc/sipwitch.conf
+ echo ' 200 ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo '' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+ echo ' ' >> /etc/sipwitch.conf
+
+ sed -i 's|#PLUGINS=|PLUGINS=|g' /etc/default/sipwitch
+ sed -i 's|PLUGINS=.*|PLUGINS="zeroconf subscriber forward"|g' /etc/default/sipwitch
+ groupadd sipwitch
+ usermod -aG sipwitch $MY_USERNAME
+
+ SIP_ONION_HOSTNAME=$(add_onion_service sip ${SIP_PORT} ${SIP_PORT})
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a sip -p "$SIP_SERVER_PASSWORD"
+
+ function_check configure_firewall_for_sip4
+ configure_firewall_for_sip4
+ install_completed sip_main
+}
+
+function install_sip_turn {
+ if [[ $(app_is_installed sip_turn) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install turnserver
+
+ # create a nonce if needed
+ if [ ! $TURN_NONCE ]; then
+ TURN_NONCE="$(create_password 30)"
+ fi
+
+ function_check create_site_certificate
+ create_site_certificate $DEFAULT_DOMAIN_NAME
+
+ echo '##' > /etc/turnserver/turnserver.conf
+ echo '# TurnServer configuration file.' >> /etc/turnserver/turnserver.conf
+ echo '#' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Public IPv4 address of any relayed address (if not set, no relay for IPv4).' >> /etc/turnserver/turnserver.conf
+ echo '## To have multiple address, separate addresses with a comma' >> /etc/turnserver/turnserver.conf
+ echo '## (i.e. listen_address = { "172.16.0.1", "172.17.0.1" }).' >> /etc/turnserver/turnserver.conf
+ echo "listen_address = { \"192.168.0.1\" }" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Public IPv6 address of any relayed address (if not set, no relay for IPv6).' >> /etc/turnserver/turnserver.conf
+ echo '## To have multiple address, separate address with a comma' >> /etc/turnserver/turnserver.conf
+ echo '## (i.e. listen_addressv6 = { "2001:db8:1::1", "2001:db8:2::1" }).' >> /etc/turnserver/turnserver.conf
+ echo "#listen_addressv6 = { \"2001:db8::1\" }" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## UDP listening port.' >> /etc/turnserver/turnserver.conf
+ echo "udp_port = $TURN_PORT" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## TCP listening port.' >> /etc/turnserver/turnserver.conf
+ echo "tcp_port = $TURN_PORT" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## TLS listening port.' >> /etc/turnserver/turnserver.conf
+ echo "tls_port = $TURN_TLS_PORT" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## TLS support.' >> /etc/turnserver/turnserver.conf
+ echo 'tls = true' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## DTLS support. It is an experimental feature and is not defined in TURN' >> /etc/turnserver/turnserver.conf
+ echo '## standard.' >> /etc/turnserver/turnserver.conf
+ echo 'dtls = false' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Maximum allocation port number.' >> /etc/turnserver/turnserver.conf
+ echo 'max_port = 65535' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Minimum allocation port number.' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo 'min_port = 49152' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## TURN-TCP support.' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo 'turn_tcp = true' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## TURN-TCP buffering mode:' >> /etc/turnserver/turnserver.conf
+ echo '## - true, use userspace buffering;' >> /etc/turnserver/turnserver.conf
+ echo '## - false, use kernel buffering.' >> /etc/turnserver/turnserver.conf
+ echo 'tcp_buffer_userspace = true' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## TURN-TCP maximum buffer size.' >> /etc/turnserver/turnserver.conf
+ echo 'tcp_buffer_size = 32768' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Daemon mode.' >> /etc/turnserver/turnserver.conf
+ echo 'daemon = true' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Unprivileged user.' >> /etc/turnserver/turnserver.conf
+ echo '## If you want to use this feature create a system user.' >> /etc/turnserver/turnserver.conf
+ echo '## On Linux: adduser --system --group turnserver' >> /etc/turnserver/turnserver.conf
+ echo 'unpriv_user = turnserver' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Realm value.' >> /etc/turnserver/turnserver.conf
+ echo "realm = \"$DEFAULT_DOMAIN_NAME\"" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Nonce key.' >> /etc/turnserver/turnserver.conf
+ echo "nonce_key = \"$TURN_NONCE\"" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Max relay per username.' >> /etc/turnserver/turnserver.conf
+ echo 'max_relay_per_username = 5' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Allocation lifetime.' >> /etc/turnserver/turnserver.conf
+ echo 'allocation_lifetime = 1800' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Allocation bandwidth limitation (in KBytes/s).' >> /etc/turnserver/turnserver.conf
+ echo '## 0 value means bandwidth quota disabled.' >> /etc/turnserver/turnserver.conf
+ echo 'bandwidth_per_allocation = 150' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Restricted user bandwidth (in KBytes/s).' >> /etc/turnserver/turnserver.conf
+ echo '## 0 value means bandwidth limitation disabled.' >> /etc/turnserver/turnserver.conf
+ echo 'restricted_bandwidth = 10' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Denied addresses.' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '# disallow relaying to localhost' >> /etc/turnserver/turnserver.conf
+ echo 'denied_address {' >> /etc/turnserver/turnserver.conf
+ echo ' address = "127.0.0.1"' >> /etc/turnserver/turnserver.conf
+ echo ' mask = "8"' >> /etc/turnserver/turnserver.conf
+ echo ' port = 0' >> /etc/turnserver/turnserver.conf
+ echo '}' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '# disallow relaying to ip6-localhost' >> /etc/turnserver/turnserver.conf
+ echo 'denied_address {' >> /etc/turnserver/turnserver.conf
+ echo ' address = "::1"' >> /etc/turnserver/turnserver.conf
+ echo ' mask = "128"' >> /etc/turnserver/turnserver.conf
+ echo ' port = 0' >> /etc/turnserver/turnserver.conf
+ echo '}' >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Certification Authority file.' >> /etc/turnserver/turnserver.conf
+ echo "ca_file = \"/etc/ssl/certs/ca-certificates.crt\"" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Server certificate file.' >> /etc/turnserver/turnserver.conf
+ if [ -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.pem ]; then
+ echo "cert_file = \"/etc/ssl/certs/$DEFAULT_DOMAIN_NAME.pem\"" >> /etc/turnserver/turnserver.conf
+ else
+ if [ -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.crt ]; then
+ echo "cert_file = \"/etc/ssl/certs/$DEFAULT_DOMAIN_NAME.crt\"" >> /etc/turnserver/turnserver.conf
+ fi
+ fi
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Private key file.' >> /etc/turnserver/turnserver.conf
+ echo "private_key_file = \"/etc/ssl/certs/$DEFAULT_DOMAIN_NAME.key\"" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Account method.' >> /etc/turnserver/turnserver.conf
+ echo "account_method = \"file\"" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## Account file (if account_method = file).' >> /etc/turnserver/turnserver.conf
+ echo "account_file = \"/etc/turnserver/turnusers.txt\"" >> /etc/turnserver/turnserver.conf
+ echo '' >> /etc/turnserver/turnserver.conf
+ echo '## mod_tmpuser.' >> /etc/turnserver/turnserver.conf
+ echo 'mod_tmpuser = false' >> /etc/turnserver/turnserver.conf
+
+ echo "${MY_USERNAME}:password:${DEFAULT_DOMAIN_NAME}:authorized" > /etc/turnserver/turnusers.txt
+
+ systemctl restart turnserver
+
+ function_check configure_firewall_for_turn
+ configure_firewall_for_turn
+ install_completed sip_turn
+}
+
+function install_sip {
+ install_sip_main
+ update_sipwitch_daemon
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-synapse b/src/freedombone-app-synapse
new file mode 100755
index 00000000..24428c27
--- /dev/null
+++ b/src/freedombone-app-synapse
@@ -0,0 +1,408 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# synapse matrix server
+#
+# https://matrix.org/blog/2016/02/10/advanced-synapse-setup-with-lets-encrypt/
+#
+# Had no success in configuring this with Riot, and the identity server
+# turned out to be centralised.
+# https://github.com/matrix-org/matrix-doc/issues/712
+# Possibly it might become decentralised in future.
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+SYNAPSE_PORT=8448
+SYNAPSE_PASSWORD=
+SYNAPSE_DIR=/etc/matrix-synapse
+MATRIX_IRC_REPO="https://github.com/matrix-org/matrix-appservice-irc"
+
+synapse_variables=(ONION_ONLY
+ MY_USERNAME
+ SYNAPSE_PASSWORD
+ DEFAULT_DOMAIN_NAME)
+
+function install_matrix_irc_bridge {
+ if [ ! -d /etc/matrix-synapse ]; then
+ return
+ fi
+ if [ ! -d /etc/ngircd ]; then
+ return
+ fi
+
+ function_check install_nodejs
+ install_nodejs synapse
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+
+ cd $INSTALL_DIR
+ git_clone $MATRIX_IRC_REPO $INSTALL_DIR/matrix_irc_bridge
+ cd $INSTALL_DIR/matrix_irc_bridge
+ npm install
+ if [ ! -f config.sample.yaml ]; then
+ exit 623835
+ fi
+
+ IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
+
+ echo 'homeserver:' > $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' url: "http://localhost:8008"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' domain: "localhost"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo 'ircService:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' servers:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo " localhost:" >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo " name: \"${PROJECT_NAME} IRC\"" >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo " port: ${IRC_PORT}" >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' ssl: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' sslselfsign: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' password: "${IRC_PASSWORD}"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' sendConnectionMessages: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' quitDebounce:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' quitsPerSecond: 5' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' delayMs: 3600000 # 1h' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' botConfig:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' nick: "MatrixBot"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' joinChannelsIfNoUsers: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' privateMessages:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' federate: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' dynamicChannels:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' createAlias: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' published: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' joinRule: public' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' federate: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' aliasTemplate: "#irc_$CHANNEL"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' membershipLists:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' floodDelayMs: 10000' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' global:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' ircToMatrix:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' initial: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' incremental: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' matrixToIrc:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' initial: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' incremental: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' rooms:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' - room: "!fuasirouddJoxtwfge:localhost"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' matrixToIrc:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' initial: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' incremental: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' channels:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo " - channel: \"#${PROJECT_NAME}\"" >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' ircToMatrix:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' initial: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' incremental: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' mappings:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' "#thepub": ["!kieouiJuedJoxtVdaG:localhost"]' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' matrixClients:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' userTemplate: "@irc_$NICK"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' displayName: "$NICK (IRC)"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' ircClients:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' nickTemplate: "$DISPLAY[m]"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' allowNickChanges: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' maxClients: 30' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' idleTimeout: 10800' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' reconnectIntervalMs: 5000' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' lineLimit: 3' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' ident:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' port: 1113' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' logging:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' level: "debug"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' logfile: "debug.log"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' errfile: "errors.log"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' toConsole: true' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' maxFileSizeBytes: 134217728 # 128 MB' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' maxFiles: 5' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' databaseUri: "nedb://data"' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' debugApi:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' port: 11100' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' provisioning:' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' enabled: false' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+ echo ' requestTimeoutSeconds: 300' >> $INSTALL_DIR/matrix_irc_bridge/config.yaml
+
+ /usr/bin/node $INSTALL_DIR/matrix_irc_bridge/app.js -r -f /etc/matrix-synapse/my_registration_file.yaml -u "http://${DEFAULT_DOMAIN_NAME}:9999" -c $INSTALL_DIR/matrix_irc_bridge/config.yaml -l my_bot
+
+ if ! grep "my_registration_file.yaml" homeserver.yaml; then
+ echo 'app_service_config_files: ["my_registration_file.yaml"]' >> homeserver.yaml
+ fi
+
+ echo '[Unit]' > /etc/systemd/system/matrix_irc_bridge.service
+ echo 'Description=Matrix IRC Bridge' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo '' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo '[Service]' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo 'Type=simple' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo 'User=matrix-synapse' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo "WorkingDirectory=$INSTALL_DIR/matrix_irc_bridge" >> /etc/systemd/system/matrix_irc_bridge.service
+ echo "ExecStart=/usr/bin/node $INSTALL_DIR/matrix_irc_bridge/app.js -c $INSTALL_DIR/matrix_irc_bridge/config.yaml -f /etc/matrix-synapse/my_registration_file.yaml -p 9999" >> /etc/systemd/system/matrix_irc_bridge.service
+ echo 'Restart=always' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo 'RestartSec=3' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo '' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo '[Install]' >> /etc/systemd/system/matrix_irc_bridge.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/matrix_irc_bridge.service
+ systemctl enable matrix_irc_bridge
+ systemctl start matrix_irc_bridge
+}
+
+function can_install_synapse {
+ check_architecture=$(uname -a)
+ if [[ "$check_architecture" == *"amd64"* || "$check_architecture" == *"i386"* ]]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+function remove_user_synapse {
+ remove_username="$1"
+
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp synapse
+
+ # TODO
+}
+
+function add_user_synapse {
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a synapse -p "$new_user_password"
+
+ cd $SYNAPSE_DIR
+ register_new_matrix_user -c homeserver.yaml https://localhost:${SYNAPSE_PORT} -u "${new_username}" -p "${new_user_password}" -a
+ echo '0'
+}
+
+function install_interactive_synapse {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function change_password_synapse {
+ curr_username="$1"
+ new_user_password="$2"
+
+ #${PROJECT_NAME}-pass -u "$curr_username" -a synapse -p "$new_user_password"
+}
+
+function reconfigure_synapse {
+ echo -n ''
+}
+
+function upgrade_synapse {
+ echo -n ''
+}
+
+function backup_local_synapse {
+ source_directory=$SYNAPSE_DIR
+ if [ -d $source_directory ]; then
+ systemctl stop synapse
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory synapse
+ source_directory=/var/lib/matrix-synapse
+ if [ -d $source_directory ]; then
+ backup_directory_to_usb $source_directory synapsedata
+ fi
+ systemctl start synapse
+ fi
+}
+
+function restore_local_synapse {
+ if [ -d $SYNAPSE_DIR ]; then
+ systemctl stop synapse
+
+ temp_restore_dir=/root/tempsynapse
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir synapse
+ cp -r $temp_restore_dir$SYNAPSE_DIR/* $SYNAPSE_DIR
+ if [ ! "$?" = "0" ]; then
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 725
+ fi
+ rm -rf $temp_restore_dir
+ chown -R synapse:synapse $SYNAPSE_DIR
+
+ temp_restore_dir=/root/tempsynapsedata
+ restore_directory_from_usb $temp_restore_dir synapsedata
+ cp -r $temp_restore_dir/var/lib/matrix-synapse/* /var/lib/matrix-synapse
+ if [ ! "$?" = "0" ]; then
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 36872
+ fi
+ rm -rf $temp_restore_dir
+ chown -R synapse:synapse /var/lib/matrix-synapse
+
+ systemctl start synapse
+ fi
+}
+
+function backup_remote_synapse {
+ source_directory=$SYNAPSE_DIR
+ if [ -d $source_directory ]; then
+ systemctl stop synapse
+ function_check backup_directory_to_friend
+ backup_directory_to_friend $source_directory synapse
+ source_directory=/var/lib/matrix-synapse
+ if [ -d $source_directory ]; then
+ backup_directory_to_friend $source_directory synapsedata
+ fi
+ systemctl start synapse
+ fi
+}
+
+function restore_remote_synapse {
+ if [ -d $SYNAPSE_DIR ]; then
+ systemctl stop synapse
+
+ temp_restore_dir=/root/tempsynapse
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir synapse
+ cp -r $temp_restore_dir$SYNAPSE_DIR/* $SYNAPSE_DIR
+ if [ ! "$?" = "0" ]; then
+ exit 59262
+ fi
+ rm -rf $temp_restore_dir
+ chown -R synapse:synapse $SYNAPSE_DIR
+
+ temp_restore_dir=/root/tempsynapsedata
+ restore_directory_from_friend $temp_restore_dir synapsedata
+ cp -r $temp_restore_dir/var/lib/matrix-synapse/* /var/lib/matrix-synapse
+ if [ ! "$?" = "0" ]; then
+ exit 78335
+ fi
+ rm -rf $temp_restore_dir
+ chown -R synapse:synapse /var/lib/matrix-synapse
+
+ systemctl start synapse
+ fi
+}
+
+function remove_synapse {
+ systemctl stop matrix-synapse
+ firewall_remove ${SYNAPSE_PORT}
+ rm -rf $SYNAPSE_DIR
+ apt-get -yq remove --purge matrix-synapse matrix-synapse-angular-client
+ apt-get -yq autoremove
+
+ rm /etc/apt/sources.list.d/synapse.list
+ apt-get update
+
+ if [ -f /etc/systemd/system/matrix_irc_bridge.service ]; then
+ systemctl stop matrix_irc_bridge
+ systemctl disable matrix_irc_bridge
+ rm /etc/systemd/system/matrix_irc_bridge.service
+ remove_nodejs synapse
+ rm -rf $INSTALL_DIR/matrix_irc_bridge
+ fi
+
+ remove_completion_param install_synapse
+ sed -i '/synapse/d' $COMPLETION_FILE
+}
+
+function install_synapse {
+ if [[ "$(can_install_synapse)" == "0" ]]; then
+ echo $'Matrix/Synapse can only be installed on i386 or amd64 architectures'
+ exit 36734
+ fi
+
+ if [[ ${ONION_ONLY} == 'no' ]]; then
+ # obtain a cert for the default domain
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ echo $'Obtaining certificate for the main domain'
+ create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
+ fi
+ fi
+
+ if [ ! -d /etc/prosody ]; then
+ echo $'xmpp should be installed first'
+ exit 67382
+ fi
+
+ apt-get -yq install build-essential python2.7-dev libffi-dev \
+ python-pip python-setuptools sqlite3 \
+ libssl-dev libjpeg-dev libxslt1-dev python-virtualenv curl
+
+ curl -s https://matrix.org/packages/debian/repo-key.asc | apt-key add -
+ echo "deb https://matrix.org/packages/debian/ ${DEBIAN_VERSION} main" | tee /etc/apt/sources.list.d/synapse.list
+ apt-get update
+ apt-get -yq install python-cffi
+ apt-get -yq install python-nacl
+ apt-get -yq install python-signedjson
+
+ debconf-set-selections <<< "matrix-synapse matrix-synapse/server-name string $DEFAULT_DOMAIN_NAME"
+ debconf-set-selections <<< "matrix-synapse matrix-synapse/server_name string $DEFAULT_DOMAIN_NAME"
+ debconf-set-selections <<< "matrix-synapse matrix-synapse/report-stats boolean false"
+ apt-get -yq install matrix-synapse
+ if [ ! -d /etc/matrix-synapse ]; then
+ exit 653835
+ fi
+
+ #apt-get -yq install matrix-synapse-angular-client
+ #cp -av /etc/matrix-synapse/conf.d/webclient.yaml \
+ #/etc/matrix-synapse/conf.d/webclient.yaml.orig
+ #sed -e 's|,$||g' -i /etc/matrix-synapse/conf.d/webclient.yaml
+ #cp -av /etc/init.d/matrix-synapse /etc/init.d/matrix-synapse.orig
+ #sed -e 's|chown $USER:nogroup $PIDFILE.*|chown $USER:nogroup $PIDFILE /var/lib/$NAME/media|g' -i /etc/init.d/matrix-synapse
+ #diff -u /etc/init.d/matrix-synapse.orig /etc/init.d/matrix-synapse
+ #cp -av /etc/matrix-synapse/homeserver.yaml /etc/matrix-synapse/homeserver.yaml.orig
+ #sed -i 's|enable_registration: False|enable_registration: True|g' -i /etc/matrix-synapse/homeserver.yaml
+ #rm -f /etc/matrix-synapse/conf.d/*.orig /etc/matrix-synapse/conf.d/*~
+
+ update_default_domain
+ systemctl stop matrix-synapse
+ systemctl start matrix-synapse
+
+ firewall_add synapse ${SYNAPSE_PORT}
+
+ SYNAPSE_ONION_HOSTNAME=$(add_onion_service synapse ${SYNAPSE_PORT} ${SYNAPSE_PORT})
+ if [ ! ${SYNAPSE_PASSWORD} ]; then
+ if [ -f ${IMAGE_PASSWORD_FILE} ]; then
+ SYNAPSE_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ SYNAPSE_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+
+ add_user_synapse "${MY_USERNAME}" "${SYNAPSE_PASSWORD}"
+
+ #install_matrix_irc_bridge
+
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-syncthing b/src/freedombone-app-syncthing
new file mode 100755
index 00000000..7a2b1169
--- /dev/null
+++ b/src/freedombone-app-syncthing
@@ -0,0 +1,516 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Syncthing application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim cloud'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+SYNCTHING_ID=
+SYNCTHING_CONFIG_PATH=/root/.config/syncthing
+SYNCTHING_CONFIG_FILE=$SYNCTHING_CONFIG_PATH/config.xml
+SYNCTHING_RELAY_SERVER='https://relays.syncthing.net/endpoint'
+SYNCTHING_RELEASES='https://api.github.com/repos/syncthing/syncthing/releases?per_page=30'
+SYNCTHING_PORT=22000
+SYNCTHING_SHARED_DATA=/var/lib/syncthing/SyncShared
+SYNCTHING_USER_IDS_FILE='.syncthingids'
+
+syncthing_variables=(SYNCTHING_ID
+ SYNCTHING_CONFIG_PATH
+ SYNCTHING_CONFIG_FILE
+ SYNCTHING_RELAY_SERVER
+ SYNCTHING_RELEASES
+ SYNCTHING_PORT
+ SYNCTHING_SHARED_DATA
+ USB_MOUNT)
+
+function syncthing_create_ids_file {
+ if [ ! -f ~/.syncthing-server-id ]; then
+ return
+ fi
+
+ SYNCTHING_ID=$(cat ~/.syncthing-server-id)
+ if [ ! -f $SYNCTHING_CONFIG_FILE ]; then
+ echo $'# Your syncthing configuration file' > $SYNCTHING_CONFIG_FILE
+ echo '#' >> $SYNCTHING_CONFIG_FILE
+ echo $"# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID" >> $SYNCTHING_CONFIG_FILE
+ echo '#' >> $SYNCTHING_CONFIG_FILE
+ echo '# Paste the IDs of your devices below' >> $SYNCTHING_CONFIG_FILE
+ echo '#' >> $SYNCTHING_CONFIG_FILE
+ fi
+}
+
+function syncthing_manual_edit {
+ if [ ! -f ~/.syncthing-server-id ]; then
+ return
+ fi
+ syncthing_create_ids_file
+ editor $SYNCTHING_CONFIG_FILE
+
+ # force an update of the configuration
+ touch ~/.syncthing-update
+}
+
+function syncthing_show_id {
+ if [ ! -f ~/.syncthing-server-id ]; then
+ return
+ fi
+
+ SYNCTHING_ID=$(cat ~/.syncthing-server-id)
+ dialog --title $"Device ID for ${PROJECT_NAME}" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"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" 12 78
+}
+
+function syncthing_add_id {
+ if [ ! -f ~/.syncthing-server-id ]; then
+ return
+ fi
+
+ syncthing_create_ids_file
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Add a Syncthing device ID" \
+ --form $"Paste the device ID for your laptop/desktop/netbook/phone/tablet below" 9 80 2 \
+ $"Device ID:" 1 1 "" 1 26 80 80 \
+ $"Description (optional):" 2 1 "" 2 26 80 80 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ SYNCTHING_DEVICE_ID=$(cat $data | sed -n 1p)
+ SYNCTHING_DESCRIPTION=$(cat $data | sed -n 2p)
+
+ if [ ${#SYNCTHING_DEVICE_ID} -lt 10 ]; then
+ return
+ fi
+
+ if [[ $SYNCTHING_DEVICE_ID == *"#"* || $SYNCTHING_DEVICE_ID == *"*"* || $SYNCTHING_DEVICE_ID == *'/'* || $SYNCTHING_DEVICE_ID != *"-"* ]]; then
+ dialog --title $"Add a Syncthing device ID" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"That doesn't look like a device ID" 6 50
+ return
+ fi
+
+ if grep -q "$SYNCTHING_DEVICE_ID" $SYNCTHING_CONFIG_FILE; then
+ dialog --title $"Add a Syncthing device ID" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"That ID has already been added" 6 50
+ return
+ fi
+
+ if [ ${#SYNCTHING_DESCRIPTION} -gt 0 ]; then
+ echo "# $SYNCTHING_DESCRIPTION" >> $SYNCTHING_CONFIG_FILE
+ fi
+ echo "$SYNCTHING_DEVICE_ID" >> $SYNCTHING_CONFIG_FILE
+
+ # force an update of the configuration
+ touch ~/.syncthing-update
+
+ dialog --title $"Add a Syncthing device ID" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"The ID was added" 6 50
+}
+
+function syncthing_remove_id {
+ if [ ! -f ~/.syncthing-server-id ]; then
+ return
+ fi
+
+ syncthing_create_ids_file
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Remove a Syncthing device ID" \
+ --form $"Paste the device ID which is to be removed below" 8 80 1 \
+ $"Device ID:" 1 1 "" 1 14 80 80 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ SYNCTHING_DEVICE_ID=$(cat $data | sed -n 1p)
+
+ if [ ${#SYNCTHING_DEVICE_ID} -lt 10 ]; then
+ return
+ fi
+
+ if [[ $SYNCTHING_DEVICE_ID == *"#"* || $SYNCTHING_DEVICE_ID == *"*"* || $SYNCTHING_DEVICE_ID == *'/'* || $SYNCTHING_DEVICE_ID != *"-"* ]]; then
+ dialog --title $"Remove a Syncthing device ID" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"That doesn't look like a device ID" 6 50
+ return
+ fi
+
+ if ! grep -q "$SYNCTHING_DEVICE_ID" $SYNCTHING_CONFIG_FILE; then
+ dialog --title $"Remove a Syncthing device ID" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"That ID wasn't registered anyway" 6 50
+ return
+ fi
+
+ sed -i "/$SYNCTHING_DEVICE_ID/d" $SYNCTHING_CONFIG_FILE
+
+ # force an update of the configuration
+ touch ~/.syncthing-update
+
+ dialog --title $"Remove a Syncthing device ID" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"The ID was removed" 6 50
+}
+
+function run_client_syncthing {
+ SYNCTHING_CONFIG_FILE=~/.syncthingids
+ SYNCTHING_ID=$(cat ~/.syncthing-server-id)
+
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"File Synchronization" \
+ --radiolist $"Choose an operation:" 12 70 6 \
+ 1 $"Show device ID for ${PROJECT_NAME}" off \
+ 2 $"Add an ID for another machine or device" off \
+ 3 $"Remove an ID for another machine or device" off \
+ 4 $"Manually edit device IDs" off \
+ 5 $"Back to main menu" on 2> $data
+ sel=$?
+ case $sel in
+ 1) break;;
+ 255) break;;
+ esac
+ case $(cat $data) in
+ 1) syncthing_show_id;;
+ 2) syncthing_add_id;;
+ 3) syncthing_remove_id;;
+ 4) syncthing_manual_edit;;
+ 5) break;;
+ esac
+ done
+}
+
+function install_interactive_syncthing {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_syncthing {
+ echo -n ''
+}
+
+function upgrade_syncthing {
+ echo -n ''
+}
+
+function backup_local_syncthing {
+ if [ -d /var/lib/syncthing/SyncShared ]; then
+ function_check backup_directory_to_usb
+ backup_directory_to_usb /var/lib/syncthing/SyncShared syncthingshared
+ backup_directory_to_usb /root/.config/syncthing syncthingconfig
+ fi
+
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /home/$USERNAME/Sync ]; then
+ echo $"Backing up syncthing files for $USERNAME"
+ backup_directory_to_usb /home/$USERNAME/Sync syncthing/$USERNAME
+ # ensure that device IDs will be backed up as part of user config settings
+ if [ ! -d /home/$USERNAME/.config/syncthing ]; then
+ mkdir -p /home/$USERNAME/.config/syncthing
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ fi
+ if [ -f /home/$USERNAME/.syncthing-server-id ]; then
+ cp /home/$USERNAME/.syncthing-server-id /home/$USERNAME/.config/syncthing
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ fi
+ if [ -f /home/$USERNAME/.syncthingids ]; then
+ cp /home/$USERNAME/.syncthingids /home/$USERNAME/.config/syncthing
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ fi
+ fi
+ fi
+ done
+}
+
+function restore_local_syncthing {
+ if [ -f /etc/systemd/system/syncthing.service ]; then
+ systemctl stop syncthing
+ systemctl stop cron
+ fi
+
+ temp_restore_dir=/root/tempsyncthing
+ if [ -d $USB_MOUNT/backup/syncthingconfig ]; then
+ echo $"Restoring syncthing configuration"
+ function_check restore_directory_from_usb
+ restore_directory_from_usb ${temp_restore_dir}config syncthingconfig
+ cp -r ${temp_restore_dir}config/* /
+ if [ ! "$?" = "0" ]; then
+ set_user_permissions
+ backup_unmount_drive
+ systemctl start syncthing
+ systemctl start cron
+ exit 6833
+ fi
+ rm -rf ${temp_restore_dir}config
+ fi
+
+ if [ -d $USB_MOUNT/backup/syncthingshared ]; then
+ echo $"Restoring syncthing shared files"
+ restore_directory_from_usb ${temp_restore_dir}shared syncthingshared
+ cp -r ${temp_restore_dir}shared/* /
+ if [ ! "$?" = "0" ]; then
+ set_user_permissions
+ backup_unmount_drive
+ systemctl start syncthing
+ systemctl start cron
+ exit 37904
+ fi
+ rm -rf ${temp_restore_dir}shared
+ fi
+
+ if [ -d $USB_MOUNT/backup/syncthing ]; then
+ for d in $USB_MOUNT/backup/syncthing/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ ! -d /home/$USERNAME ]; then
+ ${PROJECT_NAME}-adduser $USERNAME
+ fi
+ echo $"Restoring syncthing files for $USERNAME"
+ restore_directory_from_usb ${temp_restore_dir} syncthing/$USERNAME
+ cp -r ${temp_restore_dir}/home/$USERNAME/Sync /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf ${temp_restore_dir}
+ set_user_permissions
+ backup_unmount_drive
+ systemctl start syncthing
+ systemctl start cron
+ exit 68438
+ fi
+ rm -rf ${temp_restore_dir}
+
+ # restore device IDs from config settings
+ if [ -f /home/$USERNAME/.config/syncthing/.syncthing-server-id ]; then
+ cp /home/$USERNAME/.config/syncthing/.syncthing-server-id /home/$USERNAME/.syncthing-server-id
+ chown $USERNAME:$USERNAME /home/$USERNAME/.syncthing-server-id
+ fi
+ if [ -f /home/$USERNAME/.config/syncthing/.syncthingids ]; then
+ cp /home/$USERNAME/.config/syncthing/.syncthingids /home/$USERNAME/.syncthingids
+ chown $USERNAME:$USERNAME /home/$USERNAME/.syncthingids
+ fi
+ fi
+ done
+ fi
+
+ if [ -f /etc/systemd/system/syncthing.service ]; then
+ systemctl start syncthing
+ systemctl start cron
+ fi
+}
+
+function backup_remote_syncthing {
+ if [ -d /root/.config/syncthing ]; then
+ echo $"Backing up syncthing configuration"
+ function_check backup_directory_to_friend
+ backup_directory_to_friend /root/.config/syncthing syncthingconfig
+ echo $"Backup of syncthing configuration complete"
+ fi
+ if [ -d /var/lib/syncthing/SyncShared ]; then
+ echo $"Backing up syncthing shared files"
+ function_check backup_directory_to_friend
+ backup_directory_to_friend /var/lib/syncthing/SyncShared syncthingshared
+ echo $"Backup of syncthing shared files complete"
+ fi
+
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /home/$USERNAME/Sync ]; then
+ echo $"Backing up syncthing files for $USERNAME"
+ backup_directory_to_friend /home/$USERNAME/Sync syncthing/$USERNAME
+ # ensure that device IDs will be backed up as part of user config settings
+ if [ ! -d /home/$USERNAME/.config/syncthing ]; then
+ mkdir -p /home/$USERNAME/.config/syncthing
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ fi
+ if [ -f /home/$USERNAME/.syncthing-server-id ]; then
+ cp /home/$USERNAME/.syncthing-server-id /home/$USERNAME/.config/syncthing
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ fi
+ if [ -f /home/$USERNAME/.syncthingids ]; then
+ cp /home/$USERNAME/.syncthingids /home/$USERNAME/.config/syncthing
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ fi
+ fi
+ fi
+ done
+}
+
+function restore_remote_syncthing {
+ if [ -f /etc/systemd/system/syncthing.service ]; then
+ systemctl stop syncthing
+ systemctl stop cron
+ fi
+
+ if [ -d $SERVER_DIRECTORY/backup/syncthingconfig ]; then
+ echo $"Restoring syncthing configuration"
+ temp_restore_dir=/root/tempsyncthingconfig
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir syncthingconfig
+ cp -r $temp_restore_dir/* /
+ if [ ! "$?" = "0" ]; then
+ systemctl start syncthing
+ systemctl start cron
+ exit 6833
+ fi
+ rm -rf $temp_restore_dir
+ fi
+
+ if [ -d $SERVER_DIRECTORY/backup/syncthingshared ]; then
+ echo $"Restoring syncthing shared files"
+ temp_restore_dir=/root/tempsyncthingshared
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir syncthingshared
+ cp -r $temp_restore_dir/* /
+ if [ ! "$?" = "0" ]; then
+ systemctl start syncthing
+ systemctl start cron
+ exit 37904
+ fi
+ rm -rf $temp_restore_dir
+ fi
+
+ if [ -d $SERVER_DIRECTORY/backup/syncthing ]; then
+ for d in $SERVER_DIRECTORY/backup/syncthing/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ ! -d /home/$USERNAME ]; then
+ ${PROJECT_NAME}-adduser $USERNAME
+ fi
+ echo $"Restoring syncthing files for $USERNAME"
+ temp_restore_dir=/root/tempsyncthing
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir syncthing/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/Sync /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ systemctl start syncthing
+ systemctl start cron
+ exit 68438
+ fi
+ rm -rf $temp_restore_dir
+
+ # restore device IDs from config settings
+ if [ -f /home/$USERNAME/.config/syncthing/.syncthing-server-id ]; then
+ cp /home/$USERNAME/.config/syncthing/.syncthing-server-id /home/$USERNAME/.syncthing-server-id
+ chown $USERNAME:$USERNAME /home/$USERNAME/.syncthing-server-id
+ fi
+ if [ -f /home/$USERNAME/.config/syncthing/.syncthingids ]; then
+ cp /home/$USERNAME/.config/syncthing/.syncthingids /home/$USERNAME/.syncthingids
+ chown $USERNAME:$USERNAME /home/$USERNAME/.syncthingids
+ fi
+ echo $"Restore of syncthing files for $USERNAME complete"
+ fi
+ done
+ fi
+
+ if [ -f /etc/systemd/system/syncthing.service ]; then
+ systemctl start syncthing
+ systemctl start cron
+ fi
+}
+
+function remove_syncthing {
+ firewall_remove ${SYNCTHING_PORT}
+ systemctl stop syncthing
+ systemctl disable syncthing
+ apt-get -yq remove --purge syncthing
+ rm /etc/systemd/system/syncthing.service
+ sed -i "/${PROJECT_NAME}-syncthing/d" /etc/crontab
+ remove_completion_param install_syncthing
+ remove_completion_param configure_firewall_for_syncthing
+ systemctl restart cron
+}
+
+function configure_firewall_for_syncthing {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ firewall_add Syncthing ${SYNCTHING_PORT}
+ mark_completed $FUNCNAME
+}
+
+function install_syncthing {
+ apt-get -yq install curl
+
+ curl -s https://syncthing.net/release-key.txt | apt-key add -
+ echo "deb http://apt.syncthing.net/ syncthing release" | tee /etc/apt/sources.list.d/syncthing.list
+ apt-get update
+ apt-get -yq install syncthing
+
+ # This probably does need to run as root so that it can access the Sync directories
+ # in each user's home directory
+ echo '[Unit]' > /etc/systemd/system/syncthing.service
+ echo 'Description=Syncthing - Open Source Continuous File Synchronization' >> /etc/systemd/system/syncthing.service
+ echo 'Documentation=man:syncthing(1)' >> /etc/systemd/system/syncthing.service
+ echo 'After=network.target' >> /etc/systemd/system/syncthing.service
+ echo 'Wants=syncthing-inotify@.service' >> /etc/systemd/system/syncthing.service
+ echo '' >> /etc/systemd/system/syncthing.service
+ echo '[Service]' >> /etc/systemd/system/syncthing.service
+ echo 'User=root' >> /etc/systemd/system/syncthing.service
+ echo "Environment='all_proxy=socks5://localhost:9050'" >> /etc/systemd/system/syncthing.service
+ echo 'ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0' >> /etc/systemd/system/syncthing.service
+ echo 'Restart=on-failure' >> /etc/systemd/system/syncthing.service
+ echo 'SuccessExitStatus=3 4' >> /etc/systemd/system/syncthing.service
+ echo 'RestartForceExitStatus=3 4' >> /etc/systemd/system/syncthing.service
+ echo '' >> /etc/systemd/system/syncthing.service
+ echo '[Install]' >> /etc/systemd/system/syncthing.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/syncthing.service
+ systemctl enable syncthing
+ systemctl daemon-reload
+ systemctl start syncthing
+
+ function_check cron_add_mins
+ cron_add_mins 1 "/usr/local/bin/${PROJECT_NAME}-syncthing > /dev/null"
+
+ function_check configure_firewall_for_syncthing
+ configure_firewall_for_syncthing
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-tahoelafs b/src/freedombone-app-tahoelafs
new file mode 100755
index 00000000..f41700d0
--- /dev/null
+++ b/src/freedombone-app-tahoelafs
@@ -0,0 +1,349 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Distributed storage
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+TAHOELAFS_REPO="https://github.com/tahoe-lafs/tahoe-lafs"
+TAHOELAFS_COMMIT='30b421d48b3d1dae2ef507bf27a1f3816300cd92'
+
+TAHOELAFS_PORT=50213
+TAHOELAFS_WEB_PORT=3456
+TAHOELAFS_STORAGE_SPACE=1G
+TAHOELAFS_SHARED_DIR='Shared'
+TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
+
+tahoelafs_variables=(TAHOELAFS_REPO
+ TAHOELAFS_COMMIT
+ TAHOELAFS_PORT)
+
+function install_interactive_tahoelafs {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_tahoelafs {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -d /home/$USERNAME/.tahoe ]; then
+ su -c "$TAHOE_COMMAND stop" - $USERNAME
+ rm -rf /home/$USERNAME/.tahoe
+ fi
+
+ if [ -d /home/$USERNAME/${TAHOELAFS_SHARED_DIR} ]; then
+ rm -rf /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
+ fi
+
+ su -c "cd $TAHOE_COMMAND create-node" - $USERNAME
+
+ if [ ! -d /home/$USERNAME/.tahoe ]; then
+ exit 63722
+ fi
+
+ # create a shared directory
+ if [ ! -d /home/$USERNAME/${TAHOELAFS_SHARED_DIR} ]; then
+ mkdir /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
+ fi
+
+ TAHOELAFS_CONFIG=/home/$USERNAME/.tahoe/tahoe.cfg
+ echo '[node]' > $TAHOELAFS_CONFIG
+ echo "nickname = $USERNAME" >> $TAHOELAFS_CONFIG
+ echo "web.port = tcp:$TAHOELAFS_WEB_PORT:interface=127.0.0.1" >> $TAHOELAFS_CONFIG
+ echo 'web.static = public_html' >> $TAHOELAFS_CONFIG
+ echo "tub.port = tcp:$TAHOELAFS_PORT" >> $TAHOELAFS_CONFIG
+ echo "tub.location = tcp:$HOSTNAME:$TAHOELAFS_PORT" >> $TAHOELAFS_CONFIG
+ echo 'timeout.keepalive = 240' >> $TAHOELAFS_CONFIG
+ echo 'timeout.disconnect = 1800' >> $TAHOELAFS_CONFIG
+ echo '' >> $TAHOELAFS_CONFIG
+ echo '[client]' >> $TAHOELAFS_CONFIG
+ echo 'introducer.furl = None' >> $TAHOELAFS_CONFIG
+ echo '#helper.furl =' >> $TAHOELAFS_CONFIG
+ echo '' >> $TAHOELAFS_CONFIG
+ echo 'shares.needed = 1' >> $TAHOELAFS_CONFIG
+ echo 'shares.happy = 1' >> $TAHOELAFS_CONFIG
+ echo 'shares.total = 1' >> $TAHOELAFS_CONFIG
+ echo '' >> $TAHOELAFS_CONFIG
+ echo '[storage]' >> $TAHOELAFS_CONFIG
+ echo 'enabled = true' >> $TAHOELAFS_CONFIG
+ echo "reserved_space = $TAHOELAFS_STORAGE_SPACE" >> $TAHOELAFS_CONFIG
+ echo '#expire.enabled = true' >> $TAHOELAFS_CONFIG
+ echo '#expire.mode =' >> $TAHOELAFS_CONFIG
+ echo '' >> $TAHOELAFS_CONFIG
+ echo '[helper]' >> $TAHOELAFS_CONFIG
+ echo 'enabled = false' >> $TAHOELAFS_CONFIG
+ echo '' >> $TAHOELAFS_CONFIG
+ echo '[magic_folder]' >> $TAHOELAFS_CONFIG
+ echo 'enabled = true' >> $TAHOELAFS_CONFIG
+ echo "local.directory = /home/${USERNAME}/${TAHOELAFS_SHARED_DIR}" >> $TAHOELAFS_CONFIG
+ chown $USERNAME:$USERNAME $TAHOELAFS_CONFIG
+
+ su -c "$TAHOE_COMMAND start" - $USERNAME
+ su -c "$TAHOE_COMMAND magic-folder create $HOSTNAME" - $USERNAME
+ fi
+ done
+}
+
+function upgrade_tahoelafs {
+ echo -n ''
+ # TODO
+}
+
+function backup_local_tahoelafs {
+ source_directory=/home/tahoelafs/.tahoe-introducer
+ if [ ! -d $source_directory ]; then
+ return
+ fi
+ systemctl stop tahoelafs
+ dest_directory=tahoelafs
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ systemctl start tahoelafs
+}
+
+function restore_local_tahoelafs {
+ echo $"Restoring Tahoe-LAFS introducer"
+ systemctl stop tahoelafs
+ temp_restore_dir=/root/temptahoelafs
+ restore_directory_from_usb $temp_restore_dir tahoelafs
+ mv /home/tahoelafs/.tahoe-introducer /home/tahoelafs/.tahoe-introducer-old
+ cp -r $temp_restore_dir/home/tahoelafs/.tahoe-introducer /home/tahoelafs/
+ if [ ! "$?" = "0" ]; then
+ mv /home/tahoelafs/.tahoe-introducer-old /home/tahoelafs/.tahoe-introducer
+ exit 246833
+ fi
+ rm -rf /home/tahoelafs/.tahoe-introducer
+ chown -R tahoelafs:tahoelafs /home/tahoelafs
+ systemctl start tahoelafs
+ echo $"Restore complete"
+}
+
+function backup_remote_tahoelafs {
+ source_directory=/home/tahoelafs/.tahoe-introducer
+ if [ ! -d $source_directory ]; then
+ return
+ fi
+ systemctl stop tahoelafs
+ dest_directory=tahoelafs
+ function_check backup_directory_to_usb
+ backup_directory_to_friend $source_directory $dest_directory
+ systemctl start tahoelafs
+}
+
+function restore_remote_tahoelafs {
+ echo $"Restoring Tahoe-LAFS introducer"
+ systemctl stop tahoelafs
+ temp_restore_dir=/root/temptahoelafs
+ restore_directory_from_friend $temp_restore_dir tahoelafs
+ mv /home/tahoelafs/.tahoe-introducer /home/tahoelafs/.tahoe-introducer-old
+ cp -r $temp_restore_dir/home/tahoelafs/.tahoe-introducer /home/tahoelafs/
+ if [ ! "$?" = "0" ]; then
+ mv /home/tahoelafs/.tahoe-introducer-old /home/tahoelafs/.tahoe-introducer
+ exit 623925
+ fi
+ rm -rf /home/tahoelafs/.tahoe-introducer-old
+ chown -R tahoelafs:tahoelafs /home/tahoelafs
+ systemctl start tahoelafs
+ echo $"Restore complete"
+}
+
+function remove_tahoelafs {
+ firewall_remove ${TAHOELAFS_PORT}
+
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [ -f /home/$USERNAME/.tahoe ]; then
+ su -c "$TAHOE_COMMAND stop" - $USERNAME
+ rm -rf /home/$USERNAME/.tahoe
+ fi
+ done
+
+ rm -rf /var/lib/tahoelafs
+
+ remove_completion_param install_tahoelafs
+ remove_completion_param configure_firewall_for_tahoelafs
+}
+
+function configure_firewall_for_tahoelafs {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ firewall_add Tahoe-LAFS ${TAHOELAFS_PORT}
+ mark_completed $FUNCNAME
+}
+
+function tahoelafs_update_script {
+ update_script_filename=$1
+
+ echo '#!/bin/bash' > $update_script_filename
+ echo 'TOX_USERNAME=$(toxid --showuser)' >> $update_script_filename
+ echo 'PEERS_FILE=$(mktemp /tmp/tahoelafs-peers.XXXXXX)' >> $update_script_filename
+ echo -n 'avahi-browse -atl | grep "Workstation" | ' >> $update_script_filename
+ echo -n "awk -F ' ' '{print \$4}' " >> $update_script_filename
+ echo '| sort -u > $PEERS_FILE' >> $update_script_filename
+ echo 'if [ ! "$?" = "0" ]; then' >> $update_script_filename
+ echo ' exit 1' >> $update_script_filename
+ echo 'fi' >> $update_script_filename
+ echo '' >> $update_script_filename
+ echo 'if [ ! -f $PEERS_FILE ]; then' >> $update_script_filename
+ echo ' exit 0' >> $update_script_filename
+ echo 'fi' >> $update_script_filename
+ echo '' >> $update_script_filename
+ echo 'furl=""' >> $update_script_filename
+ echo 'while IFS="" read -r line || [[ -n "$line" ]]; do' >> $update_script_filename
+ echo ' if [[ $furl != "" ]]; then' >> $update_script_filename
+ echo -n ' furl="$furl,$line:' >> $update_script_filename
+ echo -n "$TAHOELAFS_PORT" >> $update_script_filename
+ echo '"' >> $update_script_filename
+ echo ' else' >> $update_script_filename
+ echo -n ' furl="$line:' >> $update_script_filename
+ echo -n "$TAHOELAFS_PORT" >> $update_script_filename
+ echo '"' >> $update_script_filename
+ echo ' fi' >> $update_script_filename
+ echo 'done < "$PEERS_FILE"' >> $update_script_filename
+ echo '' >> $update_script_filename
+ echo 'rm $PEERS_FILE' >> $update_script_filename
+ echo '' >> $update_script_filename
+ echo 'for d in /home/*/ ; do' >> $update_script_filename
+ echo -n ' USERNAME=$(echo "$d" | ' >> $update_script_filename
+ echo "awk -F '/' '{print \$3}')'" >> $update_script_filename
+ echo ' if [ -f /home/$USERNAME/.tahoe/tahoe.cfg ]; then' >> $update_script_filename
+ echo ' if ! grep -q "introducer.furl = ${furl}" /home/$USERNAME/.tahoe/tahoe.cfg; then' >> $update_script_filename
+ echo ' sed -i "s|introducer.furl =.*|introducer.furl = ${furl}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
+ echo ' sed -i "s|nickname =.*|nickname = ${TOX_USERNAME}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
+ echo ' chown $USERNAME:$USERNAME /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
+ echo " su -c '$TAHOE_COMMAND restart' - \$USERNAME" >> $update_script_filename
+ echo ' fi' >> $update_script_filename
+ echo ' fi' >> $update_script_filename
+ echo 'done' >> $update_script_filename
+ echo '' >> $update_script_filename
+
+ echo 'exit 0' >> $update_script_filename
+ chmod +x $update_script_filename
+}
+
+function mesh_install_tahoelafs {
+ chroot "$rootdir" apt-get -yq install build-essential python-pip python-dev
+ chroot "$rootdir" apt-get -yq install libffi-dev libssl-dev python-virtualenv
+
+ git clone $TAHOELAFS_REPO $rootdir/var/lib/tahoelafs
+ cd $rootdir/var/lib/tahoelafs
+ git checkout $TAHOELAFS_COMMIT -b $TAHOELAFS_COMMIT
+
+ cat < $rootdir/root/install_tahoelafs
+cd /var/lib/tahoelafs
+virtualenv venv
+venv/bin/pip install --editable .
+EOF
+ chroot "$rootdir" chmod +x /root/install_tahoelafs
+ chroot "$rootdir" /root/install_tahoelafs
+ chroot "$rootdir" rm /root/install_tahoelafs
+
+ tahoelafs_update_script $rootdir/usr/bin/update-tahoelafs
+
+ if ! grep -q "update-tahoelafs" $rootdir/etc/crontab; then
+ echo "*/1 * * * * root /usr/bin/update-tahoelafs 2> /dev/null" >> $rootdir/etc/crontab
+ fi
+}
+
+function install_tahoelafs {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_tahoelafs
+ return
+ fi
+
+ apt-get -yq install build-essential python-pip python-dev libffi-dev libssl-dev python-virtualenv
+
+ # create a user to run the introducer
+ if [ ! -d /home/tahoelafs ]; then
+ # add a gogs user account
+ adduser --disabled-login --gecos 'tahoe-lafs' tahoelafs
+ fi
+
+ if [ -d /home/tahoelafs/Maildir ]; then
+ rm -rf /home/tahoelafs/Maildir
+ fi
+
+ if [ ! -d /home/tahoelafs/.tahoe-introducer ]; then
+ mkdir /home/tahoelafs/.tahoe-introducer
+ fi
+
+ git_clone $TAHOELAFS_REPO /home/tahoelafs/tahoelafs
+ cd /home/tahoelafs/tahoelafs
+ git checkout $TAHOELAFS_COMMIT -b $TAHOELAFS_COMMIT
+ virtualenv venv
+ venv/bin/pip install --editable .
+ configure_firewall_for_tahoelafs
+
+ su -c "cd $TAHOE_COMMAND create-introducer /home/tahoelafs/.tahoe-introducer" - tahoelafs
+ TAHOELAFS_CONFIG=/home/tahoelafs/.tahoe-introducer/tahoe.cfg
+ if [ ! -f $TAHOELAFS_CONFIG ]; then
+ exit 62831
+ fi
+
+ sed -i "s|nickname =.*|nickname = $HOSTNAME|g" $TAHOELAFS_CONFIG
+
+ if ! grep -q "[storage]" $TAHOELAFS_CONFIG; then
+ echo '' >> $TAHOELAFS_CONFIG
+ echo '[storage]' >> $TAHOELAFS_CONFIG
+ echo 'enabled = true' >> $TAHOELAFS_CONFIG
+ echo "reserved_space = $TAHOELAFS_STORAGE_SPACE" >> $TAHOELAFS_CONFIG
+ fi
+
+ chown -R tahoelafs:tahoelafs /home/tahoelafs
+
+ TAHOELAFS_DAEMON_FILE=/etc/systemd/system/tahoelafs.service
+ echo '[Unit]' > $TAHOELAFS_DAEMON_FILE
+ echo 'Description=Tahoe-LAFS introducer' >> $TAHOELAFS_DAEMON_FILE
+ echo 'After=syslog.target' >> $TAHOELAFS_DAEMON_FILE
+ echo 'After=network.target' >> $TAHOELAFS_DAEMON_FILE
+ echo '' >> $TAHOELAFS_DAEMON_FILE
+ echo '[Service]' >> $TAHOELAFS_DAEMON_FILE
+ echo 'Type=simple' >> $TAHOELAFS_DAEMON_FILE
+ echo "User=tahoelafs" >> $TAHOELAFS_DAEMON_FILE
+ echo "Group=tahoelafs" >> $TAHOELAFS_DAEMON_FILE
+ echo "WorkingDirectory=/home/tahoelafs" >> $TAHOELAFS_DAEMON_FILE
+ echo "ExecStart=venv/bin/tahoe start /home/tahoelafs/.tahoe-introducer" >> $TAHOELAFS_DAEMON_FILE
+ echo "ExecStop=venv/bin/tahoe stop /home/tahoelafs/.tahoe-introducer" >> $TAHOELAFS_DAEMON_FILE
+ echo 'Restart=on-failure' >> $TAHOELAFS_DAEMON_FILE
+ echo "Environment=\"USER=tahoelafs\" \"HOME=/home/tahoelafs\"" >> $TAHOELAFS_DAEMON_FILE
+ echo '' >> $TAHOELAFS_DAEMON_FILE
+ echo '[Install]' >> $TAHOELAFS_DAEMON_FILE
+ echo 'WantedBy=multi-user.target' >> $TAHOELAFS_DAEMON_FILE
+ systemctl enable tahoelafs
+ systemctl daemon-reload
+ systemctl start tahoelafs
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-tox b/src/freedombone-app-tox
new file mode 100755
index 00000000..537bc681
--- /dev/null
+++ b/src/freedombone-app-tox
@@ -0,0 +1,731 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Tox Application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim chat'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+TOX_PORT=33445
+TOXCORE_REPO="https://github.com/bashrc/toxcore"
+TOXCORE_COMMIT='d3fa9f82bda3a8746917502c525237427ba17d45'
+TOXID_REPO="https://github.com/bashrc/toxid"
+TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
+# These are some default nodes, but you can replace them with trusted nodes
+# as you prefer. See https://wiki.tox.im/Nodes
+TOX_NODES=
+#TOX_NODES=(
+# '192.254.75.102,2607:5600:284::2,33445,951C88B7E75C867418ACDB5D273821372BB5BD652740BCDF623A4FA293E75D2F,Tox RELENG,US'
+# '144.76.60.215,2a01:4f8:191:64d6::1,33445,04119E835DF3E78BACF0F84235B300546AF8B936F035185E2A8E9E0A67C8924F,sonOfRa,DE'
+#)
+TOXIC_REPO="https://github.com/Tox/toxic"
+TOXIC_COMMIT='cf16849b374e484a33a4dffa3dfb937b59d537f2'
+TOXIC_FILE=/usr/local/bin/toxic
+
+QTOX_REPO="https://github.com/bashrc/qTox"
+QTOX_COMMIT='origin/bashrc/freedombone'
+
+tox_variables=(SYSTEM_TYPE
+ TOXCORE_REPO
+ TOXCORE_COMMIT
+ TOXIC_COMMIT
+ MY_USERNAME
+ ONION_ONLY
+ INSTALLED_WITHIN_DOCKER
+ TOX_PORT
+ TOX_NODES)
+
+function remove_user_tox {
+ remove_username="$1"
+
+ if [ -d /home/$remove_username/.config/tox ]; then
+ if [ -d /home/$remove_username/.config/tox/chatlogs ]; then
+ shred -zu /home/$remove_username/.config/tox/chatlogs/*
+ rm -rf /home/$remove_username/.config/tox/chatlogs
+ fi
+ shred -zu /home/$remove_username/.config/tox/*
+ fi
+}
+
+function add_user_tox {
+ new_username="$1"
+
+ # Note: password isn't used
+ new_user_password="$2"
+
+ USER_TOX_FILE=/home/${new_username}/.config/tox/data.tox
+ if [ ! -f $USER_TOX_FILE ]; then
+ mkdir -p /home/${new_username}/.config/tox
+ chown -R ${new_username}:${new_username} /home/${new_username}/.config
+ su -c "toxid -u ${new_username} -n data" - $new_username
+ su -c "toxid --setuser ${new_username}" - $new_username
+ fi
+}
+
+function run_client_tox {
+ # create a tox user
+ USER_TOX_FILE=/home/${USER}/.config/tox/data.tox
+ if [ ! -f $USER_TOX_FILE ]; then
+ mkdir -p /home/${USER}/.config/tox
+ chown -R ${USER}:${USER} /home/${USER}/.config
+ toxid -u ${USER} -n data
+ toxid --setuser ${USER}
+ fi
+ toxic -f $USER_TOX_FILE --force-tcp --SOCKS5-proxy 127.0.0.1 9050
+}
+
+function install_interactive_tox {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function configure_interactive_tox {
+ if [ ! -f $TOX_BOOTSTRAP_ID_FILE ]; then
+ return
+ fi
+ bootstrap_id=$(cat $TOX_BOOTSTRAP_ID_FILE)
+ dialog --title $"Tox Bootstrap Node ID" \
+ --msgbox $"\n$bootstrap_id\n\nTo copy this hold down the shift key, select the ID and then right click and copy." 10 70
+}
+
+function mesh_tox_qtox {
+ if [ ! ${rootdir}$INSTALL_DIR ]; then
+ INSTALL_DIR=${rootdir}/root/build
+ fi
+
+ if [ ! -d ${rootdir}$INSTALL_DIR ]; then
+ mkdir -p ${rootdir}$INSTALL_DIR
+ fi
+
+ chroot "${rootdir}" apt-get -yq install build-essential libatk1.0-0 libbz2-1.0 libc6 libcairo2 libdbus-1-3 libegl1-mesa libfontconfig1 libfreetype6 libgcc1 libgdk-pixbuf2.0-0 libgl1-mesa-glx libglib2.0-0 libgtk2.0-0 libice6 libicu52 libjpeg62-turbo libmng1 libmtdev1 libopenal1 libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpng12-0 libqrencode3 libsm6 libsodium13 libsqlite3-0 libssl1.0.0 libstdc++6 libtiff5 libudev1 libvpx1 libwayland-client0 libwayland-cursor0 libwayland-egl1-mesa libwebp5 libx11-6 libx11-xcb1 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb1 libxext6 libxfixes3 libxi6 libxrender1 libxss1 zlib1g libopus-dev libvpx-dev
+ chroot "${rootdir}" apt-get -yq install build-essential qt5-qmake qt5-default qttools5-dev-tools libqt5opengl5-dev libqt5svg5-dev libopenal-dev libxss-dev qrencode libqrencode-dev libglib2.0-dev libgdk-pixbuf2.0-dev libgtk2.0-dev libsqlcipher-dev libopus-dev libvpx-dev libavformat-dev libavdevice-dev libswscale-dev libavutil-dev libavcodec-dev libavcodec56 libavcodec57 libavfilter-dev libavfilter6
+
+ mesh_install_ffmpeg
+
+ git clone $QTOX_REPO ${rootdir}$INSTALL_DIR/qtox
+ if [ ! -d ${rootdir}$INSTALL_DIR/qtox ]; then
+ exit 72428
+ fi
+ cd ${rootdir}${INSTALL_DIR}/qtox
+ git checkout $QTOX_COMMIT -b $QTOX_COMMIT
+ chroot ${rootdir} /bin/bash -x < /dev/null'
+ fi
+
+ systemctl restart avahi-daemon
+
+ mark_completed $FUNCNAME
+}
+
+function install_tox_node {
+ if [[ $(app_is_installed tox_node) == "1" ]]; then
+ return
+ fi
+
+ function_check mesh_tox_node
+ mesh_tox_node
+
+ # onion address for bootstrapping
+ TOX_ONION_HOSTNAME=$(add_onion_service tox ${TOX_PORT} ${TOX_PORT})
+
+ systemctl restart tox-bootstrapd.service
+
+ sleep 3
+
+ TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | tail -n 1 | awk -F ' ' '{print $8}')
+ if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then
+ echo $'Could not obtain the tox node public key'
+ exit 6529
+ fi
+
+ # save the public key for later reference
+ echo "$TOX_PUBLIC_KEY" > $TOX_BOOTSTRAP_ID_FILE
+
+ function_check configure_firewall_for_tox
+ configure_firewall_for_tox
+
+ function_check configure_firewall_for_tox
+ configure_firewall_for_tox
+ install_completed tox_node
+}
+
+function install_tox_client {
+ if [[ $(app_is_installed tox_client) == "1" ]]; then
+ return
+ fi
+
+ function_check mesh_tox_client
+ mesh_tox_client
+
+ install_completed tox_client
+}
+
+function mesh_tox_node {
+ # obtain commits from the main file
+ TOXCORE_COMMIT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#TOXCORE_COMMIT_MAIN} -gt 10 ]; then
+ TOXCORE_COMMIT=$TOXCORE_COMMIT_MAIN
+ fi
+ if [ ! $TOXCORE_COMMIT ]; then
+ echo $'No Tox commit was specified'
+ exit 76325
+ fi
+
+ TOXID_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ if [ ${#TOXID_REPO_MAIN} -gt 5 ]; then
+ TOXID_REPO=$TOXID_REPO_MAIN
+ fi
+ if [ ! $TOXID_REPO ]; then
+ echo $'No ToxID repo was specified'
+ exit 78252
+ fi
+
+ TOX_PORT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
+ if [ ${#TOX_PORT_MAIN} -gt 2 ]; then
+ TOX_PORT=$TOX_PORT_MAIN
+ fi
+ if [ ! $TOX_PORT ]; then
+ echo $'No Tox port was specified'
+ exit 32856
+ fi
+
+ TOXCORE_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ if [ ${#TOXCORE_REPO_MAIN} -gt 10 ]; then
+ TOXCORE_REPO=$TOXCORE_REPO_MAIN
+ fi
+ if [ ! $TOXCORE_REPO ]; then
+ echo $'No Tox repo was specified'
+ exit 16865
+ fi
+
+ if [ ! $TOXCORE_COMMIT ]; then
+ echo $'No Tox commit was specified'
+ exit 76325
+ fi
+
+ if [ ! $TOXCORE_REPO ]; then
+ echo $'No Tox repo was specified'
+ exit 16865
+ fi
+
+ if [ $rootdir ]; then
+ chroot ${rootdir} apt-get -yq install build-essential libtool autotools-dev
+ chroot ${rootdir} apt-get -yq install automake checkinstall check git yasm
+ chroot ${rootdir} apt-get -yq install libsodium13 libsodium-dev libcap2-bin
+ chroot ${rootdir} apt-get -yq install libconfig9 libconfig-dev autoconf
+ chroot ${rootdir} apt-get -yq install libopus-dev libvpx-dev
+ else
+ apt-get -yq install build-essential libtool autotools-dev
+ apt-get -yq install automake checkinstall check git yasm
+ apt-get -yq install libsodium13 libsodium-dev libcap2-bin
+ apt-get -yq install libconfig9 libconfig-dev autoconf
+ apt-get -yq install libopus-dev libvpx-dev
+ fi
+
+ if [ ! -d ${rootdir}${INSTALL_DIR} ]; then
+ mkdir -p ${rootdir}${INSTALL_DIR}
+ fi
+ if [ ! -d ${rootdir}${INSTALL_DIR}/toxcore ]; then
+ git clone ${TOXCORE_REPO} ${rootdir}${INSTALL_DIR}/toxcore
+ if [ ! "$?" = "0" ]; then
+ exit 429252
+ fi
+ fi
+ cd ${rootdir}$INSTALL_DIR/toxcore
+ git checkout $TOXCORE_COMMIT -b $TOXCORE_COMMIT
+
+ if [ ${rootdir} ]; then
+ chroot ${rootdir} /bin/bash -x < $TOX_BOOTSTRAP_CONFIG
+ echo 'keys_file_path = "/var/lib/tox-bootstrapd/keys"' >> $TOX_BOOTSTRAP_CONFIG
+ echo 'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"' >> $TOX_BOOTSTRAP_CONFIG
+ echo 'enable_ipv6 = true' >> $TOX_BOOTSTRAP_CONFIG
+ echo 'enable_ipv4_fallback = true' >> $TOX_BOOTSTRAP_CONFIG
+ echo 'enable_lan_discovery = true' >> $TOX_BOOTSTRAP_CONFIG
+ echo 'enable_tcp_relay = true' >> $TOX_BOOTSTRAP_CONFIG
+ echo "tcp_relay_ports = [443, 3389, $TOX_PORT]" >> $TOX_BOOTSTRAP_CONFIG
+ echo 'enable_motd = true' >> $TOX_BOOTSTRAP_CONFIG
+ echo 'motd = "tox-bootstrapd"' >> $TOX_BOOTSTRAP_CONFIG
+
+ if [ $TOX_NODES ]; then
+ echo 'bootstrap_nodes = (' >> $TOX_BOOTSTRAP_CONFIG
+ toxcount=0
+ while [ "x${TOX_NODES[toxcount]}" != "x" ]
+ do
+ toxval_ipv4=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $1}')
+ toxval_ipv6=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $2}')
+ toxval_port=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $3}')
+ toxval_pubkey=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $4}')
+ toxval_maintainer=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $5}')
+ echo "{ // $toxval_maintainer" >> $TOX_BOOTSTRAP_CONFIG
+ if [[ $toxval_ipv6 != 'NONE' ]]; then
+ echo " address = \"$toxval_ipv6\"" >> $TOX_BOOTSTRAP_CONFIG
+ else
+ echo " address = \"$toxval_ipv4\"" >> $TOX_BOOTSTRAP_CONFIG
+ fi
+ echo " port = $toxval_port" >> $TOX_BOOTSTRAP_CONFIG
+ echo " public_key = \"$toxval_pubkey\"" >> $TOX_BOOTSTRAP_CONFIG
+ toxcount=$(( $toxcount + 1 ))
+ if [ "x${TOX_NODES[toxcount]}" != "x" ]; then
+ echo "}," >> $TOX_BOOTSTRAP_CONFIG
+ else
+ echo "}" >> $TOX_BOOTSTRAP_CONFIG
+ fi
+ done
+ echo ')' >> $TOX_BOOTSTRAP_CONFIG
+ fi
+}
+
+function mesh_tox_avahi {
+ if [ ! -d $rootdir/etc/avahi ]; then
+ echo $'tox_avahi: avahi is not installed'
+ exit 87359
+ fi
+
+ if [ ! $TOXID_REPO ]; then
+ echo $'No ToxID repo was specified'
+ exit 78252
+ fi
+
+ if [ ! -d ${rootdir}${INSTALL_DIR} ]; then
+ mkdir -p ${rootdir}${INSTALL_DIR}
+ fi
+
+ git clone ${TOXID_REPO} ${rootdir}${INSTALL_DIR}/toxid
+ if [ ! -d ${rootdir}${INSTALL_DIR}/toxid ]; then
+ echo $'Unable to clone toxid repo'
+ exit 768352
+ fi
+
+ if [ ${rootdir} ]; then
+ chroot ${rootdir} /bin/bash -x < $MESH_SYNC_COMMAND
+ echo '/usr/local/bin/toxavahi 2> /dev/null' >> $MESH_SYNC_COMMAND
+ echo '/usr/local/bin/meshavahi 2> /dev/null' >> $MESH_SYNC_COMMAND
+ chmod +x $MESH_SYNC_COMMAND
+
+ if ! grep -q "mesh-sync" ${rootdir}/etc/crontab; then
+ echo "*/1 * * * * root /usr/bin/mesh-sync 2> /dev/null" >> ${rootdir}/etc/crontab
+ echo "*/1 * * * * root ( sleep 20 ; /usr/bin/mesh-sync 2> /dev/null )" >> ${rootdir}/etc/cro echo "*/1 * * * * root ( sleep 40 ; /usr/bin/mesh-sync 2> /dev/null )" >> ${rootdir}/etc/crontab
+ fi
+}
+
+function mesh_tox_client {
+
+ TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
+
+ # obtain commits from the main file
+ TOXIC_COMMIT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#TOXIC_COMMIT_MAIN} -gt 10 ]; then
+ TOXIC_COMMIT=$TOXIC_COMMIT_MAIN
+ fi
+
+ TOXIC_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ if [ ${#TOXIC_REPO_MAIN} -gt 5 ]; then
+ TOXIC_REPO=$TOXIC_REPO_MAIN
+ fi
+
+ if [ ${rootdir} ]; then
+ chroot ${rootdir} apt-get -yq install libncursesw5-dev libconfig-dev libqrencode-dev
+ chroot ${rootdir} apt-get -yq install libcurl4-openssl-dev libvpx-dev libopenal-dev
+ else
+ apt-get -yq install libncursesw5-dev libconfig-dev libqrencode-dev
+ apt-get -yq install libcurl4-openssl-dev libvpx-dev libopenal-dev
+ fi
+
+ TEMP_SCRIPT_NAME=fbtmp728353.sh
+ TEMP_SCRIPT=/tmp/$TEMP_SCRIPT_NAME
+ echo '#!/bin/bash' > $TEMP_SCRIPT
+ echo "mkdir -p $INSTALL_DIR" >> $TEMP_SCRIPT
+ echo "git clone $TOXIC_REPO $INSTALL_DIR/toxic" >> $TEMP_SCRIPT
+ echo "cd $INSTALL_DIR/toxic" >> $TEMP_SCRIPT
+ echo "git checkout $TOXIC_COMMIT -b $TOXIC_COMMIT" >> $TEMP_SCRIPT
+ echo 'make' >> $TEMP_SCRIPT
+ echo 'if [ ! "$?" = "0" ]; then' >> $TEMP_SCRIPT
+ echo ' exit 1' >> $TEMP_SCRIPT
+ echo 'fi' >> $TEMP_SCRIPT
+ echo 'make install' >> $TEMP_SCRIPT
+ echo 'exit 0' >> $TEMP_SCRIPT
+ chmod +x $TEMP_SCRIPT
+ cp $TEMP_SCRIPT $rootdir/root/
+
+ TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
+
+ SECONDS=0
+ if [ ${rootdir} ]; then
+ chroot ${rootdir} /root/$TEMP_SCRIPT_NAME
+ else
+ /root/$TEMP_SCRIPT_NAME
+ fi
+ if [ ! "$?" = "0" ]; then
+ duration=$SECONDS
+ echo $"Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
+ echo $'Unable to make tox client'
+ rm $TEMP_SCRIPT
+ exit 74872
+ fi
+ rm $TEMP_SCRIPT
+ if [ ! -f $rootdir$TOXIC_FILE ]; then
+ echo $"Tox client was not installed to $TOXIC_FILE"
+ exit 63278
+ fi
+ duration=$SECONDS
+ echo $"Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
+}
+
+function enable_tox_repo {
+ echo 'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/Debian_8.0/ /' > $rootdir/etc/apt/sources.list.d/tox.list
+
+
+ cat >> $rootdir/root/gettoxkey.sh < /root/tox.key
+apt-key add /root/tox.key
+rm /root/tox.key
+EOF
+ chroot "$rootdir" chmod +x /root/gettoxkey.sh
+ chroot "$rootdir" /root/gettoxkey.sh
+ chroot "$rootdir" apt-get update
+ echo "Tox Repository Installed."
+}
+
+function install_tox {
+ configure_firewall_for_tox
+
+ if [ $INSTALLING_MESH ]; then
+ mesh_tox_node
+ mesh_tox_avahi
+ mesh_tox_client
+ else
+ avoid_tor_restart=
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ if [[ $ONION_ONLY != 'no' ]]; then
+ avoid_tor_restart=1
+ fi
+ fi
+
+ if [ $avoid_tor_restart ]; then
+ ${PROJECT_NAME}-logging on --onion
+ else
+ ${PROJECT_NAME}-logging on
+ fi
+
+ install_tox_node
+
+ if [ $avoid_tor_restart ]; then
+ ${PROJECT_NAME}-logging off --onion
+ else
+ ${PROJECT_NAME}-logging off
+ fi
+
+ tox_avahi
+ install_tox_client
+ fi
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-vim b/src/freedombone-app-vim
new file mode 100755
index 00000000..9941b62d
--- /dev/null
+++ b/src/freedombone-app-vim
@@ -0,0 +1,243 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Vim editor
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full-vim'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+VIM_TEMP_DIR='.vimtemp'
+VIM_MUTT_EDITOR='vim \"+set nonumber\" \"+set insertmode\" \"+set spell\" +/^$/ +9'
+
+vim_variables=(MY_USERNAME
+ VIM_MUTT_EDITOR)
+
+function reconfigure_vim {
+ echo -n ''
+}
+
+function upgrade_vim {
+ echo -n ''
+}
+
+function backup_local_vim {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ echo $"Backing up Vim config for $USERNAME"
+
+ # create a temporary directory
+ if [ ! -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
+ mkdir /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+
+ # copy config files into the directory
+ if [ -f /home/$USERNAME/.vimrc ]; then
+ cp /home/$USERNAME/.vimrc /home/$USERNAME/$VIM_TEMP_DIR
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+ if [ -f /home/$USERNAME/.viminfo ]; then
+ cp /home/$USERNAME/.viminfo /home/$USERNAME/$VIM_TEMP_DIR
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+
+ # backup the directory
+ function_check backup_directory_to_usb
+ backup_directory_to_usb /home/$USERNAME/$VIM_TEMP_DIR vim/$USERNAME
+
+ # remove temporary directory
+ if [ -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
+ rm -rf /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+ fi
+ done
+}
+
+function restore_local_vim {
+ temp_restore_dir=/root/tempvim
+ if [ -d $USB_MOUNT/backup/vim ]; then
+ for d in $USB_MOUNT/backup/vim/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ ! -d /home/$USERNAME ]; then
+ ${PROJECT_NAME}-adduser $USERNAME
+ fi
+ echo $"Restoring Vim config for $USERNAME"
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir vim/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 664
+ fi
+ cp /home/$USERNAME/$VIM_TEMP_DIR/* /home/$USERNAME
+ if [ -f /home/$USERNAME/.viminfo ]; then
+ chown $USERNAME:$USERNAME /home/$USERNAME/.viminfo
+ fi
+ if [ -f /home/$USERNAME/.vimrc ]; then
+ chown $USERNAME:$USERNAME /home/$USERNAME/.vimrc
+ fi
+ rm -rf /home/$USERNAME/$VIM_TEMP_DIR
+ rm -rf $temp_restore_dir
+ fi
+ done
+ fi
+}
+
+function backup_remote_vim {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ echo $"Backing up Vim config for $USERNAME"
+
+ # create a temporary directory
+ if [ ! -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
+ mkdir /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+
+ # copy config files into the directory
+ if [ -f /home/$USERNAME/.vimrc ]; then
+ cp /home/$USERNAME/.vimrc /home/$USERNAME/$VIM_TEMP_DIR
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+ if [ -f /home/$USERNAME/.viminfo ]; then
+ cp /home/$USERNAME/.viminfo /home/$USERNAME/$VIM_TEMP_DIR
+ chown -R $USERNAME:$USERNAME /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+
+ # backup the directory
+ function_check backup_directory_to_friend
+ backup_directory_to_friend /home/$USERNAME/$VIM_TEMP_DIR vim/$USERNAME
+
+ # remove temporary directory
+ if [ -d /home/$USERNAME/$VIM_TEMP_DIR ]; then
+ rm -rf /home/$USERNAME/$VIM_TEMP_DIR
+ fi
+ fi
+ done
+}
+
+function restore_remote_vim {
+ temp_restore_dir=/root/tempvim
+ if [ -d $USB_MOUNT/backup/vim ]; then
+ for d in $USB_MOUNT/backup/vim/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ ! -d /home/$USERNAME ]; then
+ ${PROJECT_NAME}-adduser $USERNAME
+ fi
+ echo $"Restoring Vim config for $USERNAME"
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir vim/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/$VIM_TEMP_DIR /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 664
+ fi
+ cp /home/$USERNAME/$VIM_TEMP_DIR/* /home/$USERNAME
+ if [ -f /home/$USERNAME/.viminfo ]; then
+ chown $USERNAME:$USERNAME /home/$USERNAME/.viminfo
+ fi
+ if [ -f /home/$USERNAME/.vimrc ]; then
+ chown $USERNAME:$USERNAME /home/$USERNAME/.vimrc
+ fi
+ rm -rf /home/$USERNAME/$VIM_TEMP_DIR
+ rm -rf $temp_restore_dir
+ fi
+ done
+ fi
+}
+
+function remove_vim {
+ # Don't remove vim because vim-common is needed for showing ssh host keys
+ # This may change with Debian Stretch
+ # apt-get -yq remove --purge vim
+ update-alternatives --set editor /usr/bin/nano
+ sed -i '/install_vim/d' $COMPLETION_FILE
+
+ # remove Vim as the mutt email editor
+ if [ -f /etc/Muttrc ]; then
+ if grep -q "set editor=" /etc/Muttrc; then
+ sed -i '/set editor=/d' /etc/Muttrc
+ fi
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -f /home/$USERNAME/.muttrc ]; then
+ if grep -q "set editor=" /home/$USERNAME/.muttrc; then
+ sed -i '/set editor=/d' /home/$USERNAME/.muttrc
+ fi
+ fi
+ fi
+ done
+ fi
+}
+
+function install_vim {
+ apt-get -yq install vim
+ update-alternatives --set editor /usr/bin/vim
+
+ # add a mutt entry to use Vim to compose emails
+ if [ -f /etc/Muttrc ]; then
+ if ! grep -q "set editor=" /etc/Muttrc; then
+ echo "set editor=\"$VIM_MUTT_EDITOR\"" >> /etc/Muttrc
+ else
+ sed -i "s|set editor=.*|set editor=\"$VIM_MUTT_EDITOR\"|g" /etc/Muttrc
+ fi
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -f /home/$USERNAME/.muttrc ]; then
+ if ! grep -q "set editor=" /home/$USERNAME/.muttrc; then
+ echo "set editor=\"$VIM_MUTT_EDITOR\"" >> /home/$USERNAME/.muttrc
+ else
+ sed -i "s|set editor=.*|set editor=\"$VIM_MUTT_EDITOR\"|g" /home/$USERNAME/.muttrc
+ fi
+ fi
+ fi
+ done
+ fi
+
+ APP_INSTALLED=1
+}
+
+function install_interactive_vim {
+ install_vim
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-vpn b/src/freedombone-app-vpn
new file mode 100755
index 00000000..02bff253
--- /dev/null
+++ b/src/freedombone-app-vpn
@@ -0,0 +1,89 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# VPN functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+vpn_variables=()
+
+function install_interactive_vpn {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_vpn {
+ echo -n ''
+}
+
+function upgrade_vpn {
+ echo -n ''
+}
+
+function backup_local_vpn {
+ echo -n ''
+}
+
+function restore_local_vpn {
+ echo -n ''
+}
+
+function backup_remote_vpn {
+ echo -n ''
+}
+
+function restore_remote_vpn {
+ echo -n ''
+}
+
+function remove_vpn {
+ apt-get -yq remove --purge fastd
+ remove_completion_param install_vpn
+}
+
+function install_vpn {
+ if ! grep -q "repo.universe-factory.net" /etc/apt/sources.list; then
+ echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list
+ gpg --keyserver pgpkeys.mit.edu --recv-key 16EF3F64CB201D9C
+ if [ ! "$?" = "0" ]; then
+ exit 76272
+ fi
+ gpg -a --export 16EF3F64CB201D9C | sudo apt-key add -
+ apt-get update
+ apt-get -yq install fastd
+ if [ ! "$?" = "0" ]; then
+ exit 52026
+ fi
+ fi
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp
new file mode 100755
index 00000000..da1df539
--- /dev/null
+++ b/src/freedombone-app-xmpp
@@ -0,0 +1,604 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# XMPP functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS='full full-vim chat'
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=1
+
+# Directory where XMPP settings are stored
+XMPP_DIRECTORY="/var/lib/prosody"
+XMPP_PASSWORD=
+
+XMPP_CIPHERS='"EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"'
+XMPP_ECC_CURVE='"secp384r1"'
+
+xmpp_variables=(ONION_ONLY
+ INSTALLED_WITHIN_DOCKER
+ XMPP_CIPHERS
+ XMPP_ECC_CURVE
+ XMPP_ECC_CURVE
+ MY_USERNAME
+ DEFAULT_DOMAIN_NAME
+ XMPP_DOMAIN_CODE)
+
+function remove_user_xmpp {
+ remove_username="$1"
+ ${PROJECT_NAME}-pass -u $remove_username --rmapp xmpp
+ ${PROJECT_NAME}-rmxmpp -e "${remove_username}@$HOSTNAME"
+}
+
+function add_user_xmpp {
+ new_username="$1"
+ new_user_password="$2"
+
+ ${PROJECT_NAME}-pass -u $new_username -a xmpp -p "$new_user_password"
+
+ ${PROJECT_NAME}-addxmpp -e "$new_username@$HOSTNAME" -p "$new_user_password"
+ if [ ! "$?" = "0" ]; then
+ echo '1'
+ return
+ fi
+
+ XMPP_CLIENT_DIR=/home/$new_username/.local/share/profanity
+ XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
+ if [ ! -d $XMPP_CLIENT_DIR ]; then
+ mkdir -p $XMPP_CLIENT_DIR
+ fi
+ if [ ! -d /home/$new_username/.config/profanity ]; then
+ mkdir -p /home/$new_username/.config/profanity
+ fi
+ echo "[${new_username}@${HOSTNAME}]" > $XMPP_CLIENT_ACCOUNTS
+ echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
+ echo "jid=${new_username}@${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
+ echo "muc.service=conference.${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo "muc.nick=${new_username}" >> $XMPP_CLIENT_ACCOUNTS
+ echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
+
+ echo '[connection]' > /home/$new_username/.config/profanity/profrc
+ echo "account=${new_username}@${HOSTNAME}" >> /home/$new_username/.config/profanity/profrc
+
+ chown -R $new_username:$new_username /home/$new_username/.local
+ chown -R $new_username:$new_username /home/$new_username/.config
+ echo '0'
+}
+
+function run_client_xmpp {
+ torify profanity
+}
+
+function install_interactive_xmpp {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function change_password_xmpp {
+ curr_username="$1"
+ new_user_password="$2"
+
+ read_config_param DEFAULT_DOMAIN_NAME
+
+ ${PROJECT_NAME}-pass -u $curr_username -a xmpp -p "$new_user_password"
+
+ # TODO: this is currently interactive. Really there needs to be a
+ # non-interactive password change option for prosodyctl
+ clear
+ echo ''
+ echo $'Currently Prosody requires password changes to be done interactively'
+ prosodyctl passwd ${curr_username}@${DEFAULT_DOMAIN_NAME}
+}
+
+function reconfigure_xmpp {
+ echo -n ''
+}
+
+function update_prosody_modules {
+ if [ ! -d $INSTALL_DIR/prosody-modules ]; then
+ return
+ fi
+ if [ ! -d /usr/lib/prosody ]; then
+ return
+ fi
+
+ cd $INSTALL_DIR/prosody-modules
+ hg pull
+ hg update
+
+ # support onion addresses
+ if [ -f $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua /usr/lib/prosody/modules/mod_onions.lua
+ fi
+
+ # XEP-0313 message archive management
+ # https://modules.prosody.im/mod_mam.html
+ # Allows you to download your previous messages onto a new client
+ # This only applies if you are not using forward secret crypto
+ # such as OTR or OMEMO (eg. OpenPGP)
+ if [ -d $INSTALL_DIR/prosody-modules/mod_mam ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_mam/*.lua /usr/lib/prosody/modules
+ fi
+
+ # XEP-0352 Client State Indication
+ # Notifies the server if the app is in the background or not
+ if [ -d $INSTALL_DIR/prosody-modules/mod_csi ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_csi/*.lua /usr/lib/prosody/modules
+ fi
+
+ # XEP-0280 Message Carbons
+ # Ensures all messages get delivered to all clients (if you have a mobile and desktop client)
+ if [ -d $INSTALL_DIR/prosody-modules/mod_carbons ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_carbons/*.lua /usr/lib/prosody/modules
+ fi
+
+ # XEP-0198 Stream management
+ # Helps mobile apps recover when a device switches networks.
+ if [ -d $INSTALL_DIR/prosody-modules/mod_smacks ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_smacks/*.lua /usr/lib/prosody/modules
+ fi
+ if [ -d $INSTALL_DIR/prosody-modules/mod_smacks_offline ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_smacks_offline/*.lua /usr/lib/prosody/modules
+ fi
+
+ # XEP-0191: blocking
+ if [ -d $INSTALL_DIR/prosody-modules/mod_blocking ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_blocking/*.lua /usr/lib/prosody/modules
+ fi
+
+ # XEP-0016 Privacy lists
+ if [ -d $INSTALL_DIR/prosody-modules/mod_privacy_lists ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_privacy_lists/*.lua /usr/lib/prosody/modules
+ fi
+
+ # If offline then send messages to email
+ if [ -d $INSTALL_DIR/prosody-modules/mod_offline_email ]; then
+ cp $INSTALL_DIR/prosody-modules/mod_offline_email/*.lua /usr/lib/prosody/modules
+ fi
+}
+
+function upgrade_xmpp {
+ function_check update_prosody_modules
+ update_prosody_modules
+}
+
+function backup_local_xmpp {
+ source_directory=/var/lib/prosody
+ if [ -d $source_directory ]; then
+ dest_directory=xmpp
+ function_check backup_directory_to_usb
+ backup_directory_to_usb $source_directory $dest_directory
+ fi
+}
+
+function restore_local_xmpp {
+ if [ -d /var/lib/prosody ]; then
+ echo $"Restoring xmpp settings"
+ temp_restore_dir=/root/tempxmpp
+ function_check restore_directory_from_usb
+ restore_directory_from_usb $temp_restore_dir xmpp
+ cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
+ if [ ! "$?" = "0" ]; then
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 725
+ fi
+ rm -rf $temp_restore_dir
+ service prosody restart
+ chown -R prosody:prosody /var/lib/prosody/*
+ echo $"Restore of xmpp settings complete"
+ fi
+}
+
+function backup_remote_xmpp {
+ if [ -d /var/lib/prosody ]; then
+ echo $"Backing up the xmpp settings"
+ backup_directory_to_friend /var/lib/prosody xmpp
+ echo $"Backup of xmpp settings complete"
+ fi
+}
+
+function restore_remote_xmpp {
+ if [ -d /var/lib/prosody ]; then
+ echo $"Restoring xmpp settings"
+ temp_restore_dir=/root/tempxmpp
+ function_check restore_directory_from_friend
+ restore_directory_from_friend $temp_restore_dir xmpp
+ cp -r $temp_restore_dir/var/lib/prosody/* /var/lib/prosody
+ if [ ! "$?" = "0" ]; then
+ exit 725
+ fi
+ rm -rf $temp_restore_dir
+ service prosody restart
+ chown -R prosody:prosody /var/lib/prosody/*
+ echo $"Restore of xmpp settings complete"
+ fi
+}
+
+function configure_firewall_for_xmpp {
+ if [ ! -d /etc/prosody ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ firewall_add XMPP 5222 tcp
+ firewall_add XMPP 5223 tcp
+ firewall_add XMPP 5269 tcp
+ firewall_add XMPP 5280 tcp
+ firewall_add XMPP 5281 tcp
+ mark_completed $FUNCNAME
+}
+
+function remove_xmpp_client {
+ apt-get -yq remove --purge profanity
+ remove_completion_param install_xmpp_client
+ remove_certs xmpp
+}
+
+function remove_xmpp {
+ remove_xmpp_client
+ firewall_remove 5222 tcp
+ firewall_remove 5223 tcp
+ firewall_remove 5269 tcp
+ firewall_remove 5280 tcp
+ firewall_remove 5281 tcp
+
+ function_check remove_onion_service
+ remove_onion_service xmpp 5222 5223 5269
+
+ apt-get -yq remove --purge prosody prosody-modules
+ if [ -d $INSTALL_DIR/prosody-modules ]; then
+ rm -rf $INSTALL_DIR/prosody-modules
+ fi
+ if [ -d /etc/prosody ]; then
+ rm -rf /etc/prosody
+ fi
+ if [ -d /var/lib/prosody ]; then
+ rm -rf /var/lib/prosody
+ fi
+
+ remove_completion_param install_xmpp
+ sed -i '/xmpp/d' $COMPLETION_FILE
+}
+
+function xmpp_email_headers {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [ -f /home/$USERNAME/.muttrc ]; then
+ if ! grep -q "Jabber-ID" /home/$USERNAME/.muttrc; then
+ echo "my_hdr Jabber-ID: ${USERNAME}@${HOSTNAME}" >> /home/$USERNAME/.muttrc
+ fi
+ fi
+ fi
+ done
+}
+
+function install_xmpp_main {
+ update_prosody_modules
+
+ if [[ $(app_is_installed xmpp_main) == "1" ]]; then
+ return
+ fi
+
+ if [[ $ONION_ONLY == 'no' ]]; then
+ # obtain a cert for the default domain
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ echo $'Obtaining certificate for the main domain'
+ create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
+ fi
+ fi
+
+ apt-get -yq install lua-sec lua-bitop
+ apt-get -yq install prosody prosody-modules mercurial
+
+ if [ ! -d /etc/prosody ]; then
+ echo $"ERROR: prosody does not appear to have installed. $CHECK_MESSAGE"
+ exit 52367
+ fi
+
+ # obtain the prosody modules
+ cd $INSTALL_DIR
+ hg clone https://hg.prosody.im/prosody-modules/ prosody-modules
+ if [ ! -d $INSTALL_DIR/prosody-modules/mod_onions ]; then
+ echo $'mod_onions prosody module could not be found'
+ exit 73254
+ fi
+
+ # install the onions module
+ update_prosody_modules
+ if [ ! -f /usr/lib/prosody/modules/mod_onions.lua ]; then
+ echo $'mod_onions.lua could not be copied to the prosody modules directory'
+ exit 63952
+ fi
+
+ # create a certificate
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ if [[ "$(cert_exists xmpp)" == "0" ]]; then
+ ${PROJECT_NAME}-addcert -h xmpp --dhkey ${DH_KEYLENGTH}
+ check_certificates xmpp
+ fi
+ fi
+
+ groupadd default
+ usermod -g default prosody
+
+ chown root:default /etc/ssl/private/xmpp.*
+ chown root:default /etc/ssl/certs/xmpp.*
+ chown root:default /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.*
+ chown root:default /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.*
+
+ cp -a /etc/prosody/conf.avail/example.com.cfg.lua /etc/prosody/conf.avail/xmpp.cfg.lua
+ if [ ! -d /etc/prosody/certs ]; then
+ mkdir /etc/prosody/certs
+ fi
+
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ sed -i "s|/etc/prosody/certs/example.com.key|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.key|g" /etc/prosody/conf.avail/xmpp.cfg.lua
+ sed -i "s|/etc/prosody/certs/example.com.crt|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/prosody/conf.avail/xmpp.cfg.lua
+ else
+ sed -i 's|/etc/prosody/certs/example.com.key|/etc/prosody/certs/xmpp.key|g' /etc/prosody/conf.avail/xmpp.cfg.lua
+ sed -i 's|/etc/prosody/certs/example.com.crt|/etc/prosody/certs/xmpp.crt|g' /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ if ! grep -q "xmpp.dhparam" /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME})" == "1" ]]; then
+ sed -i "/certificate =/a\ dhparam = \"/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" /etc/prosody/conf.avail/xmpp.cfg.lua
+ else
+ sed -i '/certificate =/a\ dhparam = "/etc/prosody/certs/xmpp.dhparam";' /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ fi
+ if ! grep -q 'options = {"no_sslv2", "no_sslv3" }' /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ sed -i '/certificate =/a\ options = {"no_sslv2", "no_sslv3" };' /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ if ! grep -q 'ciphers =' /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ sed -i "/certificate =/a\ ciphers = $XMPP_CIPHERS;" /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ if ! grep -q 'depth = "1";' /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ sed -i '/certificate =/a\ depth = "1";' /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ if ! grep -q 'curve =' /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ sed -i "/certificate =/a\ curve = $XMPP_ECC_CURVE;" /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+
+ sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/conf.avail/xmpp.cfg.lua
+ sed -i 's/enabled = false -- Remove this line to enable this host//g' /etc/prosody/conf.avail/xmpp.cfg.lua
+
+ if ! grep -q "modules_enabled" /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo 'modules_enabled = {' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "bosh"; -- Enable mod_bosh' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "tls"; -- Enable mod_tls' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "saslauth"; -- Enable mod_saslauth' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "onions"; -- Enable chat via onion service' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "mam"; -- Message archive management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "csi"; -- Client state indication' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "carbons"; -- Message carbons' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "smacks"; -- Stream management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "smacks_offline"; -- Stream management' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "pep"; -- Personal Eventing Protocol (to support OMEMO)' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "privacy"; -- Privacy lists' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "privacy_lists"; -- Privacy lists' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "blocking"; -- Blocking command' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "roster"; -- Roster versioning' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' "offline_email"; -- If offline send to email' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo '}' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo 'c2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo 's2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo 'allow_unencrypted_plain_auth = false' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ ln -sf /etc/prosody/conf.avail/xmpp.cfg.lua /etc/prosody/conf.d/xmpp.cfg.lua
+
+ if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
+ sed -i "s|/etc/prosody/certs/localhost.key|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.key|g" /etc/prosody/prosody.cfg.lua
+ sed -i "s|/etc/prosody/certs/localhost.crt|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/prosody/prosody.cfg.lua
+ else
+ sed -i 's|/etc/prosody/certs/localhost.key|/etc/prosody/certs/xmpp.key|g' /etc/prosody/prosody.cfg.lua
+ sed -i 's|/etc/prosody/certs/localhost.crt|/etc/prosody/certs/xmpp.crt|g' /etc/prosody/prosody.cfg.lua
+ fi
+ if ! grep -q "xmpp.dhparam" /etc/prosody/prosody.cfg.lua; then
+ if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam ]; then
+ sed -i "/certificate =/a\ dhparam = \"/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" /etc/prosody/prosody.cfg.lua
+ else
+ sed -i '/certificate =/a\ dhparam = "/etc/prosody/certs/xmpp.dhparam";' /etc/prosody/prosody.cfg.lua
+ fi
+ fi
+ if ! grep -q 'options = {"no_sslv2", "no_sslv3" }' /etc/prosody/prosody.cfg.lua; then
+ sed -i '/certificate =/a\ options = {"no_sslv2", "no_sslv3" };' /etc/prosody/prosody.cfg.lua
+ fi
+ if ! grep -q 'ciphers =' /etc/prosody/prosody.cfg.lua; then
+ sed -i "/certificate =/a\ ciphers = $XMPP_CIPHERS;" /etc/prosody/prosody.cfg.lua
+ fi
+ if ! grep -q 'depth = "1";' /etc/prosody/prosody.cfg.lua; then
+ sed -i '/certificate =/a\ depth = "1";' /etc/prosody/prosody.cfg.lua
+ fi
+ if ! grep -q 'curve =' /etc/prosody/prosody.cfg.lua; then
+ sed -i "/certificate =/a\ curve = $XMPP_ECC_CURVE;" /etc/prosody/prosody.cfg.lua
+ fi
+ sed -i 's/c2s_require_encryption = false/c2s_require_encryption = true/g' /etc/prosody/prosody.cfg.lua
+ if ! grep -q "s2s_require_encryption" /etc/prosody/prosody.cfg.lua; then
+ sed -i '/c2s_require_encryption/a\s2s_require_encryption = true' /etc/prosody/prosody.cfg.lua
+ fi
+ if ! grep -q "allow_unencrypted_plain_auth" /etc/prosody/prosody.cfg.lua; then
+ echo 'allow_unencrypted_plain_auth = false' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ sed -i 's/--"bosh";/"bosh";/g' /etc/prosody/prosody.cfg.lua
+ sed -i 's/authentication = "internal_plain"/authentication = "internal_hashed"/g' /etc/prosody/prosody.cfg.lua
+ sed -i 's/enabled = false -- Remove this line to enable this host//g' /etc/prosody/prosody.cfg.lua
+ if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
+ # use an existing cert if possible
+ sed -i "s|key = \"/etc/prosody/certs/example.com.key\"|key = \"/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.key\"|g" /etc/prosody/prosody.cfg.lua
+ sed -i "s|certificate = \"/etc/prosody/certs/example.com.crt\"|certificate = \"/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem\"|g" /etc/prosody/prosody.cfg.lua
+ else
+ sed -i 's|key = "/etc/prosody/certs/example.com.key"|key = "/etc/prosody/certs/xmpp.key"|g' /etc/prosody/prosody.cfg.lua
+ sed -i 's|certificate = "/etc/prosody/certs/example.com.crt"|certificate = "/etc/prosody/certs/xmpp.crt"|g' /etc/prosody/prosody.cfg.lua
+ fi
+ sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/prosody.cfg.lua
+
+ if [ ! -d /var/lib/tor ]; then
+ echo $'No Tor installation found. xmpp onion site cannot be configured.'
+ exit 877367
+ fi
+ if ! grep -q "hidden_service_xmpp" /etc/tor/torrc; then
+ echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/' >> /etc/tor/torrc
+ echo "HiddenServicePort 5222 127.0.0.1:5222" >> /etc/tor/torrc
+ echo "HiddenServicePort 5269 127.0.0.1:5269" >> /etc/tor/torrc
+ echo $'Added onion site for xmpp chat'
+ fi
+
+ onion_update
+ wait_for_onion_service 'xmpp'
+
+ if [ ! -f /var/lib/tor/hidden_service_xmpp/hostname ]; then
+ echo $'xmpp onion site hostname not found'
+ exit 65349
+ fi
+ XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
+ if ! grep -q "${XMPP_ONION_HOSTNAME}" /etc/prosody/conf.avail/xmpp.cfg.lua; then
+ echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo "VirtualHost \"${XMPP_ONION_HOSTNAME}\"" >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ echo ' modules_enabled = { "onions" };' >> /etc/prosody/conf.avail/xmpp.cfg.lua
+ fi
+ set_completion_param "xmpp onion domain" "${XMPP_ONION_HOSTNAME}"
+
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ XMPP_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ if [ ${#XMPP_PASSWORD} -lt 8 ]; then
+ XMPP_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ fi
+ prosodyctl register $MY_USERNAME $DEFAULT_DOMAIN_NAME "$XMPP_PASSWORD"
+
+ ${PROJECT_NAME}-pass -u $MY_USERNAME -a xmpp -p "$XMPP_PASSWORD"
+
+ function_check configure_firewall_for_xmpp
+ configure_firewall_for_xmpp
+ xmpp_email_headers
+
+ cp /etc/ssl/certs/xmpp.* /etc/prosody/certs
+ cp /etc/ssl/private/xmpp.* /etc/prosody/certs
+ chown -R prosody:default /etc/prosody
+ update_default_domain
+
+ systemctl restart prosody
+
+ install_completed xmpp_main
+}
+
+function install_xmpp_client {
+ if [[ $(app_is_installed xmpp_client) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install profanity
+
+ XMPP_CLIENT_DIR=/home/$MY_USERNAME/.local/share/profanity
+ XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
+ if [ ! -d $XMPP_CLIENT_DIR ]; then
+ mkdir -p $XMPP_CLIENT_DIR
+ fi
+
+ if [[ $ONION_ONLY == 'no' ]]; then
+ echo "[${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}]" > $XMPP_CLIENT_ACCOUNTS
+ echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
+ echo "jid=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
+ echo "muc.service=conference.${DEFAULT_DOMAIN_NAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
+ if [ ${#XMPP_PASSWORD} -gt 2 ]; then
+ echo "password=$XMPP_PASSWORD" >> $XMPP_CLIENT_ACCOUNTS
+ fi
+ fi
+
+ if [ -f /var/lib/tor/hidden_service_xmpp/hostname ]; then
+ XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
+ echo "[${MY_USERNAME}@${XMPP_ONION_HOSTNAME}]" >> $XMPP_CLIENT_ACCOUNTS
+ if [[ $ONION_ONLY == 'no' ]]; then
+ echo 'enabled=false' >> $XMPP_CLIENT_ACCOUNTS
+ else
+ echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
+ fi
+ echo "jid=${MY_USERNAME}@${XMPP_ONION_HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
+ echo "muc.service=conference.${XMPP_ONION_HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
+ echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
+ echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
+ if [ ${#XMPP_PASSWORD} -gt 2 ]; then
+ echo "password=$XMPP_PASSWORD" >> $XMPP_CLIENT_ACCOUNTS
+ fi
+ fi
+
+ if [ ! -d /home/$MY_USERNAME/.config/profanity ]; then
+ mkdir -p /home/$MY_USERNAME/.config/profanity
+ fi
+ echo '[connection]' > /home/$MY_USERNAME/.config/profanity/profrc
+ echo "account=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}" >> /home/$MY_USERNAME/.config/profanity/profrc
+
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.local
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
+
+ install_completed xmpp_client
+}
+
+function install_xmpp {
+ install_xmpp_main
+ install_xmpp_client
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-app-zeronet b/src/freedombone-app-zeronet
new file mode 100755
index 00000000..4e96e425
--- /dev/null
+++ b/src/freedombone-app-zeronet
@@ -0,0 +1,617 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Zeronet functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+VARIANTS=''
+
+IN_DEFAULT_INSTALL=0
+SHOW_ON_ABOUT=0
+
+MESH_INSTALL_DIR=/var/lib
+
+ZERONET_REPO="https://github.com/HelloZeroNet/ZeroNet.git"
+ZERONET_COMMIT='675bd462556c541d65e2d95f91f899146a373aad'
+ZERONET_BLOG_REPO="https://github.com/HelloZeroNet/ZeroBlog"
+ZERONET_BLOG_COMMIT='bbb0d6c36465fed2e6df71f1aab45fcc9c6ad609'
+ZERONET_MAIL_REPO="https://github.com/HelloZeroNet/ZeroMail"
+ZERONET_MAIL_COMMIT='955af09d643c72b02e4983d71eca5c0c93a6c131'
+ZERONET_FORUM_REPO="https://github.com/HelloZeroNet/ZeroTalk"
+ZERONET_FORUM_COMMIT='e2d2c9cb1cfbfef91b244935efb5c14c2ad95faa'
+ZERONET_URL='http://127.0.0.1:43110'
+ZERONET_PORT=15441
+TRACKER_PORT=6969
+ZERONET_DEFAULT_BLOG_TAGLINE="Blogging on the Mesh"
+ZERONET_DEFAULT_FORUM_TAGLINE="A decentralized discussion group"
+ZERONET_DEFAULT_MAIL_TAGLINE="Mail for the Mesh"
+ZERONET_ID_REPO="https://github.com/HelloZeroNet/ZeroID"
+ZERONET_ID_COMMIT='ccf14fdc96fa9cdb2ddd8a7ab283a8e17a4f234b'
+
+zeronet_variables=(ZERONET_BLOG_COMMIT
+ ZERONET_MAIL_COMMIT
+ ZERONET_FORUM_COMMIT
+ TRACKER_PORT
+ ZERONET_PORT
+ MY_USERNAME
+ ZERONET_DEFAULT_BLOG_TAGLINE
+ ZERONET_DEFAULT_FORUM_TAGLINE
+ ZERONET_DEFAULT_MAIL_TAGLINE)
+
+function install_interactive_zeronet {
+ echo -n ''
+ APP_INSTALLED=1
+}
+
+function reconfigure_zeronet {
+ echo -n ''
+}
+
+function upgrade_zeronet {
+ function_check set_repo_commit
+ set_repo_commit $MESH_INSTALL_DIR/zeronet "zeroNet commit" "$ZERONET_COMMIT" $ZERONET_REPO
+ set_repo_commit $MESH_INSTALL_DIR/zeronet/ZeroBlog "zeroNet blog commit" "$ZERONET_BLOG_COMMIT" $ZERONET_BLOG_REPO
+ set_repo_commit $MESH_INSTALL_DIR/zeronet/ZeroMail "zeroNet mail commit" "$ZERONET_MAIL_COMMIT" $ZERONET_MAIL_REPO
+ set_repo_commit $MESH_INSTALL_DIR/zeronet/ZeroTalk "zeroNet forum commit" "$ZERONET_FORUM_COMMIT" $ZERONET_FORUM_REPO
+}
+
+function backup_local_zeronet {
+ echo -n ''
+}
+
+function restore_local_zeronet {
+ echo -n ''
+}
+
+function backup_remote_zeronet {
+ echo -n ''
+}
+
+function restore_remote_zeronet {
+ echo -n ''
+}
+
+function remove_zeronet_blog {
+ if [ -d $MESH_INSTALL_DIR/zeronet/ZeroBlog ]; then
+ rm -rf $MESH_INSTALL_DIR/zeronet/ZeroBlog
+ fi
+ remove_completion_param install_zeronet_blog
+ sed -i '/zeronet blog/d' $COMPLETION_FILE
+}
+
+function remove_zeronet_mail {
+ if [ -d $MESH_INSTALL_DIR/zeronet/ZeroMail ]; then
+ rm -rf $MESH_INSTALL_DIR/zeronet/ZeroMail
+ fi
+ remove_completion_param install_zeronet_mail
+ sed -i '/zeronet mail/d' $COMPLETION_FILE
+}
+
+function remove_zeronet_forum {
+ if [ -d $MESH_INSTALL_DIR/zeronet/ZeroTalk ]; then
+ rm -rf $MESH_INSTALL_DIR/zeronet/ZeroTalk
+ fi
+ remove_completion_param install_zeronet_forum
+ sed -i '/zeronet forum/d' $COMPLETION_FILE
+}
+
+function remove_zeronet {
+ remove_zeronet_blog
+ remove_zeronet_mail
+ remove_zeronet_forum
+
+ firewall_remove ${ZERONET_PORT}
+ firewall_remove ${TRACKER_PORT}
+ firewall_remove 1900 udp
+
+ ${PROJECT_NAME}-mesh-install -f zeronet --remove yes
+ remove_completion_param install_zeronet
+ remove_completion_param configure_firewall_for_zeronet
+ sed -i '/zeronet/d' $COMPLETION_FILE
+}
+
+function configure_firewall_for_zeronet {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ firewall_add ZeroNet ${ZERONET_PORT}
+ firewall_add Tracker ${TRACKER_PORT}
+ firewall_add Tracker 1900 udp
+ mark_completed $FUNCNAME
+}
+
+function install_zeronet_blog {
+ if [[ $(app_is_installed zeronet_blog) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d /etc/avahi ]; then
+ echo $'Avahi is not installed'
+ exit 736
+ fi
+
+ ZERONET_DEFAULT_BLOG_TITLE="${MY_USERNAME}'s Blog"
+
+ cd $MESH_INSTALL_DIR/zeronet
+ python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/blog.txt
+ if [ ! -f $MESH_INSTALL_DIR/zeronet/blog.txt ]; then
+ echo $'Unable to create blog'
+ exit 479
+ fi
+ blog_address=$(cat blog.txt | grep "Site address" | awk -F ':' '{print $2}')
+ blog_private_key=$(cat blog.txt | grep "Site private key" | awk -F ':' '{print $2}')
+ ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
+ ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
+
+ if [ ${#ZERONET_BLOG_ADDRESS} -lt 20 ]; then
+ echo $"Address: $ZERONET_BLOG_ADDRESS"
+ echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY"
+ echo $'Unable to create zeronet blog address'
+ exit 7358
+ fi
+
+ if [ ${#ZERONET_BLOG_PRIVATE_KEY} -lt 20 ]; then
+ echo $"Address: $ZERONET_BLOG_ADDRESS"
+ echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY"
+ echo $'Unable to create zeronet blog private key'
+ exit 1639
+ fi
+
+ if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" ]; then
+ echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS"
+ exit 7638
+ fi
+
+ function_check git_clone
+ git_clone $ZERONET_BLOG_REPO ZeroBlog
+ if [ ! -d $MESH_INSTALL_DIR/zeronet/ZeroBlog ]; then
+ echo $'ZeroBlog repo could not be cloned'
+ exit 6739
+ fi
+ cd $MESH_INSTALL_DIR/zeronet/ZeroBlog
+ git checkout $ZERONET_BLOG_COMMIT -b $ZERONET_BLOG_COMMIT
+ set_completion_param "zeroNet blog commit" "$ZERONET_BLOG_COMMIT"
+
+ echo $"ZeroNet Blog address: $ZERONET_BLOG_ADDRESS"
+ echo $"ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY"
+ cp -r $MESH_INSTALL_DIR/zeronet/ZeroBlog/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS
+
+ if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data ]; then
+ mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
+ fi
+ cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
+ sed -i "s/MyZeroBlog/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
+ sed -i "s/My ZeroBlog./$ZERONET_DEFAULT_BLOG_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
+ sed -i "s/ZeroBlog Demo/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
+ sed -i "s|.*|$ZERONET_DEFAULT_BLOG_TAGLINE |g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
+ sed -i "s/Blogging platform Demo/Blogging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/content.json
+ python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
+
+ # Add an avahi service
+ function_check create_avahi_service
+ create_avahi_service zeronet-blog "zeronet-blog" udp $ZERONET_PORT "${ZERONET_URL}/${ZERONET_BLOG_ADDRESS}"
+ cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
+
+ chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+
+ if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
+ mkdir -p /home/$MY_USERNAME/.config/zeronet
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
+ fi
+ echo "${ZERONET_URL}/${ZERONET_BLOG_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/myblog
+
+ install_completed zeronet_blog
+}
+
+function install_zeronet_mail {
+ if [[ $(app_is_installed zeronet_mail) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d /etc/avahi ]; then
+ echo 'Avahi is not installed'
+ exit 736
+ fi
+
+ ZERONET_DEFAULT_MAIL_TITLE="${MY_USERNAME}'s Mail"
+
+ cd $MESH_INSTALL_DIR/zeronet
+ python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/mail.txt
+ if [ ! -f $MESH_INSTALL_DIR/zeronet/mail.txt ]; then
+ echo $'Unable to create mail'
+ exit 479
+ fi
+ mail_address=$(cat mail.txt | grep "Site address" | awk -F ':' '{print $2}')
+ mail_private_key=$(cat mail.txt | grep "Site private key" | awk -F ':' '{print $2}')
+ ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
+ ZERONET_MAIL_PRIVATE_KEY=${mail_private_key//[[:blank:]]/}
+
+ if [ ${#ZERONET_MAIL_ADDRESS} -lt 20 ]; then
+ echo $"Address: $ZERONET_MAIL_ADDRESS"
+ echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY"
+ echo $'Unable to create zeronet mail address'
+ exit 7358
+ fi
+
+ if [ ${#ZERONET_MAIL_PRIVATE_KEY} -lt 20 ]; then
+ echo $"Address: $ZERONET_MAIL_ADDRESS"
+ echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY"
+ echo $'Unable to create zeronet mail private key'
+ exit 1639
+ fi
+
+ if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" ]; then
+ echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS"
+ exit 7638
+ fi
+
+ function_check git_clone
+ git_clone $ZERONET_MAIL_REPO ZeroMail
+ if [ ! -d $MESH_INSTALL_DIR/zeronet/ZeroMail ]; then
+ echo $'ZeroMail repo could not be cloned'
+ exit 6739
+ fi
+ cd $MESH_INSTALL_DIR/zeronet/ZeroMail
+ git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
+ set_completion_param "zeroNet mail commit" "$ZERONET_MAIL_COMMIT"
+
+ echo $"ZeroNet Mail address: $ZERONET_MAIL_ADDRESS"
+ echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY"
+ cp -r $MESH_INSTALL_DIR/zeronet/ZeroMail/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS
+
+ if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data ]; then
+ mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
+ fi
+ cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
+ sed -i "s/MyZeroMail/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
+ sed -i "s/My ZeroMail./$ZERONET_DEFAULT_MAIL_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
+ sed -i "s/ZeroMail Demo/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
+ sed -i "s|.*|$ZERONET_DEFAULT_MAIL_TAGLINE |g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
+ sed -i "s/Mailging platform Demo/Mailging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/content.json
+ python zeronet.py siteSign $ZERONET_MAIL_ADDRESS $ZERONET_MAIL_PRIVATE_KEY
+
+ # Add an avahi service
+ function_check create_avahi_service
+ create_avahi_service zeronet-mail "zeronet-mail" udp $ZERONET_PORT "${ZERONET_URL}/${ZERONET_MAIL_ADDRESS}"
+ cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
+
+ chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+
+ if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
+ mkdir -p /home/$MY_USERNAME/.config/zeronet
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
+ fi
+ echo "${ZERONET_URL}/${ZERONET_MAIL_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/mymail
+
+ install_completed zeronet_mail
+}
+
+function install_zeronet_forum {
+ if [[ $(app_is_installed zeronet_forum) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d /etc/avahi ]; then
+ echo $'Avahi is not installed'
+ exit 736
+ fi
+
+ ZERONET_DEFAULT_FORUM_TITLE=$"${MY_USERNAME}'s Forum"
+
+ cd $MESH_INSTALL_DIR/zeronet
+ python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/forum.txt
+ if [ ! -f $MESH_INSTALL_DIR/zeronet/forum.txt ]; then
+ echo $'Unable to create forum'
+ exit 479
+ fi
+ forum_address=$(cat forum.txt | grep "Site address" | awk -F ':' '{print $2}')
+ forum_private_key=$(cat forum.txt | grep "Site private key" | awk -F ':' '{print $2}')
+ ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
+ ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
+
+ if [ ${#ZERONET_FORUM_ADDRESS} -lt 20 ]; then
+ echo $"Address: $ZERONET_FORUM_ADDRESS"
+ echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY"
+ echo $'Unable to create zeronet forum address'
+ exit 76352
+ fi
+
+ if [ ${#ZERONET_FORUM_PRIVATE_KEY} -lt 20 ]; then
+ echo $"Address: $ZERONET_FORUM_ADDRESS"
+ echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY"
+ echo $'Unable to create zeronet forum private key'
+ exit 87356
+ fi
+
+ if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" ]; then
+ echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS"
+ exit 7638
+ fi
+
+ function_check git_clone
+ git_clone $ZERONET_FORUM_REPO ZeroTalk
+ if [ ! -d $MESH_INSTALL_DIR/zeronet/ZeroTalk ]; then
+ echo $'ZeroTalk repo could not be cloned'
+ exit 6739
+ fi
+ git checkout $ZERONET_FORUM_COMMIT -b $ZERONET_FORUM_COMMIT
+ set_completion_param "zeroNet forum commit" "$ZERONET_FORUM_COMMIT"
+
+ echo $"Forum address: $ZERONET_FORUM_ADDRESS"
+ echo $"Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
+ cp -r $MESH_INSTALL_DIR/zeronet/ZeroTalk/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS
+ sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
+ sed -i "s/ZeroTalk/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
+ sed -i "s|Demo for dynamic, decentralized content publishing.|$ZERONET_DEFAULT_FORUM_TAGLINE|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
+ sed -i 's/Messaging Board Demo/Messaging Board/g' $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
+ sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
+ python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY --inner_path data/users/content.json
+
+ # Add an avahi service
+ function_check create_avahi_service
+ create_avahi_service zeronet-forum "zeronet-forum" udp $ZERONET_PORT "${ZERONET_URL}/${ZERONET_FORUM_ADDRESS}"
+ sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
+
+ chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+
+ if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
+ mkdir -p /home/$MY_USERNAME/.config/zeronet
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
+ fi
+ echo "${ZERONET_URL}/${ZERONET_FORUM_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/myforum
+
+ install_completed zeronet_forum
+}
+
+function install_zeronet_main {
+ if [[ $(app_is_installed zeronet_main) == "1" ]]; then
+ return
+ fi
+
+ ${PROJECT_NAME}-mesh-install -f zeronet
+ systemctl daemon-reload
+ systemctl start tracker.service
+ systemctl start zeronet.service
+
+ function_check configure_firewall_for_zeronet
+ configure_firewall_for_zeronet
+ install_completed zeronet_main
+}
+
+function mesh_zeronet {
+ ZERONET_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ if [ ${#ZERONET_REPO_MAIN} -gt 4 ]; then
+ ZERONET_REPO=$ZERONET_REPO_MAIN
+ fi
+ if [ ! $ZERONET_REPO ]; then
+ echo $'No ZeroNet repo was specified'
+ exit 723539
+ fi
+
+ ZERONET_COMMIT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#ZERONET_COMMIT_MAIN} -gt 4 ]; then
+ ZERONET_COMMIT=$ZERONET_COMMIT_MAIN
+ fi
+ if [ ! $ZERONET_COMMIT ]; then
+ echo $'No ZeroNet commit was specified'
+ exit 490439
+ fi
+
+ MESH_INSTALL_DIR_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "MESH_INSTALL_DIR=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#MESH_INSTALL_DIR_MAIN} -gt 4 ]; then
+ MESH_INSTALL_DIR=$MESH_INSTALL_DIR_MAIN
+ fi
+ if [ ! $MESH_INSTALL_DIR ]; then
+ echo $'No mesh install dir was specified'
+ exit 432052
+ fi
+
+ chroot "$rootdir" apt-get -yq install python python-msgpack python-gevent
+ chroot "$rootdir" apt-get -yq install python-pip bittornado
+ chroot "$rootdir" pip install msgpack-python --upgrade
+
+ chroot "$rootdir" useradd -d $MESH_INSTALL_DIR/zeronet/ -s /bin/false zeronet
+ git clone $ZERONET_REPO $rootdir$MESH_INSTALL_DIR/zeronet
+ if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet ]; then
+ echo 'WARNING: Unable to clone zeronet'
+ return
+ fi
+ cd $rootdir$MESH_INSTALL_DIR/zeronet
+ git checkout $ZERONET_COMMIT -b $ZERONET_COMMIT
+ if ! grep -q "ZeroNet commit" $COMPLETION_FILE; then
+ echo "ZeroNet commit:$ZERONET_COMMIT" >> $rootdir$COMPLETION_FILE
+ else
+ sed -i "s/ZeroNet commit.*/ZeroNet commit:$ZERONET_COMMIT/g" $COMPLETION_FILE
+ fi
+ chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+
+ # Hack to ensure that the file access port is opened
+ # This is because zeronet normally relies on an internet site
+ # to do this, but on a purely local mesh the internet isn't available
+ sed -i 's|fileserver_port = 0|fileserver_port = config.fileserver_port\n sys.modules["main"].file_server.port_opened = True|g' $rootdir$MESH_INSTALL_DIR/zeronet/src/Site/Site.py
+
+ ZERONET_DAEMON=$rootdir/etc/systemd/system/zeronet.service
+ echo '[Unit]' > $ZERONET_DAEMON
+ echo 'Description=Zeronet Server' >> $ZERONET_DAEMON
+ echo 'After=syslog.target' >> $ZERONET_DAEMON
+ echo 'After=network.target' >> $ZERONET_DAEMON
+ echo '[Service]' >> $ZERONET_DAEMON
+ echo 'Type=simple' >> $ZERONET_DAEMON
+ echo 'User=zeronet' >> $ZERONET_DAEMON
+ echo 'Group=zeronet' >> $ZERONET_DAEMON
+ echo "WorkingDirectory=$MESH_INSTALL_DIR/zeronet" >> $ZERONET_DAEMON
+ echo "ExecStart=/usr/bin/python zeronet.py --ip_external replace.local --trackers_file $MESH_INSTALL_DIR/zeronet/bootstrap" >> $ZERONET_DAEMON
+ echo '' >> $ZERONET_DAEMON
+ echo 'TimeoutSec=300' >> $ZERONET_DAEMON
+ echo '' >> $ZERONET_DAEMON
+ echo '[Install]' >> $ZERONET_DAEMON
+ echo 'WantedBy=multi-user.target' >> $ZERONET_DAEMON
+
+ TRACKER_DAEMON=$rootdir/etc/systemd/system/tracker.service
+ echo '[Unit]' > $TRACKER_DAEMON
+ echo 'Description=Torrent Tracker' >> $TRACKER_DAEMON
+ echo 'After=syslog.target' >> $TRACKER_DAEMON
+ echo 'After=network.target' >> $TRACKER_DAEMON
+ echo '[Service]' >> $TRACKER_DAEMON
+ echo 'Type=simple' >> $TRACKER_DAEMON
+ echo 'User=tracker' >> $TRACKER_DAEMON
+ echo 'Group=tracker' >> $TRACKER_DAEMON
+ echo "WorkingDirectory=$MESH_INSTALL_DIR/tracker" >> $TRACKER_DAEMON
+ echo "ExecStart=/usr/bin/bttrack --port $TRACKER_PORT --dfile $MESH_INSTALL_DIR/tracker/dstate --logfile $MESH_INSTALL_DIR/tracker/tracker.log --nat_check 0 --scrape_allowed full --ipv6_enabled 0" >> $TRACKER_DAEMON
+ echo '' >> $TRACKER_DAEMON
+ echo 'TimeoutSec=300' >> $TRACKER_DAEMON
+ echo '' >> $TRACKER_DAEMON
+ echo '[Install]' >> $TRACKER_DAEMON
+ echo 'WantedBy=multi-user.target' >> $TRACKER_DAEMON
+
+ chroot "$rootdir" useradd -d $MESH_INSTALL_DIR/tracker/ -s /bin/false tracker
+ if [ ! -d $rootdir$MESH_INSTALL_DIR/tracker ]; then
+ mkdir $rootdir$MESH_INSTALL_DIR/tracker
+ fi
+ chroot "$rootdir" chown -R tracker:tracker $MESH_INSTALL_DIR/tracker
+
+ # publish regularly
+ MESH_SYNC_COMMAND=$rootdir/usr/bin/mesh-sync
+ echo '#!/bin/bash' > $MESH_SYNC_COMMAND
+ echo '/usr/local/bin/toxavahi 2> /dev/null' >> $MESH_SYNC_COMMAND
+ echo '/usr/local/bin/meshavahi 2> /dev/null' >> $MESH_SYNC_COMMAND
+ chmod +x $MESH_SYNC_COMMAND
+
+ if ! grep -q "mesh-sync" ${rootdir}/etc/crontab; then
+ echo "*/1 * * * * root /usr/bin/mesh-sync 2> /dev/null" >> ${rootdir}/etc/crontab
+ echo "*/1 * * * * root ( sleep 20 ; /usr/bin/mesh-sync 2> /dev/null )" >> ${rootdir}/etc/crontab
+ echo "*/1 * * * * root ( sleep 40 ; /usr/bin/mesh-sync 2> /dev/null )" >> ${rootdir}/etc/crontab
+ fi
+
+ chroot "$rootdir" systemctl enable tracker.service
+ chroot "$rootdir" systemctl enable zeronet.service
+}
+
+function mesh_zeronet_blog {
+ ZERONET_BLOG_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ ZERONET_BLOG_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ MESH_INSTALL_DIR_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "MESH_INSTALL_DIR=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#MESH_INSTALL_DIR_MAIN} -gt 4 ]; then
+ MESH_INSTALL_DIR=$MESH_INSTALL_DIR_MAIN
+ fi
+ if [ ! $MESH_INSTALL_DIR ]; then
+ echo $'No mesh install dir was specified'
+ exit 432052
+ fi
+
+ git clone $ZERONET_BLOG_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog
+ if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog ]; then
+ echo $'ZeroBlog repo could not be cloned'
+ exit 6739
+ fi
+ cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog
+ git checkout $ZERONET_BLOG_COMMIT -b $ZERONET_BLOG_COMMIT
+ chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+}
+
+function mesh_zeronet_mail {
+ ZERONET_MAIL_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ ZERONET_MAIL_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ MESH_INSTALL_DIR_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "MESH_INSTALL_DIR=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#MESH_INSTALL_DIR_MAIN} -gt 4 ]; then
+ MESH_INSTALL_DIR=$MESH_INSTALL_DIR_MAIN
+ fi
+ if [ ! $MESH_INSTALL_DIR ]; then
+ echo $'No mesh install dir was specified'
+ exit 432052
+ fi
+
+ git clone $ZERONET_MAIL_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail
+ if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail ]; then
+ echo $'ZeroMail repo could not be cloned'
+ exit 78493
+ fi
+ cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail
+ git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
+ chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+}
+
+function mesh_zeronet_forum {
+ ZERONET_FORUM_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ ZERONET_FORUM_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ MESH_INSTALL_DIR_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "MESH_INSTALL_DIR=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#MESH_INSTALL_DIR_MAIN} -gt 4 ]; then
+ MESH_INSTALL_DIR=$MESH_INSTALL_DIR_MAIN
+ fi
+ if [ ! $MESH_INSTALL_DIR ]; then
+ echo $'No mesh install dir was specified'
+ exit 432052
+ fi
+
+ git clone $ZERONET_FORUM_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk
+ if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk ]; then
+ echo $'ZeroTalk repo could not be cloned'
+ exit 78252
+ fi
+ cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk
+ git checkout $ZERONET_FORUM_COMMIT -b $ZERONET_FORUM_COMMIT
+ chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+}
+
+function mesh_zeronet_id {
+ ZERONET_ID_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
+ ZERONET_ID_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
+ MESH_INSTALL_DIR_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "MESH_INSTALL_DIR=" | head -n 1 | awk -F "'" '{print $2}')
+ if [ ${#MESH_INSTALL_DIR_MAIN} -gt 4 ]; then
+ MESH_INSTALL_DIR=$MESH_INSTALL_DIR_MAIN
+ fi
+ if [ ! $MESH_INSTALL_DIR ]; then
+ echo $'No mesh install dir was specified'
+ exit 432052
+ fi
+
+ git clone $ZERONET_ID_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID
+ if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID ]; then
+ echo $'ZeroID repo could not be cloned'
+ exit 37936
+ fi
+ cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID
+ git checkout $ZERONET_ID_COMMIT -b $ZERONET_ID_COMMIT
+ chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
+}
+
+function install_zeronet {
+ if [ $INSTALLING_MESH ]; then
+ mesh_zeronet
+ mesh_zeronet_blog
+ mesh_zeronet_mail
+ mesh_zeronet_forum
+ return
+ fi
+ install_zeronet_main
+ install_zeronet_blog
+ install_zeronet_mail
+ install_zeronet_forum
+ APP_INSTALLED=1
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-archive-mail b/src/freedombone-archive-mail
index b9c9c67e..c746244b 100755
--- a/src/freedombone-archive-mail
+++ b/src/freedombone-archive-mail
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -33,9 +33,11 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-archive-mail
export TEXTDOMAINDIR="/usr/share/locale"
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation
+
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
# for every user who has a mail directory
if [ -d /home/$USERNAME/Maildir ]; then
MUTTRC=/home/$USERNAME/.muttrc
diff --git a/src/freedombone-backup-local b/src/freedombone-backup-local
index d48d381f..fee4617c 100755
--- a/src/freedombone-backup-local
+++ b/src/freedombone-backup-local
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,31 +30,31 @@
PROJECT_NAME='freedombone'
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
BACKUP_EXTRA_DIRECTORIES=/root/backup-extra-dirs.csv
-ENABLE_VERIFICATION="no"
+ENABLE_BACKUP_VERIFICATION="no"
export TEXTDOMAIN=${PROJECT_NAME}-backup-local
export TEXTDOMAINDIR="/usr/share/locale"
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+# include utils which allow function_check and drive mount
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
USB_DRIVE=/dev/sdb1
USB_MOUNT=/mnt/usb
-# get default USB from config file
-CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
-if [ -f $CONFIG_FILE ]; then
- if grep -q "USB_DRIVE=" $CONFIG_FILE; then
- USB_DRIVE=$(cat $CONFIG_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
- fi
-fi
-
-# get the version of Go being used
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- GO_VERSION=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
- GVM_HOME=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'GVM_HOME=' | head -n 1 | awk -F '=' '{print $2}')
-else
- GO_VERSION=$(cat /usr/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
- GVM_HOME=$(cat /usr/bin/${PROJECT_NAME} | grep 'GVM_HOME=' | head -n 1 | awk -F '=' '{print $2}')
-fi
+read_config_param USB_DRIVE
ADMIN_USERNAME=
ADMIN_NAME=
@@ -63,201 +63,7 @@ ADMIN_NAME=
# Sites are suspended so that verification should work
SUSPENDED_SITE=
-DATABASE_PASSWORD=''
-if [ -f /root/dbpass ]; then
- DATABASE_PASSWORD=$(cat /root/dbpass)
-fi
-
-function set_obnam_client_name {
- # obnam can backup multiple machines with different domain names to
- # a repository. To be able to restore directories from different
- # machines we need to enforce a single client name for all backups
- echo '[config]' > /etc/obnam.conf
- echo "client-name = ${PROJECT_NAME}" >> /etc/obnam.conf
-}
-
-function suspend_site {
- # suspends a given website
- if [[ $ENABLE_VERIFICATION != "yes" ]]; then
- return
- fi
- SUSPENDED_SITE="$1"
- nginx_dissite $SUSPENDED_SITE
- service nginx reload
-}
-
-function restart_site {
- # restarts a given website
- if [ ! $SUSPENDED_SITE ]; then
- return
- fi
- nginx_ensite $SUSPENDED_SITE
- service nginx reload
- SUSPENDED_SITE=
-}
-
-function update_domains {
- RSS_READER_DOMAIN_NAME='ttrss'
- if grep -q "RSS reader domain" $COMPLETION_FILE; then
- RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
- fi
- GIT_DOMAIN_NAME='gogs'
- if grep -q "Gogs domain" $COMPLETION_FILE; then
- GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
- fi
- MICROBLOG_DOMAIN_NAME='microblog'
- if grep -q "GNU Social domain" $COMPLETION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
- fi
- HUBZILLA_DOMAIN_NAME='hubzilla'
- if grep -q "Hubzilla domain" $COMPLETION_FILE; then
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
- fi
- FULLBLOG_DOMAIN_NAME='blog'
- if grep -q "Blog domain" $COMPLETION_FILE; then
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
- fi
- MEDIAGOBLIN_DOMAIN_NAME='mediagoblin'
- if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
- MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
- fi
-}
-
-function mount_drive {
- if [ $1 ]; then
- USB_DRIVE=/dev/${1}1
- fi
-
- # get the admin user
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
- if [ $2 ]; then
- ADMIN_USERNAME=$2
- fi
- ADMIN_NAME=$(getent passwd $ADMIN_USERNAME | cut -d: -f5 | cut -d, -f1)
-
- # check that the backup destination is available
- if [ ! -b $USB_DRIVE ]; then
- echo $"Please attach a USB drive"
- exit 1
- fi
-
- # unmount if already mounted
- umount -f $USB_MOUNT
- if [ ! -d $USB_MOUNT ]; then
- mkdir $USB_MOUNT
- fi
- if [ -f /dev/mapper/encrypted_usb ]; then
- rm -rf /dev/mapper/encrypted_usb
- fi
- cryptsetup luksClose encrypted_usb
-
- # mount the encrypted backup drive
- cryptsetup luksOpen $USB_DRIVE encrypted_usb
- if [ "$?" = "0" ]; then
- USB_DRIVE=/dev/mapper/encrypted_usb
- fi
- mount $USB_DRIVE $USB_MOUNT
- if [ ! "$?" = "0" ]; then
- echo $"There was a problem mounting the USB drive to $USB_MOUNT"
- rm -rf $USB_MOUNT
- exit 2
- fi
-}
-
-function unmount_drive {
- sync
- umount $USB_MOUNT
- if [ ! "$?" = "0" ]; then
- echo $"Unable to unmount the drive. This means that the backup did not work"
- rm -rf $USB_MOUNT
- exit 9
- fi
- rm -rf $USB_MOUNT
- if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then
- echo $"Unmount encrypted USB"
- cryptsetup luksClose encrypted_usb
- fi
- if [ -f /dev/mapper/encrypted_usb ]; then
- rm -rf /dev/mapper/encrypted_usb
- fi
- echo $"Backup to USB drive is complete. You can now unplug it."
-}
-
-function backup_database {
- if [ ${#DATABASE_PASSWORD} -lt 2 ]; then
- echo $"No MariaDB password was given"
- restart_site
- exit 10
- fi
- if [ ! -d $USB_MOUNT/backup/${1} ]; then
- mkdir -p $USB_MOUNT/backup/${1}
- fi
- if [ ! -d $USB_MOUNT/backup/${1}data ]; then
- mkdir -p $USB_MOUNT/backup/${1}data
- fi
- if [ ! -d /root/temp${1}data ]; then
- mkdir -p /root/temp${1}data
- fi
- echo $"Obtaining ${1} database backup"
- mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > /root/temp${1}data/${1}.sql
- if [ ! -s /root/temp${1}data/${1}.sql ]; then
- echo $"${1} database could not be saved"
- shred -zu /root/temp${1}data/*
- rm -rf /root/temp${1}data
- umount $USB_MOUNT
- rm -rf $USB_MOUNT
- restart_site
- exit 5
- fi
-}
-
-function backup_directory_to_usb {
- if [ ! -d ${1} ]; then
- echo $"WARNING: directory does not exist: ${1}"
- else
- BACKUP_KEY_EXISTS=$(gpg --list-keys "$ADMIN_NAME (backup key)")
- if [ ! "$?" = "0" ]; then
- echo $"Backup key could not be found"
- restart_site
- exit 6
- fi
- MY_BACKUP_KEY_ID=$(gpg --list-keys "$ADMIN_NAME (backup key)" | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
- if [ ! -d $USB_MOUNT/backup/${2} ]; then
- mkdir -p $USB_MOUNT/backup/${2}
- fi
- set_obnam_client_name
- obnam force-lock -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
- obnam backup -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
- if [[ $ENABLE_VERIFICATION == "yes" ]]; then
- obnam verify -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
- if [ ! "$?" = "0" ]; then
- umount $USB_MOUNT
- rm -rf $USB_MOUNT
- if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
- shred -zu ${1}/*
- rm -rf ${1}
- fi
- restart_site
- exit 71
- fi
- fi
- obnam forget --keep=30d -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID
- if [ ! "$?" = "0" ]; then
- umount $USB_MOUNT
- rm -rf $USB_MOUNT
- if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
- shred -zu ${1}/*
- rm -rf ${1}
- fi
- restart_site
- exit 7
- fi
- if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
- shred -zu ${1}/*
- rm -rf ${1}
- fi
- fi
-}
+DATABASE_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
function make_backup_directory {
# make a backup directory on the drive
@@ -287,7 +93,7 @@ function backup_users {
# Backup user files
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
# Backup any gpg keys
if [ -d /home/$USERNAME/.gnupg ]; then
@@ -313,23 +119,13 @@ function backup_users {
backup_directory_to_usb /home/$USERNAME/.fin fin/$USERNAME
fi
- # Backup syncthing
- if [ -d /home/$USERNAME/Sync ]; then
- echo $"Backing up syncthing files for $USERNAME"
- backup_directory_to_usb /home/$USERNAME/Sync syncthing/$USERNAME
- # ensure that device IDs will be backed up as part of user config settings
- if [ ! -d /home/$USERNAME/.config/syncthing ]; then
- mkdir -p /home/$USERNAME/.config/syncthing
- chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
- fi
- if [ -f /home/$USERNAME/.syncthing-server-id ]; then
- cp /home/$USERNAME/.syncthing-server-id /home/$USERNAME/.config/syncthing
- chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
- fi
- if [ -f /home/$USERNAME/.syncthingids ]; then
- cp /home/$USERNAME/.syncthingids /home/$USERNAME/.config/syncthing
- chown -R $USERNAME:$USERNAME /home/$USERNAME/.config
+ # Backup emacs
+ if [ -d /home/$USERNAME/.emacs.d ]; then
+ echo $"Backing up Emacs config for $USERNAME"
+ if [ -f /home/$USERNAME/.emacs ]; then
+ cp /home/$USERNAME/.emacs /home/$USERNAME/.emacs.d/dotemacs
fi
+ backup_directory_to_usb /home/$USERNAME/.emacs.d config/$USERNAME
fi
# Backup user configs
@@ -398,74 +194,22 @@ function backup_users {
}
function backup_directories {
- export GVM_ROOT=$GVM_HOME
- if [ -d $GVM_ROOT/bin ]; then
- cd $GVM_ROOT/bin
- [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
- gvm use go${GO_VERSION} --default
- systemctl set-environment GOPATH=$GOPATH
- fi
-
# directories to be backed up (source,dest)
backup_dirs=(
- "none, none, /etc/letsencrypt, letsencrypt"
- "none, none, /var/lib/dokuwiki, wiki"
- "none, none, /etc/dokuwiki, wiki2"
- "none, none, /etc/ssl, ssl"
- "none, none, /etc/share/tt-rss, ttrss"
- "/etc/share/tt-rss, ttrss, /root/tempttrssdata, ttrssdata"
- "none, none, /var/spool/mlmmj, mailinglist"
- "none, none, /var/lib/prosody, xmpp"
- "none, none, /etc/nginx/sites-available, web"
- "none, none, /home/$ADMIN_USERNAME/.ipfs, ipfs"
- "none, none, /var/cache/minidlna, dlna"
- "$GOPATH/src/github.com/gogits, gogs, /root/tempgogsdata, gogsdata"
- "none, none, $GOPATH/src/github.com/gogits/gogs/custom, gogs"
- "none, none, /home/git/gogs-repositories, gogsrepos"
- "none, none, /home/git/.ssh, gogsssh"
- "none, none, /var/lib/tox-bootstrapd, tox"
- "/var/www/${MICROBLOG_DOMAIN_NAME}, gnusocial, /root/tempgnusocialdata, gnusocialdata"
- "none, none, /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs, gnusocial"
- "none, none, /var/lib/syncthing/SyncShared, syncthingshared"
- "none, none, /root/.config/syncthing, syncthingconfig"
- "/var/www/${HUBZILLA_DOMAIN_NAME}, hubzilla, /root/temphubzilladata, hubzilladata"
- "none, none, /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs, hubzilla"
- "none, none, /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs, blog"
- "none, none, /var/lib/tor, tor"
- "none, none, /var/www/${MEDIAGOBLIN_DOMAIN_NAME}/htdocs, mediagoblin"
+ "/etc/letsencrypt, letsencrypt"
+ "/etc/ssl, ssl"
+ "/var/spool/mlmmj, mailinglist"
+ "/etc/nginx/sites-available, web"
+ "/var/lib/tor, tor"
+ "/root/.passwords, passwordstore"
)
for dr in "${backup_dirs[@]}"
do
- # if this directory exists then backup the given database
- required_directory=$(echo $dr | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
- database_name=$(echo $dr | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
-
- if [[ "$database_name" == *"hubzilla"* ]]; then
- suspend_site ${HUBZILLA_DOMAIN_NAME}
- fi
- if [[ "$database_name" == *"gnusocial"* ]]; then
- suspend_site ${MICROBLOG_DOMAIN_NAME}
- fi
- if [[ "$database_name" == *"gogs"* ]]; then
- suspend_site ${GIT_DOMAIN_NAME}
- fi
- if [[ "$database_name" == *"ttrss"* ]]; then
- suspend_site ${RSS_READER_DOMAIN_NAME}
- fi
-
- if [[ $required_directory != "none" ]]; then
- if [ -d $required_directory ]; then
- if [[ $database_name != "none" ]]; then
- backup_database $database_name
- fi
- fi
- fi
-
# if this directory exists then back it up to the given destination
- source_directory=$(echo $dr | awk -F ',' '{print $3}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+ source_directory=$(echo $dr | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
if [ -d $source_directory ]; then
- dest_directory=$(echo $dr | awk -F ',' '{print $4}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+ dest_directory=$(echo $dr | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo $"Backing up $source_directory to $dest_directory"
backup_directory_to_usb $source_directory $dest_directory
fi
@@ -480,7 +224,7 @@ function remove_backup_directory {
if [ -d $USB_MOUNT/backup ]; then
rm -rf $USB_MOUNT/backup
echo $'Existing backup directory removed'
- unmount_drive
+ backup_unmount_drive
exit 0
fi
fi
@@ -488,18 +232,7 @@ function remove_backup_directory {
}
function prepare_directories {
- export GVM_ROOT=$GVM_HOME
- if [ -d $GVM_ROOT/bin ]; then
- cd $GVM_ROOT/bin
- [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
- gvm use go${GO_VERSION} --default
- systemctl set-environment GOPATH=$GOPATH
- fi
-
# Some miscellaneous preparation for backing up directories
- if [ -d $GOPATH/src/github.com/gogits ]; then
- mv /home/git/gogs-repositories/*.git /home/git/gogs-repositories/$ADMIN_USERNAME
- fi
if [ -d /var/lib/tox-bootstrapd ]; then
cp /etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
if [ -d /var/lib/tox-bootstrapd/Maildir ]; then
@@ -510,140 +243,83 @@ function prepare_directories {
function backup_configfiles {
echo $"Backing up ${PROJECT_NAME} configuration files"
- if [ ! -d /root/tempbackupconfig ]; then
- mkdir -p /root/tempbackupconfig
+ temp_backup_dir=/root/tempbackupconfig
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir -p $temp_backup_dir
fi
- cp -f $CONFIG_FILE /root/tempbackupconfig
- cp -f $COMPLETION_FILE /root/tempbackupconfig
+ if [ -f $NODEJS_INSTALLED_APPS_FILE ]; then
+ cp -f $NODEJS_INSTALLED_APPS_FILE $temp_backup_dir
+ fi
+ if [ -f /root/.nostore ]; then
+ cp -f /root/.nostore $temp_backup_dir
+ else
+ if [ -f $temp_backup_dir/.nostore ]; then
+ rm $temp_backup_dir/.nostore
+ fi
+ fi
+ cp -f $CONFIGURATION_FILE $temp_backup_dir
+ cp -f $COMPLETION_FILE $temp_backup_dir
if [ -f $BACKUP_EXTRA_DIRECTORIES ]; then
- cp -f $BACKUP_EXTRA_DIRECTORIES /root/tempbackupconfig
+ cp -f $BACKUP_EXTRA_DIRECTORIES $temp_backup_dir
fi
# nginx password hashes
if [ -f /etc/nginx/.htpasswd ]; then
- cp -f /etc/nginx/.htpasswd /root/tempbackupconfig/htpasswd
+ cp -f /etc/nginx/.htpasswd $temp_backup_dir/htpasswd
fi
- backup_directory_to_usb /root/tempbackupconfig configfiles
+ backup_directory_to_usb $temp_backup_dir configfiles
}
function backup_admin_readme {
if [ -f /home/$ADMIN_USERNAME/README ]; then
echo $"Backing up README"
- if [ ! -d /home/$ADMIN_USERNAME/tempbackup ]; then
- mkdir -p /home/$ADMIN_USERNAME/tempbackup
+ temp_backup_dir=/home/$ADMIN_USERNAME/tempbackup
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir -p $temp_backup_dir
fi
- cp -f /home/$ADMIN_USERNAME/README /home/$ADMIN_USERNAME/tempbackup
- backup_directory_to_usb /home/$ADMIN_USERNAME/tempbackup readme
- fi
-}
-
-function backup_voip {
- if [ -f /etc/mumble-server.ini ]; then
- echo $"Backing up VoIP settings"
- if [ ! -d /root/tempvoipbackup ]; then
- mkdir -p /root/tempvoipbackup
- fi
- cp -f /etc/mumble-server.ini /root/tempvoipbackup
- cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempvoipbackup
- cp -f /etc/sipwitch.conf /root/tempvoipbackup
- backup_directory_to_usb /root/tempvoipbackup voip
+ cp -f /home/$ADMIN_USERNAME/README $temp_backup_dir
+ backup_directory_to_usb $temp_backup_dir readme
fi
}
function backup_mariadb {
if [ ${#DATABASE_PASSWORD} -gt 1 ]; then
- if [ ! -d /root/tempmariadb ]; then
- mkdir /root/tempmariadb
+ temp_backup_dir=/root/tempmariadb
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir $temp_backup_dir
fi
- mysqldump --lock-tables --password="$DATABASE_PASSWORD" mysql user > /root/tempmariadb/mysql.sql
- if [ ! -s /root/tempmariadb/mysql.sql ]; then
+ mysqldump --lock-tables --password="$DATABASE_PASSWORD" mysql user > $temp_backup_dir/mysql.sql
+ if [ ! -s $temp_backup_dir/mysql.sql ]; then
echo $"Unable to backup mysql settings"
- rm -rf /root/tempmariadb
+ rm -rf $temp_backup_dir
umount $USB_MOUNT
rm -rf $USB_MOUNT
exit 8
fi
- echo "$DATABASE_PASSWORD" > /root/tempmariadb/db
- chmod 400 /root/tempmariadb/db
- backup_directory_to_usb /root/tempmariadb mariadb
+ echo "$DATABASE_PASSWORD" > $temp_backup_dir/db
+ chmod 400 $temp_backup_dir/db
+ backup_directory_to_usb $temp_backup_dir mariadb
fi
}
-function valid_backup_destination {
- destination_dir="$1"
- is_valid="yes"
-
- if [[ "$destination_dir" == "hubzilla" || \
- "$destination_dir" == "hubzilladata" || \
- "$destination_dir" == "gogs" || \
- "$destination_dir" == "gogsrepos" || \
- "$destination_dir" == "gogsssh" || \
- "$destination_dir" == "gnusocial" || \
- "$destination_dir" == "gnusocialdata" || \
- "$destination_dir" == "mariadb" || \
- "$destination_dir" == "config" || \
- "$destination_dir" == "letsencrypt" || \
- "$destination_dir" == "wiki" || \
- "$destination_dir" == "wiki2" || \
- "$destination_dir" == "xmpp" || \
- "$destination_dir" == "ipfs" || \
- "$destination_dir" == "dlna" || \
- "$destination_dir" == "tox" || \
- "$destination_dir" == "ssl" || \
- "$destination_dir" == "ttrss" || \
- "$destination_dir" == "blog" || \
- "$destination_dir" == "syncthingconfig" || \
- "$destination_dir" == "syncthingshared" || \
- "$destination_dir" == "syncthing" || \
- "$destination_dir" == "mediagoblin" || \
- "$destination_dir" == "mailinglist" ]]; then
- is_valid="no"
- fi
-
- echo $is_valid
-}
-
-function backup_extra_directories {
- if [ ! -f $BACKUP_EXTRA_DIRECTORIES ]; then
- return
- fi
-
- echo $"Backing up some additional directories"
- while read backup_line
- do
- backup_dir=$(echo "$backup_line" | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
- if [ -d "$backup_dir" ]; then
- destination_dir=$(echo "$backup_line" | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
- if [[ $(valid_backup_destination "$destination_dir") == "yes" ]]; then
- backup_directory_to_usb "$backup_dir" "$destination_dir"
- else
- echo $"WARNING: The backup directory $destination_dir is already used."
- echo $"Choose a different destination name for backing up $backup_dir"
- fi
- else
- echo $"WARNING: Directory $backup_dir does not exist"
- fi
- done <$BACKUP_EXTRA_DIRECTORIES
-}
-
# has the remove option been set ?
remove_option=$2
if [[ $1 == "remove" ]]; then
remove_option=$1
fi
-mount_drive $1 $2
+backup_mount_drive $1 $2
remove_backup_directory $remove_option
make_backup_directory
check_storage_space_remaining
-update_domains
backup_users
prepare_directories
backup_directories
+backup_apps local
backup_configfiles
backup_admin_readme
-backup_voip
backup_mariadb
-backup_extra_directories
-unmount_drive
+backup_extra_directories local
+backup_unmount_drive $USB_DRIVE $USB_MOUNT
+echo $"Backup to USB drive is complete. You can now unplug it."
exit 0
diff --git a/src/freedombone-backup-remote b/src/freedombone-backup-remote
index 2c6a3ade..518492da 100755
--- a/src/freedombone-backup-remote
+++ b/src/freedombone-backup-remote
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,24 +30,34 @@
PROJECT_NAME='freedombone'
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
-CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
BACKUP_EXTRA_DIRECTORIES=/root/backup-extra-dirs.csv
ENABLE_VERIFICATION="no"
export TEXTDOMAIN=${PROJECT_NAME}-backup-remote
export TEXTDOMAINDIR="/usr/share/locale"
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+# utilities needed for backup commands
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
# Temporary location for data to be backed up to other servers
SERVER_DIRECTORY=/root/remotebackup
# get the version of Go being used
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- GO_VERSION=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
-else
- GO_VERSION=$(cat /usr/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
-fi
+GO_VERSION=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-go | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
-ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ADMIN_USERNAME=$(get_completion_param "Admin user")
ADMIN_NAME=$(getent passwd $ADMIN_USERNAME | cut -d: -f5 | cut -d, -f1)
ADMIN_EMAIL_ADDRESS=${ADMIN_USERNAME}@${HOSTNAME}
if [ ! -f /etc/ssl/private/backup.key ]; then
@@ -60,10 +70,7 @@ if [ ! -f /home/${ADMIN_USERNAME}/backup.list ]; then
fi
# MariaDB password
-DATABASE_PASSWORD=''
-if [ -f /root/dbpass ]; then
- DATABASE_PASSWORD=$(cat /root/dbpass)
-fi
+DATABASE_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
# local directory where the backup will be made
if [ ! -d $SERVER_DIRECTORY ]; then
@@ -78,14 +85,6 @@ fi
# Sites are suspended so that verification should work
SUSPENDED_SITE=
-function set_obnam_client_name {
- # obnam can backup multiple machines with different domain names to
- # a repository. To be able to restore directories from different
- # machines we need to enforce a single client name for all backups
- echo '[config]' > /etc/obnam.conf
- echo "client-name = ${PROJECT_NAME}" >> /etc/obnam.conf
-}
-
function suspend_site {
# suspends a given website
if [[ $ENABLE_VERIFICATION != "yes" ]]; then
@@ -106,99 +105,38 @@ function restart_site {
SUSPENDED_SITE=
}
-function backup_directory_to_friend {
- BACKUP_KEY_EXISTS=$(gpg --list-keys "$ADMIN_NAME (backup key)")
- if [ ! "$?" = "0" ]; then
- echo $"Backup key could not be found"
- restart_site
- exit 43382
- fi
- ADMIN_BACKUP_KEY_ID=$(gpg --list-keys "$ADMIN_NAME (backup key)" | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
- if [ ! -d $SERVER_DIRECTORY/backup/${2} ]; then
- mkdir -p $SERVER_DIRECTORY/backup/${2}
- fi
- set_obnam_client_name
- obnam force-lock -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
- obnam backup -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
- if [[ $ENABLE_VERIFICATION == "yes" ]]; then
- obnam verify -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
- if [ ! "$?" = "0" ]; then
- if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
- shred -zu /root/temp${2}/*
- rm -rf /root/temp${2}
- fi
- # Send a warning email
- echo "Unable to verify ${2}" | mail -s "${PROJECT_NAME} backup to friends" ${ADMIN_EMAIL_ADDRESS}
- restart_site
- exit 953
- fi
- fi
- obnam forget --keep=30d -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID}
- if [ ! "$?" = "0" ]; then
- if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
- shred -zu /root/temp${2}/*
- rm -rf /root/temp${2}
- fi
- # Send a warning email
- echo "Unable to backup ${2}" | mail -s "${PROJECT_NAME} backup to friends" ${ADMIN_EMAIL_ADDRESS}
- restart_site
- exit 853
- fi
- if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
- shred -zu /root/temp${2}/*
- rm -rf /root/temp${2}
- fi
-}
-
-function backup_database_to_friend {
- if [ ${#DATABASE_PASSWORD} -lt 2 ]; then
- echo $"No MariaDB password was given"
- restart_site
- exit 5783
- fi
- if [ ! -d $SERVER_DIRECTORY/backup/${1} ]; then
- mkdir -p $SERVER_DIRECTORY/backup/${1}
- fi
- if [ ! -d $SERVER_DIRECTORY/backup/${1}data ]; then
- mkdir -p $SERVER_DIRECTORY/backup/${1}data
- fi
- if [ ! -d /root/temp${1}data ]; then
- mkdir -p /root/temp${1}data
- fi
- echo "Obtaining ${1} database backup"
- mysqldump --password=$DATABASE_PASSWORD ${1} > /root/temp${1}data/${1}.sql
- if [ ! -s /root/temp${1}data/${1}.sql ]; then
- echo $"${1} database could not be saved"
- shred -zu /root/temp${1}data/*
- rm -rf /root/temp${1}data
- # Send a warning email
- echo $"Unable to export ${1} database" | mail -s $"${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
- restart_site
- exit 5738
- fi
-}
-
function backup_configfiles {
echo $"Backing up ${PROJECT_NAME} configuration files"
- if [ ! -d /root/tempbackupconfig ]; then
- mkdir -p /root/tempbackupconfig
+ temp_backup_dir=/root/tempbackupconfig
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir -p $temp_backup_dir
fi
- cp -f $CONFIG_FILE /root/tempbackupconfig
- cp -f $COMPLETION_FILE /root/tempbackupconfig
+ if [ -f $NODEJS_INSTALLED_APPS_FILE ]; then
+ cp -f $NODEJS_INSTALLED_APPS_FILE $temp_backup_dir
+ fi
+ if [ -f /root/.nostore ]; then
+ cp -f /root/.nostore $temp_backup_dir
+ else
+ if [ -f $temp_backup_dir/.nostore ]; then
+ rm $temp_backup_dir/.nostore
+ fi
+ fi
+ cp -f $CONFIGURATION_FILE $temp_backup_dir
+ cp -f $COMPLETION_FILE $temp_backup_dir
if [ -f $BACKUP_EXTRA_DIRECTORIES ]; then
- cp -f $BACKUP_EXTRA_DIRECTORIES /root/tempbackupconfig
+ cp -f $BACKUP_EXTRA_DIRECTORIES $temp_backup_dir
fi
# nginx password hashes
if [ -f /etc/nginx/.htpasswd ]; then
- cp -f /etc/nginx/.htpasswd /root/tempbackupconfig/htpasswd
+ cp -f /etc/nginx/.htpasswd $temp_backup_dir/htpasswd
fi
- backup_directory_to_friend /root/tempbackupconfig configfiles
+ backup_directory_to_friend $temp_backup_dir configfiles
}
function backup_users {
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
# personal settings
if [ -d /home/$USERNAME/personal ]; then
@@ -315,6 +253,13 @@ function backup_letsencrypt {
fi
}
+function backup_passwordstore {
+ if [ -d /root/.passwords ]; then
+ echo $"Backing up password store"
+ backup_directory_to_friend /root/.passwords passwordstore
+ fi
+}
+
function backup_tor {
if [ -d /etc/letsencrypt ]; then
echo $"Backing up Tor settings"
@@ -322,122 +267,6 @@ function backup_tor {
fi
}
-function backup_rss_reader {
- if grep -q "RSS reader domain" $COMPLETION_FILE; then
- RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "RSS reader domain" | awk -F ':' '{print $2}')
- if [ -d /etc/share/tt-rss ]; then
- suspend_site ${RSS_READER_DOMAIN_NAME}
- backup_database_to_friend ttrss
- backup_directory_to_friend /root/tempttrssdata ttrssdata
- echo $"Backing up RSS reader installation"
- backup_directory_to_friend /etc/share/tt-rss ttrss
- restart_site
- else
- echo $"RSS reader domain specified but not found in /etc/share/ttrss}"
- fi
- fi
-}
-
-function backup_gnusocial {
- if grep -q "GNU Social domain" $COMPLETION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
- if [ -d /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs ]; then
- suspend_site ${MICROBLOG_DOMAIN_NAME}
- backup_database_to_friend gnusocial
- backup_directory_to_friend /root/tempgnusocialdata gnusocialdata
- echo $"Backing up GNU social installation"
- backup_directory_to_friend /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs gnusocial
- restart_site
- else
- echo $"GNU Social domain specified but not found in /var/www/${MICROBLOG_DOMAIN_NAME}"
- fi
- fi
-}
-
-function backup_hubzilla {
- if grep -q "Hubzilla domain" $COMPLETION_FILE; then
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
- if [ -d /var/www/${HUBZILLA_DOMAIN_NAME} ]; then
- suspend_site ${HUBZILLA_DOMAIN_NAME}
- backup_database_to_friend hubzilla
- backup_directory_to_friend /root/temphubzilladata hubzilladata
- echo "Backing up Hubzilla installation"
- backup_directory_to_friend /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs hubzilla
- restart_site
- else
- echo $"Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}"
- exit 2578
- fi
- fi
-}
-
-function backup_syncthing {
- if [ -d /root/.config/syncthing ]; then
- echo $"Backing up syncthing configuration"
- backup_directory_to_friend /root/.config/syncthing syncthingconfig
- fi
- if [ -d /var/lib/syncthing/SyncShared ]; then
- echo $"Backing up syncthing shared files"
- backup_directory_to_friend /var/lib/syncthing/SyncShared syncthingshared
- fi
-}
-
-function backup_mediagoblin {
- if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
- MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
- suspend_site ${MEDIAGOBLIN_DOMAIN_NAME}
- echo $"Backing up Mediagoblin"
- backup_directory_to_friend /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs mediagoblin
- restart_site
- fi
-}
-
-function backup_gogs {
- export GVM_ROOT=/home/git/gvm
- if [ -d $GVM_ROOT/bin ]; then
- cd $GVM_ROOT/bin
- [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
- gvm use go${GO_VERSION} --default
- systemctl set-environment GOPATH=$GOPATH
- fi
-
- if [ -d $GOPATH/src/github.com/gogits ]; then
- GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
- suspend_site ${GIT_DOMAIN_NAME}
- backup_database_to_friend gogs
- backup_directory_to_friend /root/tempgogsdata gogsdata
- echo $"Obtaining Gogs settings backup"
- backup_directory_to_friend $GOPATH/src/github.com/gogits/gogs/custom gogs
- echo $"Obtaining Gogs repos backup"
- mv /home/git/gogs-repositories/*.git /home/git/gogs-repositories/bob
- backup_directory_to_friend /home/git/gogs-repositories gogsrepos
- echo $"Obtaining Gogs authorized_keys backup"
- backup_directory_to_friend /home/git/.ssh gogsssh
- restart_site
- fi
-}
-
-function backup_wiki {
- if [ -d /etc/dokuwiki ]; then
- echo $"Backing up wiki"
- backup_directory_to_friend /var/lib/dokuwiki wiki
- backup_directory_to_friend /etc/dokuwiki wiki2
- fi
-}
-
-function backup_blog {
- if grep -q "Blog domain" $COMPLETION_FILE; then
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
- if [ -d /var/www/${FULLBLOG_DOMAIN_NAME} ]; then
- echo $"Backing up blog"
- backup_directory_to_friend /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs blog
- else
- echo $"Blog domain specified but not found in /var/www/${FULLBLOG_DOMAIN_NAME}"
- exit 2578
- fi
- fi
-}
-
function backup_certs {
if [ -d /etc/ssl ]; then
echo $"Backing up certificates"
@@ -452,13 +281,6 @@ function backup_mailing_list {
fi
}
-function backup_xmpp {
- if [ -d /var/lib/prosody ]; then
- echo $"Backing up the XMPP settings"
- backup_directory_to_friend /var/lib/prosody xmpp
- fi
-}
-
function backup_web_server {
if [ -d /etc/nginx ]; then
echo $"Backing up web settings"
@@ -477,60 +299,23 @@ function backup_admin_readme {
fi
}
-function backup_ipfs {
- if [ -d /home/$ADMIN_USERNAME/.ipfs ]; then
- echo $"Backing up IPFS"
- backup_directory_to_friend /home/$ADMIN_USERNAME/.ipfs ipfs
- fi
-}
-
-function backup_dlna {
- if [ -d /var/cache/minidlna ]; then
- echo $"Backing up DLNA cache"
- backup_directory_to_friend /var/cache/minidlna dlna
- fi
-}
-
-function backup_voip {
- if [ -f /etc/mumble-server.ini ]; then
- echo $"Backing up VoIP settings"
- if [ ! -d /root/tempvoipbackup ]; then
- mkdir -p /root/tempvoipbackup
- fi
- cp -f /etc/mumble-server.ini /root/tempvoipbackup
- cp -f /var/lib/mumble-server/mumble-server.sqlite /root/tempvoipbackup
- cp -f /etc/sipwitch.conf /root/tempvoipbackup
- backup_directory_to_friend /root/tempvoipbackup voip
- fi
-}
-
-function backup_tox {
- if [ -d /var/lib/tox-bootstrapd ]; then
- echo "Backing up Tox node settings"
- if [ -d /var/lib/tox-bootstrapd/Maildir ]; then
- rm -rf /var/lib/tox-bootstrapd/Maildir
- fi
- cp /etc/tox-bootstrapd.conf /var/lib/tox-bootstrapd
- backup_directory_to_friend /var/lib/tox-bootstrapd tox
- fi
-}
-
function backup_mariadb {
if [ ${#DATABASE_PASSWORD} -gt 1 ]; then
- if [ ! -d /root/tempmariadb ]; then
- mkdir /root/tempmariadb
+ temp_backup_dir=/root/tempmariadb
+ if [ ! -d $temp_backup_dir ]; then
+ mkdir $temp_backup_dir
fi
- mysqldump --password=$DATABASE_PASSWORD mysql user > /root/tempmariadb/mysql.sql
- if [ ! -s /root/tempmariadb/mysql.sql ]; then
+ mysqldump --password=$DATABASE_PASSWORD mysql user > $temp_backup_dir/mysql.sql
+ if [ ! -s $temp_backup_dir/mysql.sql ]; then
echo $"Unable to backup MariaDB settings"
- rm -rf /root/tempmariadb
+ rm -rf $temp_backup_dir
# Send a warning email
echo $"Unable to export database settings" | mail -s "${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
exit 653
fi
- echo "$DATABASE_PASSWORD" > /root/tempmariadb/db
- chmod 400 /root/tempmariadb/db
- backup_directory_to_friend /root/tempmariadb mariadb
+ echo "$DATABASE_PASSWORD" > $temp_backup_dir/db
+ chmod 400 $temp_backup_dir/db
+ backup_directory_to_friend $temp_backup_dir mariadb
fi
}
@@ -593,61 +378,6 @@ function disperse_key_shares {
fi
}
-function valid_backup_destination {
- destination_dir="$1"
- is_valid="yes"
-
- if [[ "$destination_dir" == "hubzilla" || \
- "$destination_dir" == "hubzilladata" || \
- "$destination_dir" == "gogs" || \
- "$destination_dir" == "gogsrepos" || \
- "$destination_dir" == "gogsssh" || \
- "$destination_dir" == "gnusocial" || \
- "$destination_dir" == "gnusocialdata" || \
- "$destination_dir" == "mariadb" || \
- "$destination_dir" == "config" || \
- "$destination_dir" == "letsencrypt" || \
- "$destination_dir" == "wiki" || \
- "$destination_dir" == "wiki2" || \
- "$destination_dir" == "xmpp" || \
- "$destination_dir" == "ipfs" || \
- "$destination_dir" == "dlna" || \
- "$destination_dir" == "tox" || \
- "$destination_dir" == "ssl" || \
- "$destination_dir" == "blog" || \
- "$destination_dir" == "syncthing" || \
- "$destination_dir" == "syncthingconfig" || \
- "$destination_dir" == "syncthingshared" || \
- "$destination_dir" == "mailinglist" ]]; then
- is_valid="no"
- fi
-
- echo $is_valid
-}
-
-function backup_extra_directories {
- if [ ! -f $BACKUP_EXTRA_DIRECTORIES ]; then
- return
- fi
-
- echo $"Backing up some additional directories"
- while read backup_line
- do
- backup_dir=$(echo "$backup_line" | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
- if [ -d "$backup_dir" ]; then
- destination_dir=$(echo "$backup_line" | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
- if [[ $(valid_backup_destination "$destination_dir") == "yes" ]]; then
- backup_directory_to_friend "$backup_dir" "$destination_dir"
- else
- echo $"WARNING: The backup directory $destination_dir is already used."
- echo $"Choose a different destination name for backing up $backup_dir"
- fi
- else
- echo $"WARNING: Directory $backup_dir does not exist"
- fi
- done <$BACKUP_EXTRA_DIRECTORIES
-}
-
TEST_MODE="no"
if [[ "$1" == "test" ]]; then
TEST_MODE="yes"
@@ -657,26 +387,15 @@ backup_configfiles
if [[ $TEST_MODE == "no" ]]; then
backup_users
backup_letsencrypt
+ backup_passwordstore
backup_tor
- backup_gnusocial
- backup_rss_reader
- backup_hubzilla
- backup_syncthing
- backup_mediagoblin
- backup_gogs
- backup_wiki
- backup_blog
- backup_certs
- backup_mailing_list
- backup_xmpp
backup_web_server
backup_admin_readme
- backup_ipfs
- backup_dlna
- backup_voip
- backup_tox
backup_mariadb
- backup_extra_directories
+ backup_certs
+ backup_mailing_list
+ backup_apps remote
+ backup_extra_directories remote
fi
# For each remote server
@@ -699,7 +418,7 @@ do
# Social key management
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
disperse_key_shares $USERNAME $REMOTE_DOMAIN $REMOTE_SSH_PORT "$REMOTE_PASSWORD" $REMOTE_SERVER
fi
done
diff --git a/src/freedombone-base-email b/src/freedombone-base-email
new file mode 100755
index 00000000..0341bd74
--- /dev/null
+++ b/src/freedombone-base-email
@@ -0,0 +1,1686 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Email functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# the default email address
+MY_EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
+
+# If you want to run a public mailing list specify its name here.
+# There should be no spaces in the name
+PUBLIC_MAILING_LIST=
+# Optional different domain name for the public mailing list
+PUBLIC_MAILING_LIST_DOMAIN_NAME=
+# Directory where the public mailing list data is stored
+PUBLIC_MAILING_LIST_DIRECTORY="/var/spool/mlmmj"
+
+# If you want to run an encrypted mailing list specify its name here.
+# There should be no spaces in the name
+PRIVATE_MAILING_LIST=
+
+GPG_KEYSERVER="hkp://keys.gnupg.net"
+
+# whether to encrypt all incoming email with your public key
+GPG_ENCRYPT_STORED_EMAIL="yes"
+
+# gets set to yes if gpg keys are imported from usb
+GPG_KEYS_IMPORTED="no"
+
+# optionally you can provide your exported GPG key pair here
+# Note that the private key file will be deleted after use
+# If these are unspecified then a new GPG key will be created
+MY_GPG_PUBLIC_KEY=
+MY_GPG_PRIVATE_KEY=
+
+# optionally specify your public key ID
+MY_GPG_PUBLIC_KEY_ID=
+
+EXIM_ONION_REPO="https://github.com/petterreinholdtsen/exim4-smtorp"
+
+# automatic archiving of email
+CLEANUP_MAILDIR_REPO="https://github.com/bashrc/cleanup-maildir"
+CLEANUP_MAILDIR_COMMIT='33241d2e3861f901ba17f5c77ada007e1ec06a86'
+
+# email encryption at rest
+GPGIT_REPO="https://gitlab.com/mikecardwell/gpgit"
+GPGIT_COMMIT='583dc76119f19420f8a33f606744faa7c8922738'
+
+# refresh gpg keys every few hours
+REFRESH_GPG_KEYS_HOURS=2
+
+function check_email_address_exists {
+ read_config_param ONION_ONLY
+ read_config_param MY_USERNAME
+ read_config_param DEFAULT_DOMAIN_NAME
+ read_config_param MY_EMAIL_ADDRESS
+ read_config_param DH_KEYLENGTH
+
+ if [ ! $MY_USERNAME ]; then
+ echo $'No username for email installation'
+ exit 73672
+ fi
+ if [ ! $DEFAULT_DOMAIN_NAME ]; then
+ echo $'No default domain name for email installation'
+ exit 57634
+ fi
+
+ my_email="$MY_EMAIL_ADDRESS"
+ if [ ${#my_email} -lt 3 ]; then
+ MY_EMAIL_ADDRESS=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}
+ write_config_param "MY_EMAIL_ADDRESS" "$MY_EMAIL_ADDRESS"
+ fi
+}
+
+function backup_email {
+ echo ''
+}
+
+function configure_firewall_for_email {
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ firewall_add Email 25 tcp
+ firewall_add Email 587 tcp
+ firewall_add Email 465 tcp
+ firewall_add Imap 993 tcp
+}
+
+function encrypt_incoming_email {
+ # encrypts incoming mail using your GPG public key
+ # so even if an attacker gains access to the data at rest they still need
+ # to know your GPG key password to be able to read anything
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $INSTALL_DIR/gpgit "gpgit commit" "$GPGIT_COMMIT" $GPGIT_REPO
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
+ return
+ fi
+
+ if [ ! -f /usr/bin/gpgit.pl ]; then
+ apt-get -yq install git libmail-gnupg-perl
+ cd $INSTALL_DIR
+ function_check git_clone
+ git_clone $GPGIT_REPO $INSTALL_DIR/gpgit
+ cd $INSTALL_DIR/gpgit
+ git checkout $GPGIT_COMMIT -b $GPGIT_COMMIT
+ set_completion_param "gpgit commit" "$GPGIT_COMMIT"
+ cp gpgit.pl /usr/bin
+ fi
+
+ # add a procmail rule
+ if ! grep -q "/usr/bin/gpgit.pl" /home/$MY_USERNAME/.procmailrc; then
+ echo '' >> /home/$MY_USERNAME/.procmailrc
+ echo ':0 f' >> /home/$MY_USERNAME/.procmailrc
+ echo "| /usr/bin/gpgit.pl --encrypt-mode prefer-inline --inline-flatten $MY_EMAIL_ADDRESS" >> /home/$MY_USERNAME/.procmailrc
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
+ echo '' >> /etc/skel/.procmailrc
+ echo ':0 f' >> /etc/skel/.procmailrc
+ echo -n '| /usr/bin/gpgit.pl --encrypt-mode prefer-inline --inline-flatten $USER@' >> /etc/skel/.procmailrc
+ echo "$DEFAULT_DOMAIN_NAME" >> /etc/skel/.procmailrc
+ fi
+ mark_completed $FUNCNAME
+}
+
+function encrypt_outgoing_email {
+ # encrypts outgoing mail using your GPG public key
+ # so even if an attacker gains access to the data at rest they still need
+ # to know your GPG key password to be able to read sent mail
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
+ return
+ fi
+
+ if [ ! -d /home/$MY_USERNAME/.gnupg ]; then
+ return
+ fi
+
+ if [ ! -f /home/$MY_USERNAME/.muttrc ]; then
+ return
+ fi
+
+ # obtain your public key ID
+ if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
+ if [ ! "$MY_GPG_PUBLIC_KEY_ID" ]; then
+ return
+ fi
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
+ return
+ fi
+ fi
+
+ if ! grep -q "pgp_encrypt_only_command" /home/$MY_USERNAME/.muttrc; then
+ echo '' >> /home/$MY_USERNAME/.muttrc
+ echo $'# Encrypt items in the Sent folder' >> /home/$MY_USERNAME/.muttrc
+ echo "set pgp_encrypt_only_command=\"/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"" >> /home/$MY_USERNAME/.muttrc
+ else
+ sed -i "s|set pgp_encrypt_only_command.*|set pgp_encrypt_only_command=\"/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$MY_USERNAME/.muttrc
+ fi
+
+ if ! grep -q "pgp_encrypt_sign_command" /home/$MY_USERNAME/.muttrc; then
+ echo "set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"" >> /home/$MY_USERNAME/.muttrc
+ else
+ sed -i "s|set pgp_encrypt_sign_command.*|set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$MY_USERNAME/.muttrc
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function encrypt_all_email {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
+ return
+ fi
+
+ if [ -f /usr/local/bin/${PROJECT_NAME}-encrypt-mail ]; then
+ cp /usr/local/bin/${PROJECT_NAME}-encrypt-mail /usr/bin/encmaildir
+ else
+ cp /usr/bin/${PROJECT_NAME}-encrypt-mail /usr/bin/encmaildir
+ fi
+ chmod +x /usr/bin/encmaildir
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [ ! /home/$MY_USERNAME/README ]; then
+ touch /home/$MY_USERNAME/README
+ fi
+ if ! grep -q $"If you have imported legacy email which is not encrypted" /home/$MY_USERNAME/README; then
+ echo '' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo $'# Encrypting legacy email' >> /home/$MY_USERNAME/README
+ echo $'If you have imported legacy email which is not encrypted' >> /home/$MY_USERNAME/README
+ echo $'then it can be encrypted with the command:' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo ' encmaildir' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo $'But be warned that depending upon how much email you have' >> /home/$MY_USERNAME/README
+ echo $'this could take a seriously LONG time on the Beaglebone' >> /home/$MY_USERNAME/README
+ echo $'and may be better done on a faster machine.' >> /home/$MY_USERNAME/README
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
+ chmod 600 /home/$MY_USERNAME/README
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function email_client {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install mutt-patched lynx abook urlview
+
+ if [ ! -f /etc/Muttrc ]; then
+ echo $"ERROR: Mutt does not appear to have installed. $CHECK_MESSAGE"
+ exit 49
+ fi
+
+ if [ ! -d /home/$MY_USERNAME/.mutt ]; then
+ mkdir /home/$MY_USERNAME/.mutt
+ fi
+ echo "text/html; lynx -dump -width=78 -nolist %s | sed ‘s/^ //’; copiousoutput; needsterminal; nametemplate=%s.html" > /home/$MY_USERNAME/.mutt/mailcap
+ cp /home/$MY_USERNAME/.mutt/mailcap /etc/skel/.mutt
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.mutt
+ chown -R root:root /etc/skel/.mutt
+
+ echo 'set mbox_type=Maildir' >> /etc/Muttrc
+ echo 'set folder="~/Maildir"' >> /etc/Muttrc
+ echo 'set mask="!^\\.[^.]"' >> /etc/Muttrc
+ echo 'set mbox="~/Maildir"' >> /etc/Muttrc
+ echo 'set record="+Sent"' >> /etc/Muttrc
+ echo 'set postponed="+Drafts"' >> /etc/Muttrc
+ echo 'set trash="+Trash"' >> /etc/Muttrc
+ echo 'set spoolfile="~/Maildir"' >> /etc/Muttrc
+ echo 'auto_view text/x-vcard text/html text/enriched' >> /etc/Muttrc
+ echo 'set header_cache="+.cache"' >> /etc/Muttrc
+ echo 'set markers=no' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# ctrl-u to view long URLs' >> /etc/Muttrc
+ echo 'macro pager \cu "urlview" "Follow links with urlview"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo 'macro index S "=.learn-spam" "move to learn-spam"' >> /etc/Muttrc
+ echo 'macro pager S "=.learn-spam" "move to learn-spam"' >> /etc/Muttrc
+ echo 'macro index H "=.learn-ham" "copy to learn-ham"' >> /etc/Muttrc
+ echo 'macro pager H "=.learn-ham" "copy to learn-ham"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# set up the sidebar' >> /etc/Muttrc
+ echo 'set sidebar_width=22' >> /etc/Muttrc
+ echo 'set sidebar_visible=yes' >> /etc/Muttrc
+ echo "set sidebar_delim='|'" >> /etc/Muttrc
+ echo 'set sidebar_sort=yes' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo 'set rfc2047_parameters' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# Show inbox and sent items' >> /etc/Muttrc
+ echo 'mailboxes = =admin =Sent =maybe-spam =spam' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# Alter these colours as needed for maximum bling' >> /etc/Muttrc
+ echo 'color sidebar_new yellow default' >> /etc/Muttrc
+ echo 'color normal white default' >> /etc/Muttrc
+ echo 'color hdrdefault brightcyan default' >> /etc/Muttrc
+ echo 'color signature green default' >> /etc/Muttrc
+ echo 'color attachment brightyellow default' >> /etc/Muttrc
+ echo 'color quoted green default' >> /etc/Muttrc
+ echo 'color quoted1 white default' >> /etc/Muttrc
+ echo 'color tilde blue default' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# ctrl-n, ctrl-p to select next, prev folder' >> /etc/Muttrc
+ echo '# ctrl-o to open selected folder' >> /etc/Muttrc
+ echo 'bind index \Cp sidebar-prev' >> /etc/Muttrc
+ echo 'bind index \Cn sidebar-next' >> /etc/Muttrc
+ echo 'bind index \Co sidebar-open' >> /etc/Muttrc
+ echo 'bind pager \Cp sidebar-prev' >> /etc/Muttrc
+ echo 'bind pager \Cn sidebar-next' >> /etc/Muttrc
+ echo 'bind pager \Co sidebar-open' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# ctrl-b toggles sidebar visibility' >> /etc/Muttrc
+ echo "macro index,pager \Cb 'toggle sidebar_visible' 'toggle sidebar'" >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# esc-m Mark new messages as read' >> /etc/Muttrc
+ echo 'macro index m "T~N;WNT~O;WO\CT~T" "mark all messages read"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# Collapsing threads' >> /etc/Muttrc
+ echo 'macro index [ "" "collapse/uncollapse thread"' >> /etc/Muttrc
+ echo 'macro index ] "" "collapse/uncollapse all threads"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# threads containing new messages' >> /etc/Muttrc
+ echo 'uncolor index "~(~N)"' >> /etc/Muttrc
+ echo 'color index brightblue default "~(~N)"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# new messages themselves' >> /etc/Muttrc
+ echo 'uncolor index "~N"' >> /etc/Muttrc
+ echo 'color index brightyellow default "~N"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# GPG/PGP integration' >> /etc/Muttrc
+ echo '# this set the number of seconds to keep in memory the passphrase used to encrypt/sign' >> /etc/Muttrc
+ echo 'set pgp_timeout=1800' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# automatically sign and encrypt with PGP/MIME' >> /etc/Muttrc
+ echo 'set pgp_autosign # autosign all outgoing mails' >> /etc/Muttrc
+ echo 'set pgp_autoencrypt # Try to encrypt automatically' >> /etc/Muttrc
+ echo 'set pgp_replyencrypt # autocrypt replies to crypted' >> /etc/Muttrc
+ echo 'set pgp_replysign # autosign replies to signed' >> /etc/Muttrc
+ echo 'set pgp_auto_decode=yes # decode attachments' >> /etc/Muttrc
+ echo 'set fcc_clear=no # Keep encrypted copy of sent encrypted mail' >> /etc/Muttrc
+ echo 'unset smime_is_default' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo 'set alias_file=~/.mutt-alias' >> /etc/Muttrc
+ echo 'source ~/.mutt-alias' >> /etc/Muttrc
+ echo 'set query_command= "abook --mutt-query \"%s\""' >> /etc/Muttrc
+ echo 'macro index,pager A "abook --add-email-quiet" "add the sender address to abook"' >> /etc/Muttrc
+ echo '' >> /etc/Muttrc
+ echo '# Optional relay of SMTP via ISP' >> /etc/Muttrc
+ echo '#set smtp_url="smtps://username:password@isp_mail_domain:465/"' >> /etc/Muttrc
+
+ # For viewing long URLs
+ echo 'REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]' > /home/$MY_USERNAME/.urlview
+ echo 'COMMAND lynx -dump -width=78 -nolist %s' >> /home/$MY_USERNAME/.urlview
+
+ cp -f /etc/Muttrc /home/$MY_USERNAME/.muttrc
+ cp -f /etc/Muttrc /etc/skel/.muttrc
+ cp -f /home/$MY_USERNAME/.urlview /etc/skel/.urlview
+ touch /home/$MY_USERNAME/.mutt-alias
+ cp /home/$MY_USERNAME/.mutt-alias /etc/skel/.mutt-alias
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.muttrc
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.mutt-alias
+
+ # default user on generic images
+ if [ -d /home/${GENERIC_IMAGE_USERNAME} ]; then
+ cp -f /etc/Muttrc /home/${GENERIC_IMAGE_USERNAME}/.muttrc
+ chown ${GENERIC_IMAGE_USERNAME}:${GENERIC_IMAGE_USERNAME} /home/${GENERIC_IMAGE_USERNAME}/.muttrc
+ touch /home/${GENERIC_IMAGE_USERNAME}/.mutt-alias
+ chown ${GENERIC_IMAGE_USERNAME}:${GENERIC_IMAGE_USERNAME} /home/${GENERIC_IMAGE_USERNAME}/.mutt-alias
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function email_archiving {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+
+ # ensure that the mail archive script is up to date
+ if [ -f /usr/local/bin/${PROJECT_NAME}-archive-mail ]; then
+ cp /usr/local/bin/${PROJECT_NAME}-archive-mail /etc/cron.daily/archivemail
+ else
+ if [ -f /usr/bin/${PROJECT_NAME}-archive-mail ]; then
+ cp /usr/bin/${PROJECT_NAME}-archive-mail /etc/cron.daily/archivemail
+ else
+ echo "/usr/bin/${PROJECT_NAME}-archive-mail was not found. ${PROJECT_NAME} might not have fully installed."
+ exit 62379
+ fi
+ fi
+ chmod +x /etc/cron.daily/archivemail
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $INSTALL_DIR/cleanup-maildir "cleanup-maildir commit" "$CLEANUP_MAILDIR_COMMIT" $CLEANUP_MAILDIR_REPO
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir $INSTALL_DIR
+ fi
+ cd $INSTALL_DIR
+ function_check git_clone
+ git_clone $CLEANUP_MAILDIR_REPO $INSTALL_DIR/cleanup-maildir
+ cd $INSTALL_DIR/cleanup-maildir
+ git checkout $CLEANUP_MAILDIR_COMMIT -b $CLEANUP_MAILDIR_COMMIT
+ set_completion_param "cleanup-maildir commit" "$CLEANUP_MAILDIR_COMMIT"
+
+ cp $INSTALL_DIR/cleanup-maildir/cleanup-maildir /usr/bin
+
+ mark_completed $FUNCNAME
+}
+
+# Ensure that the from field is correct when sending email from Mutt
+function email_from_address {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -f /home/$MY_USERNAME/.muttrc ]; then
+ return
+ fi
+ if grep -q "set from=" /home/$MY_USERNAME/.muttrc; then
+ sed -i "s|set from=.*|set from='$MY_NAME <$MY_EMAIL_ADDRESS>'|g" /home/$MY_USERNAME/.muttrc
+ else
+ echo "set from='$MY_NAME <$MY_EMAIL_ADDRESS>'" >> /home/$MY_USERNAME/.muttrc
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function create_public_mailing_list {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [ ! $PUBLIC_MAILING_LIST ]; then
+ return
+ fi
+ # does the mailing list have a separate domain name?
+ if [ ! $PUBLIC_MAILING_LIST_DOMAIN_NAME ]; then
+ PUBLIC_MAILING_LIST_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME
+ fi
+
+ PUBLIC_MAILING_LIST_USER="mlmmj"
+
+ apt-get -yq install mlmmj
+ adduser --system $PUBLIC_MAILING_LIST_USER
+ addgroup $PUBLIC_MAILING_LIST_USER
+ adduser $PUBLIC_MAILING_LIST_USER $PUBLIC_MAILING_LIST_USER
+
+ echo ''
+ echo $"Creating the $PUBLIC_MAILING_LIST mailing list"
+ echo ''
+
+ # create the list
+ mlmmj-make-ml -a -L "$PUBLIC_MAILING_LIST" -c $PUBLIC_MAILING_LIST_USER
+
+ echo 'SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe' > /etc/exim4/conf.d/main/000_localmacros
+ echo "SYSTEM_ALIASES_USER = $PUBLIC_MAILING_LIST_USER" >> /etc/exim4/conf.d/main/000_localmacros
+ echo "SYSTEM_ALIASES_GROUP = $PUBLIC_MAILING_LIST_USER" >> /etc/exim4/conf.d/main/000_localmacros
+
+ # router
+ echo 'mlmmj_router:' > /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' debug_print = "R: mlmmj_router for $local_part@$domain"' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' driver = accept' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' domains = +mlmmj_domains' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' #require_files = MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' # Use this instead, if you dont want to give Exim rx rights to mlmmj spool.' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' # Exim will then spawn a new process running under the UID of "mlmmj".' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' require_files = mlmmj:MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' local_part_suffix = +*' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' headers_remove = Delivered-To' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' headers_add = Delivered-To: $local_part$local_part_suffix@$domain' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+ echo ' transport = mlmmj_transport' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
+
+ # transport
+ echo 'mlmmj_transport:' > /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' debug_print = "T: mlmmj_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' driver = pipe' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' return_path_add' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' user = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' group = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' home_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' current_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+ echo ' command = /usr/bin/mlmmj-receive -F -L MLMMJ_HOME/${lc:$local_part}' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
+
+ if ! grep -q "MLMMJ_HOME=/var/spool/mlmmj" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
+ sed -i '/MAIN CONFIGURATION SETTINGS/a\MLMMJ_HOME=/var/spool/mlmmj' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
+ fi
+ if ! grep -q "domainlist mlmmj_domains =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
+ sed -i "/MLMMJ_HOME/a\domainlist mlmmj_domains = $PUBLIC_MAILING_LIST_DOMAIN_NAME" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
+ fi
+
+
+ if ! grep -q "delay_warning_condition =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
+ sed -i '/domainlist mlmmj_domains =/a\delay_warning_condition = ${if match_domain{$domain}{+mlmmj_domains}{no}{yes}}' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
+ fi
+ if ! grep -q ": +mlmmj_domains" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
+ sed -i 's/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS : +mlmmj_domains/g' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
+ fi
+
+ if ! grep -q "! +mlmmj_domains" /etc/exim4/conf.d/router/200_exim4-config_primary; then
+ sed -i 's/domains = ! +local_domains/domains = ! +mlmmj_domains : ! +local_domains/g' /etc/exim4/conf.d/router/200_exim4-config_primary
+ fi
+ update-exim4.conf.template -r
+ update-exim4.conf
+ systemctl restart exim4
+
+ if ! grep -q $"$PUBLIC_MAILING_LIST mailing list" /home/$MY_USERNAME/README; then
+ echo '' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo $"$PUBLIC_MAILING_LIST mailing list" >> /home/$MY_USERNAME/README
+ echo '=================================' >> /home/$MY_USERNAME/README
+ echo $"To subscribe to the $PUBLIC_MAILING_LIST mailing list send a" >> /home/$MY_USERNAME/README
+ echo $"cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME" >> /home/$MY_USERNAME/README
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
+ chmod 600 /home/$MY_USERNAME/README
+ fi
+
+ ${PROJECT_NAME}-addlist -u $MY_USERNAME -l "$PUBLIC_MAILING_LIST" -s "$PUBLIC_MAILING_LIST"
+
+ mark_completed $FUNCNAME
+}
+
+function create_private_mailing_list {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ # This installation doesn't work, results in ruby errors
+ # There is currently no schleuder package for Debian jessie
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [ ! $PRIVATE_MAILING_LIST ]; then
+ return
+ fi
+ if [[ $PRIVATE_MAILING_LIST == $MY_USERNAME ]]; then
+ echo $'The name of the private mailing list should not be the same as your username'
+ exit 10
+ fi
+ if [ ! $MY_GPG_PUBLIC_KEY ]; then
+ echo $'To create a private mailing list you need to specify a file'
+ echo $'containing your exported GPG key within MY_GPG_PUBLIC_KEY at'
+ echo $'the top of the script'
+ exit 11
+ fi
+ apt-get -yq install ruby ruby-dev ruby-gpgme libgpgme11-dev libmagic-dev
+ gem install schleuder
+ schleuder-fix-gem-dependencies
+ schleuder-init-setup --gem
+ # NOTE: this is version number sensitive and so might need changing
+ ln -s /var/lib/gems/2.1.0/gems/schleuder-2.2.4 /var/lib/schleuder
+ sed -i 's/#smtp_port: 25/smtp_port: 465/g' /etc/schleuder/schleuder.conf
+ sed -i 's/#superadminaddr: root@localhost/superadminaddr: root@localhost' /etc/schleuder/schleuder.conf
+ schleuder-newlist $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME -realname "$PRIVATE_MAILING_LIST" -adminaddress $MY_EMAIL_ADDRESS -initmember $MY_EMAIL_ADDRESS -initmemberkey $MY_GPG_PUBLIC_KEY -nointeractive
+ ${PROJECT_NAME}-addemail -u $MY_USERNAME -e $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME -l $PRIVATE_MAILING_LIST
+
+ echo 'schleuder:' > /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' debug_print = "R: schleuder for $local_part@$domain"' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' driver = accept' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' local_part_suffix = +* : -bounce : -sendkey' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' domains = +local_domains' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' user = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' group = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' require_files = schleuder:+/var/lib/schleuder/$domain/${local_part}' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+ echo ' transport = schleuder_transport' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
+
+ echo 'schleuder_transport:' > /etc/exim4/conf.d/transport/30_exim4-config_schleuder
+ echo ' debug_print = "T: schleuder_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
+ echo ' driver = pipe' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
+ echo ' home_directory = "/var/lib/schleuder/$domain/$local_part"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
+ echo ' command = "/usr/bin/schleuder $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
+ chown -R schleuder:schleuder /var/lib/schleuder
+ update-exim4.conf.template -r
+ update-exim4.conf
+ systemctl restart exim4
+ useradd -d /var/schleuderlists -s /bin/false schleuder
+ adduser Debian-exim schleuder
+ usermod -a -G mail schleuder
+ #exim -d -bt $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME
+ mark_completed $FUNCNAME
+}
+
+function split_gpg_key_into_fragments {
+ # split the gpg key into fragments if social key management is enabled
+ if [[ $ENABLE_SOCIAL_KEY_MANAGEMENT == "yes" ]]; then
+ echo 'Splitting GPG key. You may need to enter your passphrase.'
+ ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME"
+ if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
+ echo 'Yhe GPG key could not be split'
+ exit 86548
+ fi
+ fi
+}
+
+function import_email {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ EMAIL_COMPLETE_MSG=$"
+ *** ${PROJECT_NAME} mailbox installation is complete ***
+
+ Now on your internet router forward ports
+ 25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}
+"
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ if [[ $SYSTEM_TYPE == "mail"* ]]; then
+ function_check backup_to_friends_servers
+ backup_to_friends_servers
+
+ function_check install_tripwire
+ install_tripwire
+
+ function_check split_gpg_key_into_fragments
+ split_gpg_key_into_fragments
+
+ clear
+ echo ''
+ echo "$EMAIL_COMPLETE_MSG"
+ if [ -d $USB_MOUNT ]; then
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ echo $' You can now remove the USB drive'
+ fi
+ exit 0
+ fi
+ return
+ fi
+ mark_completed $FUNCNAME
+ if [[ $SYSTEM_TYPE == "mail"* ]]; then
+ function_check backup_to_friends_servers
+ backup_to_friends_servers
+
+ function_check install_tripwire
+ install_tripwire
+
+ function_check split_gpg_key_into_fragments
+ split_gpg_key_into_fragments
+
+ # unmount any attached usb drive
+ clear
+ echo ''
+ echo "$EMAIL_COMPLETE_MSG"
+ echo ''
+ if [ -d $USB_MOUNT ]; then
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ echo $' You can now remove the USB drive'
+ fi
+ exit 0
+ fi
+}
+
+function remove_email {
+ echo ''
+}
+
+function install_email_with_tor {
+ apt-get -yq remove postfix
+ apt-get -yq install exim4 sasl2-bin swaks libnet-ssleay-perl procmail xinetd
+
+ if [ ! -d /etc/exim4 ]; then
+ echo $"ERROR: Exim does not appear to have installed. $CHECK_MESSAGE"
+ exit 48
+ fi
+
+ onion_service_name='email'
+ if [ ! -d /var/lib/tor ]; then
+ echo $"No Tor installation found. ${onion_service_name} onion site cannot be configured."
+ exit 877367
+ fi
+ if ! grep -q "hidden_service_${onion_service_name}" /etc/tor/torrc; then
+ echo "HiddenServiceDir /var/lib/tor/hidden_service_${onion_service_name}/" >> /etc/tor/torrc
+ echo 'HiddenServicePort 25 127.0.0.1:25' >> /etc/tor/torrc
+ echo 'HiddenServicePort 587 127.0.0.1:587' >> /etc/tor/torrc
+ echo 'HiddenServicePort 465 127.0.0.1:465' >> /etc/tor/torrc
+ echo 'HiddenServicePort 993 127.0.0.1:993' >> /etc/tor/torrc
+ echo $"Added onion site for ${onion_service_name}"
+ fi
+
+ onion_update
+ function_check wait_for_onion_service
+ wait_for_onion_service ${onion_service_name}
+
+ if [ ! -f /var/lib/tor/hidden_service_${onion_service_name}/hostname ]; then
+ echo $"${onion_service_name} onion site hostname not found"
+ exit 76362
+ fi
+ EMAIL_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_${onion_service_name}/hostname)
+
+ if [[ $ONION_ONLY != "no" ]]; then
+ function_check set_hostname
+ set_hostname ${EMAIL_ONION_HOSTNAME}
+ MY_EMAIL_ADDRESS=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}
+ fi
+ set_completion_param "email onion domain" "${EMAIL_ONION_HOSTNAME}"
+
+ # see https://github.com/petterreinholdtsen/exim4-smtorp
+ echo '# tor stuff first' > /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '#' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# if were submitting mail *from* a .tor/.onion address,' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# make sure any header lines that may give us away is' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# stripped out, and add a new, cryptic Message-ID.' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# In address_data we store the name we should HELO as.' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo 'tor_to_any:' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' debug_print = "R: manualroute from .onion to $local_part@$domain"' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' driver = manualroute' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' domains = ! +local_domains' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' condition = ${if match {$sender_address_domain}{\N.*\.(onion|tor)$\N}}' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' address_data = $sender_address_domain' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' transport = remote_smtp_onion' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' self = send' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' route_list = * localhost' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' headers_remove = Received:Message-ID:X-Mailer:User-Agent' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' headers_add = Message-ID: <${lc:${sha1:$message_id}}@$sender_address_domain>' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# this catches the case where were submitting mail' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# from a regular email address where we dont need to' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo '# rewrite any headers' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo 'any_to_tor:' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' debug_print = "R: manualroute for $local_part@$domain"' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' driver = manualroute' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' domains = ! +local_domains' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' transport = remote_smtp_onion' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' self = send' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' route_list = *.onion localhost ; *.tor localhost' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+ echo ' address_data = $smtp_active_hostname' >> /etc/exim4/conf.d/router/100_exim4-smtorp
+
+ echo 'remote_smtp_onion:' > /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' debug_print = "T: remote_smtp_onion for $local_part@$original_domain"' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' driver = smtp' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo '' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' # set helo_data to where we want to connect to,' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' # for the proxy program tor-smtp' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' helo_data = "$address_data $original_domain"' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo '' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' # wherever we configured our script at' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' port = 12668' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo '' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' # cannot use TLS otherwise it will EHLO again!!' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+ echo ' hosts_avoid_tls = *' >> /etc/exim4/conf.d/transport/100_exim4-smtorp
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+ cd $INSTALL_DIR
+ function_check git_clone
+ git_clone $EXIM_ONION_REPO $INSTALL_DIR/exim4-smtorp
+ cd $INSTALL_DIR/exim4-smtorp/tor-smtp
+ make
+ if [ ! -f $INSTALL_DIR/exim4-smtorp/tor-smtp/tor-smtp ]; then
+ echo $'Unable to make tor smtp transport'
+ exit 52629
+ fi
+ if [ ! -d /usr/lib/exim4-smtorp ]; then
+ mkdir /usr/lib/exim4-smtorp
+ fi
+ cp $INSTALL_DIR/exim4-smtorp/tor-smtp/tor-smtp /usr/lib/exim4-smtorp/tor-smtp
+ if [ ! -f /usr/lib/exim4-smtorp/tor-smtp ]; then
+ echo $'Unable to copy tor-smtp'
+ exit 83503
+ fi
+ cp $INSTALL_DIR/exim4-smtorp/xinetd /etc/xinetd.d/tor-smtp
+ if [ ! -f /etc/xinetd.d/tor-smtp ]; then
+ echo $'Unable to copy to xinetd.d'
+ exit 835954
+ fi
+ systemctl restart xinetd
+
+ # configure for Maildir format
+ sed -i 's/MAIL_DIR/#MAIL_DIR/g' /etc/login.defs
+ sed -i 's|#MAIL_FILE.*|MAIL_FILE Maildir/|g' /etc/login.defs
+
+ if ! grep -q "export MAIL" /etc/profile; then
+ echo 'export MAIL=~/Maildir' >> /etc/profile
+ fi
+
+ sed -i 's|pam_mail.so standard|pam_mail.so dir=~/Maildir standard|g' /etc/pam.d/login
+ sed -i 's|pam_mail.so standard noenv|pam_mail.so dir=~/Maildir standard|g' /etc/pam.d/sshd
+ sed -i 's|pam_mail.so nopen|pam_mail.so dir=~/Maildir nopen|g' /etc/pam.d/su
+
+ echo "dc_eximconfig_configtype='internet'" > /etc/exim4/update-exim4.conf.conf
+ if [[ $ONION_ONLY == "no" ]]; then
+ # both ICANN and onion domains
+ echo "dc_other_hostnames='${DEFAULT_DOMAIN_NAME};mail.${DEFAULT_DOMAIN_NAME};${EMAIL_ONION_HOSTNAME}'" >> /etc/exim4/update-exim4.conf.conf
+ else
+ echo "dc_other_hostnames='${EMAIL_ONION_HOSTNAME}'" >> /etc/exim4/update-exim4.conf.conf
+ fi
+ echo "dc_local_interfaces=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_readhost=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_relay_domains=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_minimaldns='false'" >> /etc/exim4/update-exim4.conf.conf
+ IPv4_address=$(get_ipv4_address)
+ IPv4_address_base=$(echo "$IPv4_address" | awk -F '.' '{print $1"."$2"."$3}')
+ RELAY_NETS="${IPv4_address_base}.0/24"
+ if [ $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
+ RELAY_NETS=$(echo $LOCAL_NETWORK_STATIC_IP_ADDRESS | awk -F '.' '{print $1 "." $2 "." $3 ".0/24"}')
+ fi
+ echo "dc_relay_nets='$RELAY_NETS'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_smarthost=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "CFILEMODE='644'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_use_split_config='false'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_hide_mailname=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_mailname_in_oh='true'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_localdelivery='maildir_home'" >> /etc/exim4/update-exim4.conf.conf
+ update-exim4.conf
+ sed -i "s/START=no/START=yes/g" /etc/default/saslauthd
+ systemctl start saslauthd
+
+ # make a tls certificate for email
+ if [ ! -f /etc/ssl/certs/exim.dhparam ]; then
+ ${PROJECT_NAME}-addcert -h exim --dhkey $DH_KEYLENGTH
+ check_certificates exim
+ fi
+ cp /etc/ssl/private/exim.key /etc/exim4
+ cp /etc/ssl/certs/exim.crt /etc/exim4
+ cp /etc/ssl/certs/exim.dhparam /etc/exim4
+ chown root:Debian-exim /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
+ chmod 640 /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
+
+ sed -i '/login_saslauthd_server/,/.endif/ s/# *//' /etc/exim4/exim4.conf.template
+ if ! grep -q "MAIN_TLS_ENABLE = true" /etc/exim4/exim4.conf.template; then
+ sed -i "/.ifdef MAIN_HARDCODE_PRIMARY_HOSTNAME/i\MAIN_HARDCODE_PRIMARY_HOSTNAME =\nMAIN_TLS_ENABLE = true" /etc/exim4/exim4.conf.template
+ else
+ sed -i "s|MAIN_HARDCODE_PRIMARY_HOSTNAME =.*|MAIN_HARDCODE_PRIMARY_HOSTNAME =|g" /etc/exim4/exim4.conf.template
+ fi
+ sed -i "s|SMTPLISTENEROPTIONS=''|SMTPLISTENEROPTIONS='-oX 465:25:587 -oP /var/run/exim4/exim.pid'|g" /etc/default/exim4
+ if ! grep -q "tls_on_connect_ports=465" /etc/exim4/exim4.conf.template; then
+ sed -i '/SSL configuration for exim/i\tls_on_connect_ports=465' /etc/exim4/exim4.conf.template
+ fi
+ if ! grep -q "# don't send system passwords" /etc/exim4/exim4.conf.template; then
+ sed -i "s|don't send system passwords.*|# don't send system passwords unencrypted|g" /etc/exim4/exim4.conf.template
+ fi
+
+ adduser $MY_USERNAME sasl
+ addgroup Debian-exim sasl
+ systemctl restart exim4
+ if [ ! -d /etc/skel/log ]; then
+ mkdir -m 700 /etc/skel/log
+ fi
+ if [ ! -d /etc/skel/Maildir ]; then
+ mkdir -m 700 /etc/skel/.mutt
+ mkdir -m 700 /etc/skel/Maildir
+ mkdir -m 700 /etc/skel/Maildir/new
+ mkdir -m 700 /etc/skel/Maildir/cur
+ mkdir -m 700 /etc/skel/Maildir/Sent
+ mkdir -m 700 /etc/skel/Maildir/Sent/tmp
+ mkdir -m 700 /etc/skel/Maildir/Sent/cur
+ mkdir -m 700 /etc/skel/Maildir/Sent/new
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam/cur
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam/new
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam/tmp
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham/cur
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham/new
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham/tmp
+ ln -s /etc/skel/Maildir/.learn-spam /etc/skel/Maildir/spam
+ ln -s /etc/skel/Maildir/.learn-ham /etc/skel/Maildir/ham
+ fi
+
+ if [ ! -d /home/$MY_USERNAME/Maildir ]; then
+ mkdir -m 700 /home/$MY_USERNAME/.mutt
+ mkdir -m 700 /home/$MY_USERNAME/Maildir
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/tmp
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/tmp
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/tmp
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/tmp
+ ln -s /home/$MY_USERNAME/Maildir/.learn-spam /home/$MY_USERNAME/Maildir/spam
+ ln -s /home/$MY_USERNAME/Maildir/.learn-ham /home/$MY_USERNAME/Maildir/ham
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir
+ fi
+
+ function_check configure_firewall_for_email
+ configure_firewall_for_email
+ dpkg-reconfigure --frontend noninteractive exim4-config
+}
+
+function install_email_basic {
+ apt-get -yq remove postfix
+ apt-get -yq install exim4 sasl2-bin swaks libnet-ssleay-perl procmail
+
+ if [ ! -d /etc/exim4 ]; then
+ echo $"ERROR: Exim does not appear to have installed. $CHECK_MESSAGE"
+ exit 48
+ fi
+
+ # configure for Maildir format
+ sed -i 's/MAIL_DIR/#MAIL_DIR/g' /etc/login.defs
+ sed -i 's|#MAIL_FILE.*|MAIL_FILE Maildir/|g' /etc/login.defs
+
+ if ! grep -q "export MAIL" /etc/profile; then
+ echo 'export MAIL=~/Maildir' >> /etc/profile
+ fi
+
+ sed -i 's|pam_mail.so standard|pam_mail.so dir=~/Maildir standard|g' /etc/pam.d/login
+ sed -i 's|pam_mail.so standard noenv|pam_mail.so dir=~/Maildir standard|g' /etc/pam.d/sshd
+ sed -i 's|pam_mail.so nopen|pam_mail.so dir=~/Maildir nopen|g' /etc/pam.d/su
+
+ echo "dc_eximconfig_configtype='internet'" > /etc/exim4/update-exim4.conf.conf
+ echo "dc_other_hostnames='${DEFAULT_DOMAIN_NAME};mail.${DEFAULT_DOMAIN_NAME}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_local_interfaces=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_readhost=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_relay_domains=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_minimaldns='false'" >> /etc/exim4/update-exim4.conf.conf
+ IPv4_address=$(get_ipv4_address)
+ IPv4_address_base=$(echo "$IPv4_address" | awk -F '.' '{print $1"."$2"."$3}')
+ RELAY_NETS="${IPv4_address_base}.0/24"
+ if [ $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
+ RELAY_NETS=$(echo $LOCAL_NETWORK_STATIC_IP_ADDRESS | awk -F '.' '{print $1 "." $2 "." $3 ".0/24"}')
+ fi
+ echo "dc_relay_nets='$RELAY_NETS'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_smarthost=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "CFILEMODE='644'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_use_split_config='false'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_hide_mailname=''" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_mailname_in_oh='true'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_localdelivery='maildir_home'" >> /etc/exim4/update-exim4.conf.conf
+ update-exim4.conf
+ sed -i "s/START=no/START=yes/g" /etc/default/saslauthd
+ systemctl start saslauthd
+
+ # make a tls certificate for email
+ if [ ! -f /etc/ssl/certs/exim.dhparam ]; then
+ ${PROJECT_NAME}-addcert -h exim --dhkey $DH_KEYLENGTH
+ check_certificates exim
+ fi
+ cp /etc/ssl/private/exim.key /etc/exim4
+ cp /etc/ssl/certs/exim.crt /etc/exim4
+ cp /etc/ssl/certs/exim.dhparam /etc/exim4
+ chown root:Debian-exim /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
+ chmod 640 /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
+
+ if [ ! -d /etc/skel/log ]; then
+ mkdir -m 700 /etc/skel/log
+ fi
+ if [ ! -d /etc/skel/Maildir ]; then
+ mkdir -m 700 /etc/skel/.mutt
+ mkdir -m 700 /etc/skel/Maildir
+ mkdir -m 700 /etc/skel/Maildir/new
+ mkdir -m 700 /etc/skel/Maildir/cur
+ mkdir -m 700 /etc/skel/Maildir/Sent
+ mkdir -m 700 /etc/skel/Maildir/Sent/tmp
+ mkdir -m 700 /etc/skel/Maildir/Sent/cur
+ mkdir -m 700 /etc/skel/Maildir/Sent/new
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam/cur
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam/new
+ mkdir -m 700 /etc/skel/Maildir/.learn-spam/tmp
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham/cur
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham/new
+ mkdir -m 700 /etc/skel/Maildir/.learn-ham/tmp
+ ln -s /etc/skel/Maildir/.learn-spam /etc/skel/Maildir/spam
+ ln -s /etc/skel/Maildir/.learn-ham /etc/skel/Maildir/ham
+ fi
+
+ if [ ! -d /home/$MY_USERNAME/Maildir ]; then
+ mkdir -m 700 /home/$MY_USERNAME/.mutt
+ mkdir -m 700 /home/$MY_USERNAME/Maildir
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/tmp
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/tmp
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/Sent/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-spam/tmp
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/cur
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/new
+ mkdir -m 700 /home/$MY_USERNAME/Maildir/.learn-ham/tmp
+ ln -s /home/$MY_USERNAME/Maildir/.learn-spam /home/$MY_USERNAME/Maildir/spam
+ ln -s /home/$MY_USERNAME/Maildir/.learn-ham /home/$MY_USERNAME/Maildir/ham
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir
+ fi
+
+ function_check configure_firewall_for_email
+ configure_firewall_for_email
+
+ dpkg-reconfigure --frontend noninteractive exim4-config
+ systemctl restart exim4
+}
+
+function email_change_relay {
+ curr_ip_address="$1"
+ email_relay_base=$(echo "$curr_ip_address" | awk -F '.' '{print $1"."$2"."$3}')
+ RELAY_NETS="${email_relay_base}.0/24"
+ sed -i "s|dc_relay_nets=.*|dc_relay_nets='$RELAY_NETS'|g" /etc/exim4/update-exim4.conf.conf
+ dpkg-reconfigure --frontend noninteractive exim4-config
+}
+
+function create_procmail {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [ ! -f /home/$MY_USERNAME/.procmailrc ]; then
+ echo 'MAILDIR=$HOME/Maildir' > /home/$MY_USERNAME/.procmailrc
+ echo 'DEFAULT=$MAILDIR/' >> /home/$MY_USERNAME/.procmailrc
+ echo 'LOGFILE=$HOME/log/procmail.log' >> /home/$MY_USERNAME/.procmailrc
+ echo 'LOGABSTRACT=all' >> /home/$MY_USERNAME/.procmailrc
+ echo '' >> /home/$MY_USERNAME/.procmailrc
+ echo $"# Tripwire reports which have no violations don't need to be logged" >> /home/$MY_USERNAME/.procmailrc
+ echo ':0 BD:' >> /home/$MY_USERNAME/.procmailrc
+ TRIPWIRE_VIOLATIONS_STR=$'Total violations found: 0'
+ echo " * .*$TRIPWIRE_VIOLATIONS_STR" >> /home/$MY_USERNAME/.procmailrc
+ echo '/dev/null' >> /home/$MY_USERNAME/.procmailrc
+ echo '' >> /home/$MY_USERNAME/.procmailrc
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
+ fi
+
+ mkdir -p /home/$MY_USERNAME/Maildir/admin/new
+ mkdir -p /home/$MY_USERNAME/Maildir/admin/cur
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir/admin
+
+ if [ ! -f /etc/skel/.procmailrc ]; then
+ cp /home/$MY_USERNAME/.procmailrc /etc/skel/.procmailrc
+ chown root:root /etc/skel/.procmailrc
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function handle_admin_emails {
+ # keep emails for root in a separate folder
+ if [ -d /home/$MY_USERNAME/Maildir/admin ]; then
+ return
+ fi
+
+ ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "root@$DEFAULT_DOMAIN_NAME" -g admin --public no
+}
+
+function spam_filtering {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install exim4-daemon-heavy
+ apt-get -yq install spamassassin
+ if [ ! -f /etc/default/spamassassin ]; then
+ echo 'Spamassassin was not installed'
+ exit 72570
+ fi
+ sa-update -v
+ sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/spamassassin
+ sed -i 's/# spamd_address = 127.0.0.1 783/spamd_address = 127.0.0.1 783/g' /etc/exim4/exim4.conf.template
+ # This configuration is based on https://wiki.debian.org/DebianSpamAssassin
+ sed -i 's/local_parts = postmaster/local_parts = postmaster:abuse/g' /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt
+ sed -i '/domains = +local_domains : +relay_to_domains/a\ set acl_m0 = rfcnames' /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt
+ sed -i 's/accept/accept condition = ${if eq{$acl_m0}{rfcnames} {1}{0}}/g' /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo 'warn message = X-Spam-Score: $spam_score ($spam_bar)' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo ' spam = nobody:true' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo 'warn message = X-Spam-Flag: YES' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo ' spam = nobody' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo 'warn message = X-Spam-Report: $spam_report' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo ' spam = nobody' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo '# reject spam at high scores (> 12)' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo 'deny message = This message scored $spam_score spam points.' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo ' spam = nobody:true' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ echo ' condition = ${if >{$spam_score_int}{120}{1}{0}}' >> /etc/exim4/conf.d/acl/40_exim4-config_check_data
+ # procmail configuration
+ echo '# get spamassassin to check emails' >> /home/$MY_USERNAME/.procmailrc
+ echo ':0fw: .spamassassin.lock' >> /home/$MY_USERNAME/.procmailrc
+ echo ' * < 256000' >> /home/$MY_USERNAME/.procmailrc
+ echo '| spamc' >> /home/$MY_USERNAME/.procmailrc
+ echo '# strong spam are discarded' >> /home/$MY_USERNAME/.procmailrc
+ echo ':0' >> /home/$MY_USERNAME/.procmailrc
+ echo ' * ^X-Spam-Level: \*\*\*\*\*\*' >> /home/$MY_USERNAME/.procmailrc
+ echo '/dev/null' >> /home/$MY_USERNAME/.procmailrc
+ echo '# weak spam are kept just in case - clear this out every now and then' >> /home/$MY_USERNAME/.procmailrc
+ echo ':0' >> /home/$MY_USERNAME/.procmailrc
+ echo ' * ^X-Spam-Level: \*\*\*\*\*' >> /home/$MY_USERNAME/.procmailrc
+ echo 'maybe-spam/' >> /home/$MY_USERNAME/.procmailrc
+ echo '# otherwise, marginal spam goes here for revision' >> /home/$MY_USERNAME/.procmailrc
+ echo ':0' >> /home/$MY_USERNAME/.procmailrc
+ echo ' * ^X-Spam-Level: \*\*' >> /home/$MY_USERNAME/.procmailrc
+ echo 'spam/' >> /home/$MY_USERNAME/.procmailrc
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
+ echo '# get spamassassin to check emails' >> /etc/skel/.procmailrc
+ echo ':0fw: .spamassassin.lock' >> /etc/skel/.procmailrc
+ echo ' * < 256000' >> /etc/skel/.procmailrc
+ echo '| spamc' >> /etc/skel/.procmailrc
+ echo '# strong spam are discarded' >> /etc/skel/.procmailrc
+ echo ':0' >> /etc/skel/.procmailrc
+ echo ' * ^X-Spam-Level: \*\*\*\*\*\*' >> /etc/skel/.procmailrc
+ echo '/dev/null' >> /etc/skel/.procmailrc
+ echo '# weak spam are kept just in case - clear this out every now and then' >> /etc/skel/.procmailrc
+ echo ':0' >> /etc/skel/.procmailrc
+ echo ' * ^X-Spam-Level: \*\*\*\*\*' >> /etc/skel/.procmailrc
+ echo 'maybe-spam/' >> /etc/skel/.procmailrc
+ echo '# otherwise, marginal spam goes here for revision' >> /etc/skel/.procmailrc
+ echo ':0' >> /etc/skel/.procmailrc
+ echo ' * ^X-Spam-Level: \*\*' >> /etc/skel/.procmailrc
+ echo 'spam/' >> /etc/skel/.procmailrc
+ # filtering scripts
+ echo '#!/bin/bash' > /usr/bin/filterspam
+ echo 'for d in /home/*/ ; do' >> /usr/bin/filterspam
+ echo ' USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterspam
+ echo ' if [[ $USERNAME != "git" && $USERNAME != "go" && $USERNAME != "gogs" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then' >> /usr/bin/filterspam
+ echo ' MAILDIR=/home/$USERNAME/Maildir/.learn-spam' >> /usr/bin/filterspam
+ echo ' if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterspam
+ echo ' exit' >> /usr/bin/filterspam
+ echo ' fi' >> /usr/bin/filterspam
+ echo ' for f in `ls $MAILDIR/cur`' >> /usr/bin/filterspam
+ echo ' do' >> /usr/bin/filterspam
+ echo ' spamc -L spam < "$MAILDIR/cur/$f" > /dev/null' >> /usr/bin/filterspam
+ echo ' rm "$MAILDIR/cur/$f"' >> /usr/bin/filterspam
+ echo ' done' >> /usr/bin/filterspam
+ echo ' for f in `ls $MAILDIR/new`' >> /usr/bin/filterspam
+ echo ' do' >> /usr/bin/filterspam
+ echo ' spamc -L spam < "$MAILDIR/new/$f" > /dev/null' >> /usr/bin/filterspam
+ echo ' rm "$MAILDIR/new/$f"' >> /usr/bin/filterspam
+ echo ' done' >> /usr/bin/filterspam
+ echo ' fi' >> /usr/bin/filterspam
+ echo 'done' >> /usr/bin/filterspam
+ echo 'exit 0' >> /usr/bin/filterspam
+
+ echo '#!/bin/bash' > /usr/bin/filterham
+ echo 'for d in /home/*/ ; do' >> /usr/bin/filterham
+ echo ' USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterham
+ echo ' if [[ $USERNAME != "git" && $USERNAME != "go" && $USERNAME != "gogs" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then' >> /usr/bin/filterham
+ echo ' MAILDIR=/home/$USERNAME/Maildir/.learn-ham' >> /usr/bin/filterham
+ echo ' if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterham
+ echo ' exit' >> /usr/bin/filterham
+ echo ' fi' >> /usr/bin/filterham
+ echo ' for f in `ls $MAILDIR/cur`' >> /usr/bin/filterham
+ echo ' do' >> /usr/bin/filterham
+ echo ' spamc -L ham < "$MAILDIR/cur/$f" > /dev/null' >> /usr/bin/filterham
+ echo ' rm "$MAILDIR/cur/$f"' >> /usr/bin/filterham
+ echo ' done' >> /usr/bin/filterham
+ echo ' for f in `ls $MAILDIR/new`' >> /usr/bin/filterham
+ echo ' do' >> /usr/bin/filterham
+ echo ' spamc -L ham < "$MAILDIR/new/$f" > /dev/null' >> /usr/bin/filterham
+ echo ' rm "$MAILDIR/new/$f"' >> /usr/bin/filterham
+ echo ' done' >> /usr/bin/filterham
+ echo ' fi' >> /usr/bin/filterham
+ echo 'done' >> /usr/bin/filterham
+ echo 'exit 0' >> /usr/bin/filterham
+
+ function_check cron_add_mins
+ cron_add_mins 3 '/usr/bin/timeout 120 /usr/bin/filterspam'
+ cron_add_mins 3 '/usr/bin/timeout 120 /usr/bin/filterham'
+ chmod 655 /usr/bin/filterspam /usr/bin/filterham
+ sed -i 's/# use_bayes 1/use_bayes 1/g' /etc/mail/spamassassin/local.cf
+ sed -i 's/# bayes_auto_learn 1/bayes_auto_learn 1/g' /etc/mail/spamassassin/local.cf
+
+ # user preferences
+ if [ ! -d /home/$MY_USERNAME/.spamassassin ]; then
+ mkdir /home/$MY_USERNAME/.spamassassin
+ echo $'# How many points before a mail is considered spam.' > /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# required_score 5' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# Whitelist and blacklist addresses are now file-glob-style patterns, so' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# "friend@somewhere.com", "*@isp.com", or "*.domain.net" will all work.' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# whitelist_from someone@somewhere.com' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# Add your own customised scores for some tests below. The default scores are' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# read from the installed spamassassin rules files, but you can override them' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# here. To see the list of tests and their default scores, go to' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# http://spamassassin.apache.org/tests.html .' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '#' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score SYMBOLIC_TEST_NAME n.nn' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# Speakers of Asian languages, like Chinese, Japanese and Korean, will almost' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# definitely want to uncomment the following lines. They will switch off some' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# rules that detect 8-bit characters, which commonly trigger on mails using CJK' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# character sets, or that assume a western-style charset is in use. ' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# ' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score HTML_COMMENT_8BITS 0' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score UPPERCASE_25_50 0' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score UPPERCASE_50_75 0' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score UPPERCASE_75_100 0' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score OBSCURED_EMAIL 0' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# Speakers of any language that uses non-English, accented characters may wish' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# to uncomment the following lines. They turn off rules that fire on' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# misformatted messages generated by common mail apps in contravention of the' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo $'# email RFCs.' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ echo '# score SUBJ_ILLEGAL_CHARS 0' >> /home/$MY_USERNAME/.spamassassin/user_prefs
+ fi
+ # this must be accessible by root
+ chown -R $MY_USERNAME:root /home/$MY_USERNAME/.spamassassin
+
+ # script to keep spamassassin running
+ # There is a systemd script from the debian package, but it doesn't restart on failure
+ # and also doesn't ensure start after networking is up. If that is eventually fixed
+ # then this script and the cron job which runs it can be removed.
+ script_name=/usr/bin/run-spamassassin
+ echo '#!/bin/bash' > $script_name
+ echo 'current_state=$(systemctl status spamassassin)' >> $script_name
+ echo 'if [[ "$current_state" != *"(running)"* ]]; then' >> $script_name
+ echo ' systemctl restart spamassassin' >> $script_name
+ echo 'fi' >> $script_name
+ echo 'exit 0' >> $script_name
+ chmod +x $script_name
+
+ systemctl start spamassassin
+ systemctl restart exim4
+ systemctl restart cron
+ function_check cron_add_mins
+ cron_add_mins 10 "$script_name 2> /dev/null"
+
+ mark_completed $FUNCNAME
+}
+
+function configure_imap {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ dpkg -P dovecot-imapd
+ dpkg -P dovecot-core
+ apt-get -yq install dovecot-imapd
+
+ if [ ! -d /etc/dovecot ]; then
+ echo $"ERROR: Dovecot does not appear to have installed. $CHECK_MESSAGE"
+ exit 48
+ fi
+
+ if [[ $ONION_ONLY == 'no' ]]; then
+ # obtain a cert for the default domain
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ echo $'Obtaining certificate for the main domain'
+ create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
+ fi
+ fi
+
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "0" ]]; then
+ if [[ "$(cert_exists dovecot)" == "0" ]]; then
+ ${PROJECT_NAME}-addcert -h dovecot --dhkey $DH_KEYLENGTH
+ check_certificates dovecot
+ fi
+ fi
+
+ groupadd default
+ usermod -g default dovecot
+
+ chown root:default /etc/ssl/certs/dovecot.*
+ chown root:default /etc/ssl/private/dovecot.*
+ chown root:default /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.*
+ chown root:default /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.*
+
+ if [ ! -f /etc/dovecot/conf.d/10-ssl.conf ]; then
+ echo $'Unable to find /etc/dovecot/conf.d/10-ssl.conf'
+ exit 83629
+ fi
+ sed -i 's|#ssl =.*|ssl = required|g' /etc/dovecot/conf.d/10-ssl.conf
+ sed -i 's|ssl =.*|ssl = required|g' /etc/dovecot/conf.d/10-ssl.conf
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ sed -i "s|#ssl_cert =.*|ssl_cert = > /etc/dovecot/conf.d/10-ssl.conf
+
+ if [ ! -f /etc/dovecot/conf.d/10-master.conf ]; then
+ echo $'Unable to find /etc/dovecot/conf.d/10-master.conf'
+ exit 49259
+ fi
+ sed -i 's/#process_limit =.*/process_limit = 100/g' /etc/dovecot/conf.d/10-master.conf
+
+ if [ ! -f /etc/dovecot/conf.d/10-logging.conf ]; then
+ echo $'Unable to find /etc/dovecot/conf.d/10-logging.conf'
+ exit 48936
+ fi
+ sed -i 's/#auth_verbose.*/auth_verbose = yes/g' /etc/dovecot/conf.d/10-logging.conf
+
+ if [ ! -f /etc/dovecot/dovecot.conf ]; then
+ echo $'Unable to find /etc/dovecot/dovecot.conf'
+ exit 43890
+ fi
+ sed -i 's/#listen =.*/listen = */g' /etc/dovecot/dovecot.conf
+
+ if [ ! -f /etc/dovecot/conf.d/10-auth.conf ]; then
+ echo $'Unable to find /etc/dovecot/conf.d/10-auth.conf'
+ exit 843256
+ fi
+ sed -i 's/#disable_plaintext_auth =.*/disable_plaintext_auth = no/g' /etc/dovecot/conf.d/10-auth.conf
+ sed -i 's/auth_mechanisms =.*/auth_mechanisms = plain login/g' /etc/dovecot/conf.d/10-auth.conf
+
+ if [ ! -f /etc/dovecot/conf.d/10-mail.conf ]; then
+ echo $'Unable to find /etc/dovecot/conf.d/10-mail.conf'
+ exit 42036
+ fi
+ sed -i 's|mail_location =.*|mail_location = maildir:~/Maildir:LAYOUT=fs|g' /etc/dovecot/conf.d/10-mail.conf
+
+ # This long notify interval makes the system more suited for use with
+ # battery powered mobile devices
+ sed -i 's|#imap_idle_notify_interval =.*|imap_idle_notify_interval = 29|g' /etc/dovecot/conf.d/20-imap.conf
+
+ if [ -f /var/lib/dovecot/ssl-parameters.dat ]; then
+ rm /var/lib/dovecot/ssl-parameters.dat
+ fi
+
+ if [ -f /etc/systemd/system/sockets.target.wants/dovecot.socket ]; then
+ rm /etc/systemd/system/sockets.target.wants/dovecot.socket
+ fi
+
+ # Separate logging, otherwise syslog is used
+ if ! grep "# logging" /etc/dovecot/dovecot.conf; then
+ echo '' >> /etc/dovecot/dovecot.conf
+ echo '# logging' >> /etc/dovecot/dovecot.conf
+ echo 'log_path = /var/log/dovecot.log' >> /etc/dovecot/dovecot.conf
+ echo 'info_log_path = /var/log/dovecot-info.log' >> /etc/dovecot/dovecot.conf
+ echo 'debug_log_path = /var/log/dovecot-debug.log' >> /etc/dovecot/dovecot.conf
+ fi
+
+ systemctl restart dovecot
+ mark_completed $FUNCNAME
+}
+
+function configure_imap_client_certs {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ # http://strange.systems/certificate-based-auth-with-dovecot-sendmail/
+ sed -i 's|#default_process_limit =.*|default_process_limit = 100|g' /etc/dovecot/conf.d/10-master.conf
+ sed -i 's/disable_plaintext_auth =.*/disable_plaintext_auth = yes/g' /etc/dovecot/conf.d/10-auth.conf
+ sed -i 's|#auth_ssl_require_client_cert =.*|auth_ssl_require_client_cert = yes|g' /etc/dovecot/conf.d/10-auth.conf
+ sed -i 's|#auth_ssl_username_from_cert =.*|auth_ssl_username_from_cert = yes|g' /etc/dovecot/conf.d/10-auth.conf
+ sed -i "s|#ssl_ca =.*|ssl_ca = /etc/ssl/certs/ca-$DEFAULT_DOMAIN_NAME.crt|g" /etc/dovecot/conf.d/10-ssl.conf
+ sed -i 's|#ssl_cert_username_field =.*|ssl_cert_username_field = commonName|g' /etc/dovecot/conf.d/10-ssl.conf
+ sed -i 's|#ssl_verify_client_cert =.*|ssl_verify_client_cert = yes|g' /etc/dovecot/conf.d/10-ssl.conf
+ if ! grep -q "passdb {" /etc/dovecot/conf.d/10-auth.conf; then
+ echo '' >> /etc/dovecot/conf.d/10-auth.conf
+ echo 'passdb {' >> /etc/dovecot/conf.d/10-auth.conf
+ echo ' driver = passwd-file' >> /etc/dovecot/conf.d/10-auth.conf
+ echo ' args = /etc/dovecot/passwd-file' >> /etc/dovecot/conf.d/10-auth.conf
+ echo ' deny = no' >> /etc/dovecot/conf.d/10-auth.conf
+ echo ' master = no' >> /etc/dovecot/conf.d/10-auth.conf
+ echo ' pass = no' >> /etc/dovecot/conf.d/10-auth.conf
+ echo '}' >> /etc/dovecot/conf.d/10-auth.conf
+ fi
+ if [[ $ONION_ONLY == "no" ]]; then
+ # make a CA cert
+ if [ ! -f /etc/ssl/private/ca-$DEFAULT_DOMAIN_NAME.key ]; then
+ if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
+ ${PROJECT_NAME}-addcert -h $DEFAULT_DOMAIN_NAME --ca "" --dhkey $DH_KEYLENGTH
+ else
+ ${PROJECT_NAME}-addcert -e $DEFAULT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --ca "" --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
+ fi
+ fi
+ fi
+ # CA configuration
+ echo '[ ca ]' > /etc/ssl/dovecot-ca.cnf
+ echo "default_ca = dovecot-ca" >> /etc/ssl/dovecot-ca.cnf
+ echo '' >> /etc/ssl/dovecot-ca.cnf
+ echo '[ crl_ext ]' >> /etc/ssl/dovecot-ca.cnf
+ echo 'authorityKeyIdentifier=keyid:always' >> /etc/ssl/dovecot-ca.cnf
+ echo '' >> /etc/ssl/dovecot-ca.cnf
+ echo '[ dovecot-ca ]' >> /etc/ssl/dovecot-ca.cnf
+ echo 'new_certs_dir = .' >> /etc/ssl/dovecot-ca.cnf
+ echo 'unique_subject = no' >> /etc/ssl/dovecot-ca.cnf
+ echo "certificate = /etc/ssl/certs/ca-$DEFAULT_DOMAIN_NAME.crt" >> /etc/ssl/dovecot-ca.cnf
+ echo 'database = ssldb' >> /etc/ssl/dovecot-ca.cnf
+ echo "private_key = /etc/ssl/private/ca-$DEFAULT_DOMAIN_NAME.key" >> /etc/ssl/dovecot-ca.cnf
+ echo 'serial = sslserial' >> /etc/ssl/dovecot-ca.cnf
+ echo 'default_days = 3650' >> /etc/ssl/dovecot-ca.cnf
+ echo 'default_md = sha256' >> /etc/ssl/dovecot-ca.cnf
+ echo 'default_bits = 4096' >> /etc/ssl/dovecot-ca.cnf
+ echo 'policy = dovecot-ca_policy' >> /etc/ssl/dovecot-ca.cnf
+ echo 'x509_extensions = dovecot-ca_extensions' >> /etc/ssl/dovecot-ca.cnf
+ echo '' >> /etc/ssl/dovecot-ca.cnf
+ echo '[ dovecot-ca_policy ]' >> /etc/ssl/dovecot-ca.cnf
+ echo 'commonName = supplied' >> /etc/ssl/dovecot-ca.cnf
+ echo 'stateOrProvinceName = supplied' >> /etc/ssl/dovecot-ca.cnf
+ echo 'countryName = supplied' >> /etc/ssl/dovecot-ca.cnf
+ echo 'emailAddress = optional' >> /etc/ssl/dovecot-ca.cnf
+ echo 'organizationName = supplied' >> /etc/ssl/dovecot-ca.cnf
+ echo 'organizationalUnitName = optional' >> /etc/ssl/dovecot-ca.cnf
+ echo '' >> /etc/ssl/dovecot-ca.cnf
+ echo '[ dovecot-ca_extensions ]' >> /etc/ssl/dovecot-ca.cnf
+ echo 'basicConstraints = CA:false' >> /etc/ssl/dovecot-ca.cnf
+ echo 'subjectKeyIdentifier = hash' >> /etc/ssl/dovecot-ca.cnf
+ echo 'authorityKeyIdentifier = keyid:always' >> /etc/ssl/dovecot-ca.cnf
+ echo 'keyUsage = digitalSignature,keyEncipherment' >> /etc/ssl/dovecot-ca.cnf
+ echo 'extendedKeyUsage = clientAuth' >> /etc/ssl/dovecot-ca.cnf
+ if [ -f /etc/ssl/ssldb ]; then
+ rm /etc/ssl/ssldb
+ fi
+ if [ -f /etc/ssl/sslserial ]; then
+ rm /etc/ssl/sslserial
+ fi
+ touch /etc/ssl/ssldb
+ echo 0001 > /etc/ssl/sslserial
+ #${PROJECT_NAME}-clientcert -u $MY_USERNAME
+ systemctl restart dovecot
+ mark_completed $FUNCNAME
+}
+
+function create_gpg_subkey {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install gnupg
+
+ GPG_KEY_USAGE=$1
+ if [[ $GPG_KEY_USAGE != "sign" && $GPG_KEY_USAGE != "auth" && $GPG_KEY_USAGE != "encrypt" ]]; then
+ echo $"Unknown subkey usage: $GPG_KEY_USAGE"
+ echo $'Available types: sign|auth|encrypt'
+ exit 14783
+ fi
+
+ KEYGRIP=$(gpg --fingerprint --fingerprint $MY_EMAIL_ADDRESS | grep fingerprint | tail -1 | cut -d= -f2 | sed -e 's/ //g')
+
+ # Generate a GPG subkey
+ # Here a 2048bit length is used to be compatible with yubikey
+ echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Key-Grip: $KEYGRIP" > /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Subkey-Type: 1' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Subkey-Length: 2048' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "subkey-Usage: $GPG_KEY_USAGE" > /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Real: $MY_NAME" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Email: $MY_EMAIL_ADDRESS" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Comment: $GPG_KEY_USAGE" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Expire-Date: 0' >> /home/$MY_USERNAME/gpg-genkey.conf
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
+ su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
+ shred -zu /home/$MY_USERNAME/gpg-genkey.conf
+ MY_GPG_SUBKEY_ID=$(su -c "gpg --list-keys $MY_EMAIL_ADDRESS | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+
+ mark_completed $FUNCNAME
+}
+
+function gpg_key_exists {
+ key_owner_username=$1
+ key_search_text=$2
+ if [[ $key_owner_username != "root" ]]; then
+ KEY_EXISTS=$(su -c "gpg --list-keys \"${key_search_text}\"" - $key_owner_username)
+ else
+ KEY_EXISTS=$(gpg --list-keys "${key_search_text}")
+ fi
+ if [ ! "$KEY_EXISTS" ]; then
+ echo "no"
+ return
+ fi
+ if [ "$KEY_EXISTS" == *"error"* ]; then
+ echo "no"
+ return
+ fi
+ echo "yes"
+}
+
+function gpg_pubkey_from_email {
+ key_owner_username=$1
+ key_email_address=$2
+ key_id=
+ if [[ $key_owner_username != "root" ]]; then
+ key_id=$(su -c "gpg --list-keys $key_email_address | grep 'pub '" - $key_owner_username | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+ else
+ key_id=$(gpg --list-keys $key_email_address | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+ fi
+ echo $key_id
+}
+
+function configure_gpg {
+ if [ ! -d /etc/exim4 ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install gnupg
+
+ check_email_address_exists
+
+ gpg_dir=/home/$MY_USERNAME/.gnupg
+
+ # if gpg keys directory was previously imported from usb
+ if [[ $GPG_KEYS_IMPORTED == "yes" && -d $gpg_dir ]]; then
+ echo $'GPG keys were imported'
+ sed -i "s|keyserver hkp://keys.gnupg.net|keyserver $GPG_KEYSERVER|g" $gpg_dir/gpg.conf
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
+ echo $'GPG public key ID could not be obtained'
+ fi
+ chown -R $MY_USERNAME:$MY_USERNAME $gpg_dir
+ chmod 700 $gpg_dir
+ chmod 600 $gpg_dir/*
+ mark_completed $FUNCNAME
+ return
+ fi
+
+ if [ ! -d $gpg_dir ]; then
+ mkdir $gpg_dir
+ echo "keyserver $GPG_KEYSERVER" >> $gpg_dir/gpg.conf
+ echo 'keyserver-options auto-key-retrieve' >> $gpg_dir/gpg.conf
+ fi
+
+ sed -i "s|keyserver hkp://keys.gnupg.net|keyserver $GPG_KEYSERVER|g" $gpg_dir/gpg.conf
+
+ if ! grep -q "# default preferences" $gpg_dir/gpg.conf; then
+ echo '' >> $gpg_dir/gpg.conf
+ echo '# default preferences' >> $gpg_dir/gpg.conf
+ echo 'personal-digest-preferences SHA256' >> $gpg_dir/gpg.conf
+ echo 'cert-digest-algo SHA256' >> $gpg_dir/gpg.conf
+ echo 'default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed' >> $gpg_dir/gpg.conf
+ fi
+
+ chown -R $MY_USERNAME:$MY_USERNAME $gpg_dir
+ chmod 700 $gpg_dir
+ chmod 600 $gpg_dir/*
+
+ if [[ $MY_GPG_PUBLIC_KEY && $MY_GPG_PRIVATE_KEY ]]; then
+ echo $'Importing GPG keys from file'
+ echo $"Public key: $MY_GPG_PUBLIC_KEY"
+ echo $"Private key: $MY_GPG_PRIVATE_KEY"
+
+ # use your existing GPG keys which were exported
+ if [ ! -f $MY_GPG_PUBLIC_KEY ]; then
+ echo $"GPG public key file $MY_GPG_PUBLIC_KEY was not found"
+ exit 2483
+ fi
+ if [ ! -f $MY_GPG_PRIVATE_KEY ]; then
+ echo $"GPG private key file $MY_GPG_PRIVATE_KEY was not found"
+ exit 5383
+ fi
+ su -c "gpg --import $MY_GPG_PUBLIC_KEY" - $MY_USERNAME
+ su -c "gpg --allow-secret-key-import --import $MY_GPG_PRIVATE_KEY" - $MY_USERNAME
+ KEY_EXISTS=$(gpg_key_exists "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
+ if [[ $KEY_EXISTS == "no" ]]; then
+ echo $"The GPG key for $MY_EMAIL_ADDRESS could not be imported"
+ exit 13821
+ fi
+
+ # for security ensure that the private key file doesn't linger around
+ shred -zu $MY_GPG_PRIVATE_KEY
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
+ echo $'GPG public key ID could not be obtained'
+ fi
+ else
+ # Generate a GPG key
+ echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Key-Length: 4096' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Subkey-Type: 1' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Subkey-Length: 4096' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Real: $MY_NAME" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Email: $MY_EMAIL_ADDRESS" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Expire-Date: 0' >> /home/$MY_USERNAME/gpg-genkey.conf
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
+ echo $'Generating a new GPG key'
+ su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
+ KEY_EXISTS=$(gpg_key_exists "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
+ if [[ $KEY_EXISTS == "no" ]]; then
+ echo $"A GPG key for $MY_EMAIL_ADDRESS could not be created"
+ exit 6362
+ fi
+ shred -zu /home/$MY_USERNAME/gpg-genkey.conf
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_EMAIL_ADDRESS")
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
+ echo $'GPG public key ID could not be obtained'
+ fi
+ MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
+ su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
+
+ if grep -q "install_email" $COMPLETION_FILE; then
+ if ! grep -q $"Change your GPG password" /home/$MY_USERNAME/README; then
+ echo '' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo $'# Change your GPG password' >> /home/$MY_USERNAME/README
+ echo $"It's very important to add a password to your GPG key so that" >> /home/$MY_USERNAME/README
+ echo $"if anyone does get access to your email they still won't be able" >> /home/$MY_USERNAME/README
+ echo $'to read them without knowning the GPG password.' >> /home/$MY_USERNAME/README
+ echo $'You can change the it with:' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo " gpg --edit-key $MY_GPG_PUBLIC_KEY_ID" >> /home/$MY_USERNAME/README
+ echo ' passwd' >> /home/$MY_USERNAME/README
+ echo ' save' >> /home/$MY_USERNAME/README
+ echo ' quit' >> /home/$MY_USERNAME/README
+ fi
+ if ! grep -q $"Publish your GPG public key" /home/$MY_USERNAME/README; then
+ echo '' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo $'# Publish your GPG public key' >> /home/$MY_USERNAME/README
+ echo $'So that others can send emails to you securely you should' >> /home/$MY_USERNAME/README
+ echo $'publish your GPG public key with the command:' >> /home/$MY_USERNAME/README
+ echo '' >> /home/$MY_USERNAME/README
+ echo " gpg --send-keys $MY_GPG_PUBLIC_KEY_ID" >> /home/$MY_USERNAME/README
+ fi
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
+ chmod 600 /home/$MY_USERNAME/README
+ fi
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function refresh_gpg_keys {
+ REFRESH_GPG_KEYS_SCRIPT=/usr/bin/update-gpg-keys
+ echo '#!/bin/bash' > $REFRESH_GPG_KEYS_SCRIPT
+ echo "if [ -f /usr/local/bin/${PROJECT_NAME}-sec ]; then" >> $REFRESH_GPG_KEYS_SCRIPT
+ echo " /usr/bin/timeout 600 /usr/local/bin/${PROJECT_NAME}-sec --refresh yes" >> $REFRESH_GPG_KEYS_SCRIPT
+ echo 'else' >> $REFRESH_GPG_KEYS_SCRIPT
+ echo " /usr/bin/timeout 600 /usr/bin/${PROJECT_NAME}-sec --refresh yes" >> $REFRESH_GPG_KEYS_SCRIPT
+ echo 'fi' >> $REFRESH_GPG_KEYS_SCRIPT
+ echo 'exit 0' >> $REFRESH_GPG_KEYS_SCRIPT
+ chmod +x $REFRESH_GPG_KEYS_SCRIPT
+
+ if grep -q "${PROJECT_NAME}-sec" /etc/crontab; then
+ sed -i "/${PROJECT_NAME}-sec /d" /etc/crontab
+ fi
+ if ! grep -q "$REFRESH_GPG_KEYS_SCRIPT" /etc/crontab; then
+ GPG_REFRESH_TIME=$(( RANDOM % 60 ))
+ echo "$GPG_REFRESH_TIME */$REFRESH_GPG_KEYS_HOURS * * * root cronic $REFRESH_GPG_KEYS_SCRIPT" >> /etc/crontab
+ systemctl restart cron
+ else
+ sed -i "s|root $REFRESH_GPG_KEYS_SCRIPT.*|root cronic $REFRESH_GPG_KEYS_SCRIPT|g" /etc/crontab
+ fi
+}
+
+function install_email {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ check_email_address_exists
+ install_email_basic
+ #install_email_with_tor
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-base-tripwire b/src/freedombone-base-tripwire
new file mode 100755
index 00000000..28c1c2cf
--- /dev/null
+++ b/src/freedombone-base-tripwire
@@ -0,0 +1,105 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Intrusion detection application
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function backup_local_tripwire {
+ echo -n ''
+}
+
+function backup_remote_tripwire {
+ echo -n ''
+}
+
+function remove_tripwire {
+ if ! grep -Fxq "tripwire" $COMPLETION_FILE; then
+ return
+ fi
+ apt-get -yq remove --purge tripwire
+ if [ -d /etc/tripwire ]; then
+ rm -rf /etc/tripwire
+ fi
+ rm /usr/bin/reset-tripwire
+ sed -i '/tripwire/d' $COMPLETION_FILE
+}
+
+function install_tripwire {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install tripwire
+ apt-get -yq autoremove
+ cd /etc/tripwire
+ cp site.key $DEFAULT_DOMAIN_NAME-site.key
+ echo '*** Installing intrusion detection ***'
+ echo '
+
+' | tripwire --init
+
+ # make a script for easy resetting of the tripwire
+ echo '#!/bin/sh' > /usr/bin/reset-tripwire
+ echo 'tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt' >> /usr/bin/reset-tripwire
+ chmod +x /usr/bin/reset-tripwire
+
+ sed -i 's/SYSLOGREPORTING.*/SYSLOGREPORTING =false/g' /etc/tripwire/twcfg.txt
+ # only send emails if something has changed
+ sed -i 's|MAILNOVIOLATIONS.*|MAILNOVIOLATIONS = false|g' /etc/tripwire/twcfg.txt
+ sed -i '/# These files change the behavior of the root account/,/}/ s/.*//g' /etc/tripwire/twpol.txt
+ sed -i 's|/etc/rc.boot.*||g' /etc/tripwire/twpol.txt
+ # Don't show any changes to /proc
+ sed -i 's|/proc.*||g' /etc/tripwire/twpol.txt
+ # Don't report log changes
+ sed -i 's|/var/log.*||g' /etc/tripwire/twpol.txt
+ # Ignore /etc/tripwire
+ if ! grep -q '!/etc/tripwire' /etc/tripwire/twpol.txt; then
+ sed -i '\|/etc\t\t->.*|a\ !/etc/tripwire ;' /etc/tripwire/twpol.txt
+ fi
+ # ignore tt-rss cache
+ if ! grep -q '!/etc/share/tt-rss/cache' /etc/tripwire/twpol.txt; then
+ sed -i '\|/etc\t\t->.*|a\ !/etc/share/tt-rss/cache ;' /etc/tripwire/twpol.txt
+ fi
+ if ! grep -q '!/etc/share/tt-rss/lock' /etc/tripwire/twpol.txt; then
+ sed -i '\|/etc\t\t->.*|a\ !/etc/share/tt-rss/lock ;' /etc/tripwire/twpol.txt
+ fi
+ # Avoid logging the changed database
+ sed -i 's|$(TWETC)/tw.pol.*||g' /etc/tripwire/twpol.txt
+ # recreate the configuration
+ echo '
+
+ ' | twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
+ # reset
+ echo '
+
+
+
+ ' | reset-tripwire
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-blog b/src/freedombone-blog
deleted file mode 100755
index 52e29523..00000000
--- a/src/freedombone-blog
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/bin/bash
-#
-# .---. . .
-# | | |
-# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
-# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
-# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
-#
-# Freedom in the Cloud
-#
-# Blogging functions
-
-# License
-# =======
-#
-# Copyright (C) 2016 Bob Mottram
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-
-PROJECT_NAME='freedombone'
-
-export TEXTDOMAIN=${PROJECT_NAME}-blog
-export TEXTDOMAINDIR="/usr/share/locale"
-
-CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
-
-HOSTNAME=
-AVATAR=
-
-# get the blog hostname
-if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
- HOSTNAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
-fi
-
-BASE_DIR=/var/www/$HOSTNAME/htdocs
-
-function show_help {
- echo ''
- echo $"${PROJECT_NAME}-blog -h [hostname] -a [avatar image file]"
- echo ''
- echo $'Blogging functions'
- echo ''
- echo $' --help Show help'
- echo $' -h --hostname [name] Hostname'
- echo $' -a --avatar [url] Filename or url for avatar'
- echo ''
- exit 0
-}
-
-while [[ $# > 1 ]]
-do
- key="$1"
-
- case $key in
- --help)
- show_help
- ;;
- -h|--hostname)
- shift
- HOSTNAME="$1"
- ;;
- -a|--avatar)
- shift
- AVATAR="$1"
- ;;
- *)
- # unknown option
- ;;
- esac
- shift
-done
-
-if [ ! $HOSTNAME ]; then
- echo $'No hostname specified'
- exit 5748
-fi
-
-if [ ! -d $BASE_DIR ]; then
- echo "$BASE_DIR was not found"
- exit 1
-fi
-
-function set_avatar_from_file {
- SOURCE_IMAGE_FILE="$1"
-
- if [ ! -f $SOURCE_IMAGE_FILE ]; then
- echo $'Source file not found'
- exit 2
- fi
-
- # copy the source image
- cd $BASE_DIR
- AVATAR_FILES=$(find . -name avatar.png)
- read -a arr <<<$AVATAR_FILES
-
- for i in "${arr[@]}"
- do
- FILENAME="$BASE_DIR$(echo \"$i\" | awk -F '.' '{print $2}')".png
- if [[ "$FILENAME" != "$SOURCE_IMAGE_FILE" ]]; then
- cp -f $SOURCE_IMAGE_FILE "$FILENAME"
- fi
- done
-}
-
-function set_avatar_from_url {
- if [ ! -d $BASE_DIR/customimages ]; then
- mkdir $BASE_DIR/customimages
- fi
-
- # download the image
- cd $BASE_DIR/customimages
- # convert to png
- wget $AVATAR -O avatar
- if [[ $AVATAR == *".gif" ]]; then
- mv avatar avatar.gif
- mogrify -format png avatar.gif
- fi
- if [[ $AVATAR == *".jpg" ]]; then
- mv avatar avatar.jpg
- mogrify -format png avatar.jpg
- fi
- if [[ $AVATAR == *".jpeg" ]]; then
- mv avatar avatar.jpeg
- mogrify -format png avatar.jpeg
- fi
- if [ -f avatar ]; then
- mv avatar avatar.png
- fi
-
- # standard size
- mogrify -resize 150x150 avatar.png
- if [ ! -f $BASE_DIR/customimages/avatar.png ]; then
- echo $'Avatar image could not be downloaded'
- exit 3
- fi
- chown -R www-data:www-data $BASE_DIR/customimages
-}
-
-if [[ "$AVATAR" == "http"* ]]; then
- set_avatar_from_url
-fi
-
-AVATAR=$BASE_DIR/customimages/avatar.png
-if [ -f $AVATAR ]; then
- set_avatar_from_file $AVATAR
-fi
-
-exit 0
diff --git a/src/freedombone-client b/src/freedombone-client
index 55787cd7..b8cb3752 100755
--- a/src/freedombone-client
+++ b/src/freedombone-client
@@ -11,7 +11,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -32,9 +32,16 @@ export TEXTDOMAIN=${PROJECT_NAME}-client
export TEXTDOMAINDIR="/usr/share/locale"
CURR_USER=$USER
+CURR_GROUP=$USER
+if [ -f /usr/bin/pacman ]; then
+ CURR_GROUP='users'
+fi
MESH_CLIENT_INSTALL=
ENABLE_MONKEYSPHERE=
+# setup for a specific app
+SETUP_CLIENT_APP_NAME=
+
# Version number of this script
VERSION="1.01"
@@ -49,20 +56,46 @@ if [ ! -f $MAIN_PROJECT_FILE ]; then
fi
# ssh (from https://stribika.github.io/2015/01/04/secure-secure-shell.html)
-SSH_CIPHERS=$(cat $MAIN_PROJECT_FILE | grep 'SSH_CIPHERS=' | head -n 1 | awk -F '"' '{print $2}')
-SSH_MACS=$(cat $MAIN_PROJECT_FILE | grep 'SSH_MACS=' | head -n 1 | awk -F '"' '{print $2}')
-SSH_KEX=$(cat $MAIN_PROJECT_FILE | grep 'SSH_KEX=' | head -n 1 | awk -F '"' '{print $2}')
-SSH_HOST_KEY_ALGORITHMS=$(cat $MAIN_PROJECT_FILE | grep 'SSH_HOST_KEY_ALGORITHMS=' | head -n 1 | awk -F '"' '{print $2}')
+UTILS_SSH=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-ssh
+SSH_CIPHERS=$(cat $UTILS_SSH | grep 'SSH_CIPHERS=' | head -n 1 | awk -F '"' '{print $2}')
+SSH_MACS=$(cat $UTILS_SSH | grep 'SSH_MACS=' | head -n 1 | awk -F '"' '{print $2}')
+SSH_KEX=$(cat $UTILS_SSH | grep 'SSH_KEX=' | head -n 1 | awk -F '"' '{print $2}')
+SSH_HOST_KEY_ALGORITHMS=$(cat $UTILS_SSH | grep 'SSH_HOST_KEY_ALGORITHMS=' | head -n 1 | awk -F '"' '{print $2}')
# refresh gpg keys every few hours
REFRESH_GPG_KEYS_HOURS=2
+function global_rate_limit {
+ SYSCTL_FILE=/etc/sysctl.conf
+ if [ -f /usr/bin/pacman ]; then
+ SYSCTL_FILE=/etc/sysctl.d/99-sysctl.conf
+ fi
+ if [ ! -f $SYSCTL_FILE ]; then
+ sudo touch $SYSCTL_FILE
+ fi
+
+ sudo cp $SYSCTL_FILE ~/sysctl.conf
+ sudo chown $CURR_USER:$CURR_GROUP ~/sysctl.conf
+ if ! grep -q "tcp_challenge_ack_limit" ~/sysctl.conf; then
+ echo 'net.ipv4.tcp_challenge_ack_limit = 999999999' >> ~/sysctl.conf
+ else
+ sed -i 's|net.ipv4.tcp_challenge_ack_limit.*|net.ipv4.tcp_challenge_ack_limit = 999999999|g' ~/sysctl.conf
+ fi
+ sudo cp ~/sysctl.conf $SYSCTL_FILE
+ sudo rm ~/sysctl.conf
+ sudo sysctl -p -q $SYSCTL_FILE
+}
+
function refresh_gpg_keys {
if [ ! -f /usr/bin/gpg ]; then
- sudo apt-get -y install gnupg
+ if [ ! -f /usr/bin/pacman ]; then
+ sudo apt-get -yq install gnupg
+ else
+ sudo pacman -S --noconfirm gnupg
+ fi
fi
sudo cp /etc/crontab ~/temp_crontab
- sudo chown $CURR_USER:$CURR_USER ~/temp_crontab
+ sudo chown $CURR_USER:$CURR_GROUP ~/temp_crontab
if ! grep -q "gpg --refresh-keys" ~/temp_crontab; then
echo "0 */$REFRESH_GPG_KEYS_HOURS * * * $CURR_USER /usr/bin/gpg --refresh-keys > /dev/null" >> ~/temp_crontab
sudo cp ~/temp_crontab /etc/crontab
@@ -78,22 +111,31 @@ function ssh_remove_small_moduli {
}
function configure_ssh_client {
+ if [ -f /usr/bin/pacman ]; then
+ sudo pacman --noconfirm -S openbsd-netcat
+ else
+ sudo apt-get -yq install tor connect-proxy vim-common
+ fi
+
#sudo sed -i 's/# PasswordAuthentication.*/ PasswordAuthentication no/g' /etc/ssh/ssh_config
#sudo sed -i 's/# ChallengeResponseAuthentication.*/ ChallengeResponseAuthentication no/g' /etc/ssh/ssh_config
sudo sed -i "s/# HostKeyAlgorithms.*/ HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
sudo sed -i "s/# Ciphers.*/ Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
sudo sed -i "s/# MACs.*/ MACs $SSH_MACS/g" /etc/ssh/ssh_config
+ sudo sed -i "s/HostKeyAlgorithms.*/HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
if ! grep -q "HostKeyAlgorithms" /etc/ssh/ssh_config; then
sudo cp /etc/ssh/ssh_config ~/ssh_config
- sudo chown $CURR_USER:$CURR_USER ~/ssh_config
+ sudo chown $CURR_USER:$CURR_GROUP ~/ssh_config
echo " HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS" >> ~/ssh_config
sudo mv ~/ssh_config /etc/ssh/ssh_config
sudo chown root:root /etc/ssh/ssh_config
fi
+ sudo sed -i "s/HostKeyAlgorithms.*/#HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
+
sudo sed -i "s/Ciphers.*/Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
if ! grep -q "Ciphers " /etc/ssh/ssh_config; then
sudo cp /etc/ssh/ssh_config ~/ssh_config
- sudo chown $CURR_USER:$CURR_USER ~/ssh_config
+ sudo chown $CURR_USER:$CURR_GROUP ~/ssh_config
echo " Ciphers $SSH_CIPHERS" >> ~/ssh_config
sudo mv ~/ssh_config /etc/ssh/ssh_config
sudo chown root:root /etc/ssh/ssh_config
@@ -101,7 +143,7 @@ function configure_ssh_client {
sudo sed -i "s/MACs.*/MACs $SSH_MACS/g" /etc/ssh/ssh_config
if ! grep -q "MACs " /etc/ssh/ssh_config; then
sudo cp /etc/ssh/ssh_config ~/ssh_config
- sudo chown $CURR_USER:$CURR_USER ~/ssh_config
+ sudo chown $CURR_USER:$CURR_GROUP ~/ssh_config
echo " MACs $SSH_MACS" >> ~/ssh_config
sudo mv ~/ssh_config /etc/ssh/ssh_config
sudo chown root:root /etc/ssh/ssh_config
@@ -123,10 +165,16 @@ function configure_ssh_client {
echo 'Host *.onion' > ~/.ssh/config
echo ' ServerAliveInterval 60' >> ~/.ssh/config
echo ' ServerAliveCountMax 3' >> ~/.ssh/config
+
+ proxycmd="connect -R remote -5 -S 127.0.0.1:9050 %h %p"
+ if [ -f /usr/bin/pacman ]; then
+ proxycmd="/usr/bin/nc -X 5 -x 127.0.0.1:9050 %h %p"
+ fi
+
if [[ $ENABLE_MONKEYSPHERE == $'yes' || $ENABLE_MONKEYSPHERE == $'y' ]]; then
- echo " ProxyCommand sh -c 'monkeysphere ssh-proxycommand --no-connect %h %p ; connect -R remote -5 -S 127.0.0.1:9050 %h %p'" >> ~/.ssh/config
+ echo " ProxyCommand sh -c 'monkeysphere ssh-proxycommand --no-connect %h %p ; $proxycmd'" >> ~/.ssh/config
else
- echo " ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p" >> ~/.ssh/config
+ echo " ProxyCommand $proxycmd" >> ~/.ssh/config
fi
echo 'Host *' >> ~/.ssh/config
echo ' ServerAliveInterval 60' >> ~/.ssh/config
@@ -136,15 +184,21 @@ function configure_ssh_client {
fi
echo ''
- echo $'Copy the following into a file called /home/username/.ssh/authorized_keys on the Freedombone server'
+ echo $'Go to the Administrator Control Panel, select "Manage Users", '
+ echo $'"Change user ssh public key" then "yes" and paste the following:'
echo ''
echo $(cat /home/$CURR_USER/.ssh/id_rsa.pub)
echo $(cat /home/$CURR_USER/.ssh/id_ed25519.pub)
echo ''
+ echo $'Then go to "Security Settings", select "Allow ssh login with passwords"'
+ echo $'and set it to "no".'
}
function configure_monkeysphere {
- sudo apt-get -y install tor connect-proxy monkeysphere
+ if [ -f /usr/bin/pacman ]; then
+ return
+ fi
+ sudo apt-get -yq install monkeysphere
}
function show_help {
@@ -154,7 +208,86 @@ function show_help {
exit 0
}
-while [[ $# > 1 ]]
+function setup_client_app_irc {
+ echo $'Setting up hexchat'
+ if [ ! -f /usr/bin/pacman ]; then
+ sudo apt-get -yq install tor hexchat tor
+ else
+ sudo pacman -S --noconfirm hexchat tor
+ fi
+ if [ ! -d /home/$CURR_USER/.config/hexchat ]; then
+ mkdir -p /home/$CURR_USER/.config/hexchat
+ fi
+ echo 'net_proxy_host = 127.0.0.1' > /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'net_proxy_port = 9050' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'net_proxy_type = 3' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'net_proxy_use = 0' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo 'net_proxy_auth = 1' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'net_proxy_pass = HexChat' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'net_proxy_user = HexChat' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo 'dcc_auto_chat = 0' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'dcc_auto_resume = 0' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'dcc_auto_send = 0' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'irc_hide_version = 1' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'identd = 0' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo 'away_reason =' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'irc_part_reason =' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo 'irc_quit_reason =' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo "irc_real_name = ${USER}" >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo "irc_user_name = ${USER}" >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo "irc_nick1 = ${USER}" >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo "irc_nick2 = ${USER}_" >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+ echo "irc_nick3 = ${USER}__" >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo 'completion_suffix = :' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo 'gui_slist_skip = 1' >> /home/$CURR_USER/.config/hexchat/hexchat.conf
+
+ echo $'hexchat configured'
+}
+
+function setup_client_app {
+ if [ ! $SETUP_CLIENT_APP_NAME ]; then
+ return
+ fi
+
+ case $SETUP_CLIENT_APP_NAME in
+ hexchat|xchat|irc)
+ setup_client_app_irc
+ ;;
+ esac
+ exit 0
+}
+
+function remove_known_hosts_entries {
+ # remove any previous freedombone entries from known hosts
+ if [ -f /home/$CURR_USER/.ssh/known_hosts ]; then
+ sed -i "/${PROJECT_NAME}.local/d" /home/$CURR_USER/.ssh/known_hosts
+ fi
+}
+
+function setup_avahi_client {
+ echo $'Configuring Avahi'
+ if [ ! -f /usr/bin/pacman ]; then
+ sudo apt-get -yq install avahi-utils avahi-autoipd avahi-dnsconfd
+ else
+ sudo pacman -S --noconfirm avahi nss-mdns
+ sudo sed -i 's|hosts:.*|hosts: files mdns_minimal [NOTFOUND=return] dns myhostname|g' /etc/nsswitch.conf
+ fi
+}
+
+function verify_ssh_server_key {
+ ssh -o VisualHostKey=yes -o FingerprintHash=sha256 ${PROJECT_NAME}.local -p 2222 &
+ pid=$!
+ sleep 15
+ kill ${pid}
+}
+
+while [[ $# > 0 ]]
do
key="$1"
@@ -170,6 +303,14 @@ do
shift
WIFI_CHANNEL=${1}
;;
+ -s|--setup)
+ shift
+ SETUP_CLIENT_APP_NAME=${1}
+ ;;
+ -v|--verify|--verifykeys)
+ verify_ssh_server_key
+ exit 0
+ ;;
-m|--mesh)
shift
MESH_CLIENT_INSTALL=${1}
@@ -186,18 +327,19 @@ do
done
echo $'Configuring client'
+setup_avahi_client
+setup_client_app
refresh_gpg_keys
configure_ssh_client
+global_rate_limit
configure_monkeysphere
+remove_known_hosts_entries
if [[ $MESH_CLIENT_INSTALL == $'yes' || $MESH_CLIENT_INSTALL == $'y' || $MESH_CLIENT_INSTALL == $'on' ]]; then
echo $'Installing mesh packages'
- sudo apt-get -y install avahi-utils avahi-autoipd avahi-dnsconfd
sudo ${PROJECT_NAME}-mesh-install -f tox_node
sudo ${PROJECT_NAME}-mesh-install -f toxic
${PROJECT_NAME}-mesh-install -f qtox
sudo ${PROJECT_NAME}-mesh-install -f zeronet
-
- ${PROJECT_NAME}-mesh-install -f batman_client
fi
echo $'Configuration complete'
exit 0
diff --git a/src/freedombone-clientcert b/src/freedombone-clientcert
index 7f571a41..ff09bed9 100755
--- a/src/freedombone-clientcert
+++ b/src/freedombone-clientcert
@@ -17,7 +17,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-config b/src/freedombone-config
index d7299989..dfe1ee6a 100755
--- a/src/freedombone-config
+++ b/src/freedombone-config
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -40,40 +40,19 @@ export TEXTDOMAIN=${PROJECT_NAME}-config
export TEXTDOMAINDIR="/usr/share/locale"
# Web site
-FREEDOMBONE_WEBSITE="http://freedombone.uk.to"
+FREEDOMBONE_WEBSITE="https://freedombone.net or http://4fvfozz6g3zmvf76.onion"
# Minimum number of characters in a password
-MINIMUM_PASSWORD_LENGTH=10
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-else
- if [ -f /usr/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
- fi
-fi
+MINIMUM_PASSWORD_LENGTH=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
# file containing new password
IMAGE_PASSWORD_FILE=/root/login.txt
-# Different system variants which may be specified within
-# the SYSTEM_TYPE option
-VARIANT_FULL="full"
-VARIANT_WRITER="writer"
-VARIANT_CLOUD="cloud"
-VARIANT_CHAT="chat"
-VARIANT_MAILBOX="mailbox"
-VARIANT_NONMAILBOX="nonmailbox"
-VARIANT_SOCIAL="social"
-VARIANT_MEDIA="media"
-VARIANT_DEVELOPER="developer"
-VARIANT_MESH="mesh"
-VARIANT_MESH_USER="mesh-user"
-
MY_USERNAME=
DEFAULT_DOMAIN_NAME=
DEFAULT_DOMAIN_CODE=
MY_EMAIL_ADDRESS=
-SYSTEM_TYPE=
+SYSTEM_TYPE='full'
INSTALLING_ON_BBB="no"
DDNS_PROVIDER=
DDNS_USERNAME=
@@ -81,34 +60,24 @@ DDNS_PASSWORD=
MY_NAME=
LOCAL_NETWORK_STATIC_IP_ADDRESS=
ROUTER_IP_ADDRESS=
-ENABLE_CJDNS=
ENABLE_BATMAN=
-ENABLE_BABEL=
DEBIAN_REPO=
NAMESERVER1=
NAMESERVER2=
-WIKI_TITLE=
-WIKI_DOMAIN_NAME=
-WIKI_CODE=
-MY_BLOG_TITLE=
-FULLBLOG_DOMAIN_NAME=
-FULLBLOG_CODE=
-MEDIAGOBLIN_ENABLED='no'
-MEDIAGOBLIN_DOMAIN_NAME=
-MEDIAGOBLIN_CODE=
-MEDIA_SERVER_ENABLED='no'
-MEDIA_SERVER_DOMAIN_NAME=
-MEDIA_SERVER_CODE=
+DOKUWIKI_TITLE=
+DOKUWIKI_DOMAIN_NAME=
+DOKUWIKI_CODE=
+HTMLY_TITLE=
+HTMLY_DOMAIN_NAME=
+HTMLY_CODE=
HUBZILLA_DOMAIN_NAME=
HUBZILLA_CODE=
-MICROBLOG_DOMAIN_NAME=
-MICROBLOG_CODE=
-MICROBLOG_WELCOME_MESSAGE=$"Welcome to \$MICROBLOG_DOMAIN_NAME – a federated microblog Another $PROJECT_NAME site
"
-MICROBLOG_BACKGROUND_IMAGE_URL=
+GNUSOCIAL_DOMAIN_NAME=
+GNUSOCIAL_CODE=
+GNUSOCIAL_WELCOME_MESSAGE=$"Welcome to \$GNUSOCIAL_DOMAIN_NAME – a federated social network Another $PROJECT_NAME site
"
+GNUSOCIAL_BACKGROUND_IMAGE_URL=
GIT_DOMAIN_NAME=
GIT_CODE=
-MEDIAGOBLIN_DOMAIN_NAME=
-MEDIAGOBLIN_CODE=
USB_DRIVE=/dev/sdb1
HWRNG_TYPE=
ENABLE_SOCIAL_KEY_MANAGEMENT=
@@ -135,2070 +104,994 @@ MY_MIRRORS_PASSWORD=
VALID_CODE=
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+
function show_help {
- echo ''
- echo $"${PROJECT_NAME}-config -f [config filename] -m [min password length]"
- echo ''
- echo $'Creates an inventory of remote backup locations'
- echo ''
- echo ''
- echo $' -h --help Show help'
- echo $' -f --filename Configuration file (usually freedombone.cfg)'
- echo $' -m --min Minimum password length (characters)'
- echo $' -w --www Freedombone web site'
- echo $' -b --bm Freedombone support Bitmessage address'
- echo $' -o --onion [yes|no] Whether to only create .onion sites'
- echo $' --minimal [yes|no] For minimalistic "consumer grade" installs'
- echo ''
- exit 0
+ echo ''
+ echo $"${PROJECT_NAME}-config -f [config filename] -m [min password length]"
+ echo ''
+ echo $'Creates an inventory of remote backup locations'
+ echo ''
+ echo ''
+ echo $' -h --help Show help'
+ echo $' -f --filename Configuration file (usually freedombone.cfg)'
+ echo $' -m --min Minimum password length (characters)'
+ echo $' -w --www Freedombone web site'
+ echo $' -b --bm Freedombone support Bitmessage address'
+ echo $' -o --onion [yes|no] Whether to only create .onion sites'
+ echo $' --minimal [yes|no] For minimalistic "consumer grade" installs'
+ echo ''
+ exit 0
+}
+
+function choose_email_address {
+ if [[ $ONION_ONLY != "no" ]]; then
+ EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
+ else
+ while [ ${#MY_EMAIL_ADDRESS} -lt 5 ]
+ do
+ EMAIL_ADDRESS=$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
+ if [ ! $EMAIL_ADDRESS ]; then
+ EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
+ fi
+ if [ ${#MY_EMAIL_ADDRESS} -lt 5 ]; then
+ EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
+ fi
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --inputbox $"Your email address" 10 30 "$EMAIL_ADDRESS" 2> $data
+ sel=$?
+ case $sel in
+ 0) MY_EMAIL_ADDRESS=$(cat $data);;
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ done
+ fi
+ save_configuration_values
+}
+
+function choose_default_domain_name {
+ if [[ $ONION_ONLY != "no" ]]; then
+ DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
+ else
+ DEFAULT_DOMAIN_DETAILS_COMPLETE=
+ while [ ! $DEFAULT_DOMAIN_DETAILS_COMPLETE ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"Your main domain name" \
+ --form $"\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?" 13 55 5 \
+ $"Domain:" 1 1 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 24 33 40 \
+ $"Code:" 2 1 "$(grep 'DEFAULT_DOMAIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 24 33 255 \
+ $"mail subdomain Code:" 3 1 "$(grep 'EMAIL_DOMAIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 24 33 255 \
+ $"XMPP subdomain Code:" 4 1 "$(grep 'XMPP_DOMAIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 4 24 33 255 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ DEFAULT_DOMAIN_NAME=$(cat $data | sed -n 1p)
+ DEFAULT_DOMAIN_CODE=$(cat $data | sed -n 2p)
+ EMAIL_DOMAIN_CODE=$(cat $data | sed -n 2p)
+ XMPP_DOMAIN_CODE=$(cat $data | sed -n 2p)
+ if [ $DEFAULT_DOMAIN_NAME ]; then
+ validate_freedns_code "$DEFAULT_DOMAIN_CODE"
+ if [ ! $VALID_CODE ]; then
+ DEFAULT_DOMAIN_NAME=
+ fi
+ fi
+ if [ $EMAIL_DOMAIN_CODE ]; then
+ validate_freedns_code "$EMAIL_DOMAIN_CODE"
+ if [ ! $VALID_CODE ]; then
+ DEFAULT_DOMAIN_NAME=
+ EMAIL_DOMAIN_CODE=
+ else
+ write_config_param "EMAIL_DOMAIN_CODE" "$EMAIL_DOMAIN_CODE"
+ fi
+ fi
+ if [ $XMPP_DOMAIN_CODE ]; then
+ validate_freedns_code "$XMPP_DOMAIN_CODE"
+ if [ ! $VALID_CODE ]; then
+ DEFAULT_DOMAIN_NAME=
+ XMPP_DOMAIN_CODE=
+ else
+ write_config_param "XMPP_DOMAIN_CODE" "$XMPP_DOMAIN_CODE"
+ fi
+ fi
+ else
+ dialog --backtitle $"Freedombone Configuration" \
+ --inputbox $"Which domain name should your email/XMPP/IRC/Mumble be associated with?" 10 45 \
+ "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
+ sel=$?
+ case $sel in
+ 0) DEFAULT_DOMAIN_NAME=$(cat $data);;
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ fi
+ if [ $DEFAULT_DOMAIN_NAME ]; then
+ TEST_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME
+ validate_domain_name
+ if [[ $TEST_DOMAIN_NAME != $DEFAULT_DOMAIN_NAME ]]; then
+ DEFAULT_DOMAIN_NAME=
+ dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
+ else
+ DEFAULT_DOMAIN_DETAILS_COMPLETE="yes"
+ fi
+ fi
+ done
+ fi
+ save_configuration_values
+}
+
+function choose_dynamic_dns {
+ if [[ $SYSTEM_TYPE != "mesh"* && $ONION_ONLY == "no" ]]; then
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --radiolist $"Choose Dynamic DNS provider:" 15 40 14 \
+ 1 dyndns off \
+ 2 freedns on \
+ 3 zoneedit off \
+ 4 no-ip off \
+ 5 easydns off \
+ 6 tzo off \
+ 7 3322 off \
+ 8 dnsomatic off \
+ 9 tunnelbroker off \
+ 10 dns.he.net off \
+ 11 dynsip off \
+ 12 sitelutions off \
+ 13 dnsexit off \
+ 14 changeip off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) DDNS_PROVIDER="default@dyndns.org";;
+ 2) DDNS_PROVIDER="default@freedns.afraid.org";;
+ 3) DDNS_PROVIDER="default@zoneedit.com";;
+ 4) DDNS_PROVIDER="default@no-ip.com";;
+ 5) DDNS_PROVIDER="default@easydns.com";;
+ 6) DDNS_PROVIDER="default@tzo.com";;
+ 7) DDNS_PROVIDER="dyndns@3322.org";;
+ 8) DDNS_PROVIDER="default@dnsomatic.com";;
+ 9) DDNS_PROVIDER="ipv6tb@he.net";;
+ 10) DDNS_PROVIDER="dyndns@he.net";;
+ 11) DDNS_PROVIDER="default@dynsip.org";;
+ 12) DDNS_PROVIDER="default@sitelutions.com";;
+ 13) DDNS_PROVIDER="default@dnsexit.com";;
+ 14) DDNS_PROVIDER="default@changeip.com";;
+ 255) exit 1;;
+ esac
+ save_configuration_values
+
+ valid_ddns_username=
+ while [ ! $valid_ddns_username ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --inputbox $"Dynamic DNS provider username" 10 30 "$(grep 'DDNS_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
+ sel=$?
+ case $sel in
+ 0) possible_username=$(cat $data)
+ if [ "$possible_username" ]; then
+ if [ ${#possible_username} -gt 1 ]; then
+ valid_ddns_username=$(cat $data)
+ DDNS_USERNAME=$valid_ddns_username
+ break;
+ fi
+ fi
+ ;;
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ done
+ save_configuration_values
+
+ valid_ddns_password=
+ while [ ! $valid_ddns_password ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --clear \
+ --insecure \
+ --passwordbox $"Dynamic DNS provider password" 10 30 "$(grep 'DDNS_PASSWORD' temp.cfg | awk -F '=' '{print $2}')" 2> $data
+ sel=$?
+ case $sel in
+ 0) possible_password=$(cat $data)
+ if [ "$possible_password" ]; then
+ if [ ${#possible_password} -gt 1 ]; then
+ valid_ddns_password=$(cat $data)
+ DDNS_PASSWORD=$valid_ddns_password
+ break;
+ fi
+ fi
+ ;;
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ if [ ${#DDNS_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
+ dialog --title $"Password quality check" --msgbox $"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." 10 40
+ DDNS_PASSWORD=""
+ fi
+ done
+ save_configuration_values
+ fi
+}
+
+function choose_dns {
+ if [[ $MINIMAL_INSTALL == "no" && $ONION_ONLY == "no" ]]; then
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --radiolist $"Pick a domain name service (DNS):" 25 50 16 \
+ 1 $"Digital Courage" on \
+ 2 $"German Privacy Foundation 1" off \
+ 3 $"German Privacy Foundation 2" off \
+ 4 $"Chaos Computer Club" off \
+ 5 $"ClaraNet" off \
+ 6 $"OpenNIC 1" off \
+ 7 $"OpenNIC 2" off \
+ 8 $"OpenNIC 3" off \
+ 9 $"OpenNIC 4" off \
+ 10 $"OpenNIC 5" off \
+ 11 $"OpenNIC 6" off \
+ 12 $"OpenNIC 7" off \
+ 13 $"PowerNS" off \
+ 14 $"ValiDOM" off \
+ 15 $"Freie Unzensierte" off \
+ 16 $"Google" off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) NAMESERVER1='85.214.73.63'
+ NAMESERVER2='213.73.91.35'
+ ;;
+ 2) NAMESERVER1='87.118.100.175'
+ NAMESERVER2='94.75.228.29'
+ ;;
+ 3) NAMESERVER1='85.25.251.254'
+ NAMESERVER2='2.141.58.13'
+ ;;
+ 4) NAMESERVER1='213.73.91.35'
+ NAMESERVER2='85.214.73.63'
+ ;;
+ 5) NAMESERVER1='212.82.225.7'
+ NAMESERVER2='212.82.226.212'
+ ;;
+ 6) NAMESERVER1='58.6.115.42'
+ NAMESERVER2='58.6.115.43'
+ ;;
+ 7) NAMESERVER1='119.31.230.42'
+ NAMESERVER2='200.252.98.162'
+ ;;
+ 8) NAMESERVER1='217.79.186.148'
+ NAMESERVER2='81.89.98.6'
+ ;;
+ 9) NAMESERVER1='78.159.101.37'
+ NAMESERVER2='203.167.220.153'
+ ;;
+ 10) NAMESERVER1='82.229.244.191'
+ NAMESERVER2='82.229.244.191'
+ ;;
+ 11) NAMESERVER1='216.87.84.211'
+ NAMESERVER2='66.244.95.20'
+ ;;
+ 12) NAMESERVER1='207.192.69.155'
+ NAMESERVER2='72.14.189.120'
+ ;;
+ 13) NAMESERVER1='194.145.226.26'
+ NAMESERVER2='77.220.232.44'
+ ;;
+ 14) NAMESERVER1='78.46.89.147'
+ NAMESERVER2='88.198.75.145'
+ ;;
+ 15) NAMESERVER1='85.25.149.144'
+ NAMESERVER2='87.106.37.196'
+ ;;
+ 16) NAMESERVER1='8.8.8.8'
+ NAMESERVER2='4.4.4.4'
+ ;;
+ 255) exit 1;;
+ esac
+ save_configuration_values
+ else
+ # as defaults for a minimal install process these settings are debatable
+ NAMESERVER1='85.214.73.63'
+ NAMESERVER2='213.73.91.35'
+ fi
+}
+
+function choose_debian_repo {
+ if [[ $MINIMAL_INSTALL == "no" ]]; then
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --radiolist $"Where to download Debian packages from:" 25 45 49 \
+ 1 $"Australia" off \
+ 2 $"Austria" off \
+ 3 $"Belarus" off \
+ 4 $"Belgium" off \
+ 5 $"Bosnia and Herzegovina" off \
+ 6 $"Brazil" off \
+ 7 $"Bulgaria" off \
+ 8 $"Canada" off \
+ 9 $"Chile" off \
+ 10 $"China" off \
+ 11 $"Croatia" off \
+ 12 $"Czech Republic" off \
+ 13 $"Denmark" off \
+ 14 $"El Salvador" off \
+ 15 $"Estonia" off \
+ 16 $"Finland" off \
+ 17 $"France 1" off \
+ 18 $"France 2" off \
+ 19 $"Germany 1" off \
+ 20 $"Germany 2" off \
+ 21 $"Greece" off \
+ 22 $"Hungary" off \
+ 23 $"Iceland" off \
+ 24 $"Iran" off \
+ 25 $"Ireland" off \
+ 26 $"Italy" off \
+ 27 $"Japan" off \
+ 28 $"Korea" off \
+ 29 $"Lithuania" off \
+ 30 $"Mexico" off \
+ 31 $"Netherlands" off \
+ 32 $"New Caledonia" off \
+ 33 $"New Zealand" off \
+ 34 $"Norway" off \
+ 35 $"Poland" off \
+ 36 $"Portugal" off \
+ 37 $"Romania" off \
+ 38 $"Russia" off \
+ 39 $"Slovakia" off \
+ 40 $"Slovenia" off \
+ 41 $"Spain" off \
+ 42 $"Sweden" off \
+ 43 $"Switzerland" off \
+ 44 $"Taiwan" off \
+ 45 $"Thailand" off \
+ 46 $"Turkey" off \
+ 47 $"Ukraine" off \
+ 48 $"United Kingdom" off \
+ 49 $"United States" on 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) DEBIAN_REPO='ftp.au.debian.org';;
+ 2) DEBIAN_REPO='ftp.at.debian.org';;
+ 3) DEBIAN_REPO='ftp.by.debian.org';;
+ 4) DEBIAN_REPO='ftp.be.debian.org';;
+ 5) DEBIAN_REPO='ftp.ba.debian.org';;
+ 6) DEBIAN_REPO='ftp.br.debian.org';;
+ 7) DEBIAN_REPO='ftp.bg.debian.org';;
+ 8) DEBIAN_REPO='ftp.ca.debian.org';;
+ 9) DEBIAN_REPO='ftp.cl.debian.org';;
+ 10) DEBIAN_REPO='ftp.cn.debian.org';;
+ 11) DEBIAN_REPO='ftp.hr.debian.org';;
+ 12) DEBIAN_REPO='ftp.cz.debian.org';;
+ 13) DEBIAN_REPO='ftp.dk.debian.org';;
+ 14) DEBIAN_REPO='ftp.sv.debian.org';;
+ 15) DEBIAN_REPO='ftp.ee.debian.org';;
+ 16) DEBIAN_REPO='ftp.fi.debian.org';;
+ 17) DEBIAN_REPO='ftp2.fr.debian.org';;
+ 18) DEBIAN_REPO='ftp.fr.debian.org';;
+ 19) DEBIAN_REPO='ftp2.de.debian.org';;
+ 20) DEBIAN_REPO='ftp.de.debian.org';;
+ 21) DEBIAN_REPO='ftp.gr.debian.org';;
+ 22) DEBIAN_REPO='ftp.hu.debian.org';;
+ 23) DEBIAN_REPO='ftp.is.debian.org';;
+ 24) DEBIAN_REPO='ftp.ir.debian.org';;
+ 25) DEBIAN_REPO='ftp.ie.debian.org';;
+ 26) DEBIAN_REPO='ftp.it.debian.org';;
+ 27) DEBIAN_REPO='ftp.jp.debian.org';;
+ 28) DEBIAN_REPO='ftp.kr.debian.org';;
+ 29) DEBIAN_REPO='ftp.lt.debian.org';;
+ 30) DEBIAN_REPO='ftp.mx.debian.org';;
+ 31) DEBIAN_REPO='ftp.nl.debian.org';;
+ 32) DEBIAN_REPO='ftp.nc.debian.org';;
+ 33) DEBIAN_REPO='ftp.nz.debian.org';;
+ 34) DEBIAN_REPO='ftp.no.debian.org';;
+ 35) DEBIAN_REPO='ftp.pl.debian.org';;
+ 36) DEBIAN_REPO='ftp.pt.debian.org';;
+ 37) DEBIAN_REPO='ftp.ro.debian.org';;
+ 38) DEBIAN_REPO='ftp.ru.debian.org';;
+ 39) DEBIAN_REPO='ftp.sk.debian.org';;
+ 40) DEBIAN_REPO='ftp.si.debian.org';;
+ 41) DEBIAN_REPO='ftp.es.debian.org';;
+ 42) DEBIAN_REPO='ftp.se.debian.org';;
+ 43) DEBIAN_REPO='ftp.ch.debian.org';;
+ 44) DEBIAN_REPO='ftp.tw.debian.org';;
+ 45) DEBIAN_REPO='ftp.th.debian.org';;
+ 46) DEBIAN_REPO='ftp.tr.debian.org';;
+ 47) DEBIAN_REPO='ftp.ua.debian.org';;
+ 48) DEBIAN_REPO='ftp.uk.debian.org';;
+ 49) DEBIAN_REPO='ftp.us.debian.org';;
+ 255) exit 1;;
+ esac
+ save_configuration_values
+ else
+ DEBIAN_REPO='ftp.de.debian.org'
+ fi
+}
+
+function choose_rng {
+ if [[ $MINIMAL_INSTALL == "no" ]]; then
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $INSTALLING_ON_BBB != "yes" ]]; then
+ dialog --backtitle $"Freedombone Configuration" \
+ --radiolist $"Type of Random Number Generator:" 10 40 2 \
+ 1 Haveged on \
+ 2 OneRNG off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 2) HWRNG_TYPE="onerng"
+ dialog --title $"OneRNG Device" \
+ --msgbox $"Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation" 8 60
+ ;;
+ 255) exit 1;;
+ esac
+ else
+ HWRNG_TYPE="beaglebone"
+ fi
+ save_configuration_values
+ fi
+}
+
+function choose_social_key_management {
+ if [[ $MINIMAL_INSTALL == "no" ]]; then
+ interactive_gpg
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ SOCIAL_KEY_STR=$"\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."
+ if [[ $(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" temp.cfg | awk -F '=' '{print $2}') == "yes" ]]; then
+ dialog --title $"Social Key Management" \
+ --backtitle $"Freedombone Configuration" \
+ --yesno "$SOCIAL_KEY_STR" 15 60
+ else
+ dialog --title $"Social Key Management" \
+ --backtitle $"Freedombone Configuration" \
+ --defaultno \
+ --yesno "$SOCIAL_KEY_STR" 15 60
+ fi
+ sel=$?
+ case $sel in
+ 0) ENABLE_SOCIAL_KEY_MANAGEMENT="yes";;
+ 255) exit 1;;
+ esac
+ save_configuration_values
+ else
+ # enable for the minimal case
+ ENABLE_SOCIAL_KEY_MANAGEMENT="yes"
+ fi
+}
+
+function choose_username {
+ if [ -d /home/$GENERIC_IMAGE_USERNAME ]; then
+ if [ ! -f $IMAGE_PASSWORD_FILE ]; then
+ echo 'Cannot find the password file for the admin user'
+ exit 62753
+ fi
+ # when installing from an image which comes with a known default user account
+ SELECTED_USERNAME=
+ while [ ! $SELECTED_USERNAME ]
+ do
+ if [ ! $SELECTED_USERNAME ]; then
+ SELECTED_USERNAME=$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')
+ fi
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"Username" \
+ --inputbox $"Set your username for the system\n\nYour username should not contain any spaces" 12 60 "$SELECTED_USERNAME" 2> $data
+ sel=$?
+ case $sel in
+ 0) possible_username=$(cat $data)
+ SELECTED_USERNAME=
+ if [[ $possible_username != *' '* && $possible_username != *'/'* && $possible_username != *'\'* && $possible_username != *'*'* ]]; then
+ if [ $possible_username ]; then
+ if [ ${#possible_username} -gt 1 ]; then
+ if [[ $possible_username != $GENERIC_IMAGE_USERNAME ]]; then
+ MY_USERNAME=$(cat $data)
+ useradd -m -s /bin/bash $MY_USERNAME
+ if [ -d /home/$MY_USERNAME ]; then
+ echo "${MY_USERNAME}:$(printf `cat $IMAGE_PASSWORD_FILE`)" | chpasswd
+ # Add the user as a sudoer - they will be the new admin user
+ if ! grep -q "$MY_USERNAME ALL=(ALL) ALL" /etc/sudoers; then
+ echo "$MY_USERNAME ALL=(ALL) ALL" >> /etc/sudoers
+ # remove the generic image admin user from sudoers
+ sed -i "s|${GENERIC_IMAGE_USERNAME}.*||g" /etc/sudoers
+ fi
+ break
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ done
+ else
+ no_of_users=$(find /home/* -maxdepth 0 -type d | wc -l)
+ if [ $no_of_users -eq 1 ]; then
+ # only a single user on the system
+ MY_USERNAME=$(ls /home)
+ else
+ # select one from a number of users
+ select_user
+ if [ ! $SELECTED_USERNAME ]; then
+ echo $'No username selected'
+ exit 72589
+ fi
+ MY_USERNAME="$SELECTED_USERNAME"
+ fi
+ fi
+
+ if [ ! $MY_USERNAME ]; then
+ echo $'No user account was selected'
+ exit 64398
+ fi
+ if [[ $MY_USERNAME == '-f' ]]; then
+ echo $'No user account was selected'
+ exit 8347
+ fi
+ if [[ $MY_USERNAME == 'debian' || $MY_USERNAME == 'fbone' ]]; then
+ echo $"Don't use the default user account"
+ exit 9341
+ fi
+ if [ ! -d /home/$MY_USERNAME ]; then
+ echo $"The directory /home/$MY_USERNAME does not exist"
+ exit 6437
+ fi
+ save_configuration_values
+}
+
+function choose_full_name {
+ valid_name=
+ while [ ! $valid_name ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --inputbox $"Your full name (or nick)" 10 30 "$(grep 'MY_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
+ sel=$?
+ case $sel in
+ 0) possible_name=$(cat $data)
+ if [ "$possible_name" ]; then
+ if [ ${#possible_name} -gt 1 ]; then
+ valid_name="$possible_name"
+ MY_NAME="$possible_name"
+ break;
+ fi
+ fi
+ ;;
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ done
+ save_configuration_values
+}
+
+function choose_system_variant {
+ available_variants_list=()
+ available_system_variants
+
+ varslist=""
+ n=1
+ for a in "${available_variants_list[@]}"
+ do
+ varstate='off'
+ if [[ "$a" == $'full' || "$a" == $'Full' ]]; then
+ varstate='on'
+ fi
+ varslist="$varslist $n $a $varstate"
+ n=$[n+1]
+ done
+
+ variant_choice=$(dialog --stdout --backtitle $"Freedombone Configuration" \
+ --title $"Type of Installation" \
+ --radiolist $'Choose:' \
+ 27 40 20 $varslist)
+
+ if [ $? -eq 0 ]; then
+ variant_choice=$[variant_choice-1]
+ SYSTEM_TYPE=${available_variants_list[$variant_choice]}
+ save_configuration_values
+ fi
}
function validate_freedns_code {
- freedns_code="$1"
+ freedns_code="$1"
- FREEDNS_MESSAGE=$"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."
+ FREEDNS_MESSAGE=$"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."
- if [[ "$freedns_code" == *"."* || "$freedns_code" == "http"* || "$freedns_code" == *"wget "* || "$freedns_code" == *" "* ]]; then
- dialog --title $"Invalid FreeDNS Code" --msgbox "$FREEDNS_MESSAGE" 10 70
- VALID_CODE=
- fi
- if [ ${#freedns_code} -lt 30 ]; then
- dialog --title $"Invalid FreeDNS Code" --msgbox $'FreeDNS code is too short. Did you enter the entire code?' 6 70
- VALID_CODE=
- fi
- VALID_CODE='yes'
+ if [[ "$freedns_code" == *"."* || "$freedns_code" == "http"* || "$freedns_code" == *"wget "* || "$freedns_code" == *" "* ]]; then
+ dialog --title $"Invalid FreeDNS Code" --msgbox "$FREEDNS_MESSAGE" 10 70
+ VALID_CODE=
+ fi
+ if [ ${#freedns_code} -lt 30 ]; then
+ dialog --title $"Invalid FreeDNS Code" --msgbox $'FreeDNS code is too short. Did you enter the entire code?' 6 70
+ VALID_CODE=
+ fi
+ VALID_CODE='yes'
}
# Get the commandline options
while [[ $# > 1 ]]
do
- key="$1"
+ key="$1"
- case $key in
- -h|--help)
- show_help
- ;;
- # Configuration filename
- -f|--filename)
- shift
- CONFIGURATION_FILE="$1"
- ;;
- # Minimum password length
- -m|--min)
- shift
- MINIMUM_PASSWORD_LENGTH="$1"
- ;;
- # Freedombone website
- -w|--www)
- shift
- FREEDOMBONE_WEBSITE="$1"
- ;;
- --minimal)
- shift
- MINIMAL_INSTALL="$1"
- ;;
- -o|--onion)
- shift
- ONION_ONLY="$1"
- ;;
- *)
- # unknown option
- ;;
- esac
- shift
+ case $key in
+ -h|--help)
+ show_help
+ ;;
+ # Configuration filename
+ -f|--filename)
+ shift
+ CONFIGURATION_FILE="$1"
+ ;;
+ # Minimum password length
+ -m|--min)
+ shift
+ MINIMUM_PASSWORD_LENGTH="$1"
+ ;;
+ # Freedombone website
+ -w|--www)
+ shift
+ FREEDOMBONE_WEBSITE="$1"
+ ;;
+ --minimal)
+ shift
+ MINIMAL_INSTALL="$1"
+ ;;
+ -o|--onion)
+ shift
+ ONION_ONLY="$1"
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
+ shift
done
-function save_configuration_file {
- if [ ! $CONFIGURATION_FILE ]; then
- CONFIGURATION_FILE='freedombone.cfg'
- fi
-
- echo "MY_USERNAME=$MY_USERNAME" > $CONFIGURATION_FILE
- echo "DEFAULT_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME" >> $CONFIGURATION_FILE
- if [ $DEFAULT_DOMAIN_CODE ]; then
- echo "DEFAULT_DOMAIN_CODE=$DEFAULT_DOMAIN_CODE" >> $CONFIGURATION_FILE
- fi
- echo "SYSTEM_TYPE=$SYSTEM_TYPE" >> $CONFIGURATION_FILE
- echo "INSTALLING_ON_BBB=$INSTALLING_ON_BBB" >> $CONFIGURATION_FILE
- echo "USB_DRIVE=$USB_DRIVE" >> $CONFIGURATION_FILE
- echo "DDNS_PROVIDER=$DDNS_PROVIDER" >> $CONFIGURATION_FILE
- echo "DDNS_USERNAME=$DDNS_USERNAME" >> $CONFIGURATION_FILE
- echo "DDNS_PASSWORD=$DDNS_PASSWORD" >> $CONFIGURATION_FILE
- echo "DEFAULT_LANGUAGE=$DEFAULT_LANGUAGE" >> $CONFIGURATION_FILE
- if [ "$MY_NAME" ]; then
- echo "MY_NAME=$MY_NAME" >> $CONFIGURATION_FILE
- fi
- echo "MY_EMAIL_ADDRESS=$MY_EMAIL_ADDRESS" >> $CONFIGURATION_FILE
- if [ $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
- echo "LOCAL_NETWORK_STATIC_IP_ADDRESS=$LOCAL_NETWORK_STATIC_IP_ADDRESS" >> $CONFIGURATION_FILE
- echo "ROUTER_IP_ADDRESS=$ROUTER_IP_ADDRESS" >> $CONFIGURATION_FILE
- fi
- if [ $ENABLE_CJDNS ]; then
- echo "ENABLE_CJDNS=$ENABLE_CJDNS" >> $CONFIGURATION_FILE
- fi
- if [ $ENABLE_BATMAN ]; then
- echo "ENABLE_BATMAN=$ENABLE_BATMAN" >> $CONFIGURATION_FILE
- fi
- if [ $ENABLE_BABEL ]; then
- echo "ENABLE_BABEL=$ENABLE_BABEL" >> $CONFIGURATION_FILE
- fi
- echo "DEBIAN_REPO=$DEBIAN_REPO" >> $CONFIGURATION_FILE
- if [ $NAMESERVER1 ]; then
- echo "NAMESERVER1=$NAMESERVER1" >> $CONFIGURATION_FILE
- fi
- if [ $NAMESERVER2 ]; then
- echo "NAMESERVER2=$NAMESERVER2" >> $CONFIGURATION_FILE
- fi
- if [ "$WIKI_TITLE" ]; then
- echo "WIKI_TITLE=$WIKI_TITLE" >> $CONFIGURATION_FILE
- fi
- if [ $WIKI_DOMAIN_NAME ]; then
- echo "WIKI_DOMAIN_NAME=$WIKI_DOMAIN_NAME" >> $CONFIGURATION_FILE
- fi
- if [ $WIKI_CODE ]; then
- echo "WIKI_CODE=$WIKI_CODE" >> $CONFIGURATION_FILE
- fi
- if [ "$MY_BLOG_TITLE" ]; then
- echo "MY_BLOG_TITLE=$MY_BLOG_TITLE" >> $CONFIGURATION_FILE
- fi
- if [ $FULLBLOG_DOMAIN_NAME ]; then
- echo "FULLBLOG_DOMAIN_NAME=$FULLBLOG_DOMAIN_NAME" >> $CONFIGURATION_FILE
- fi
- if [ $FULLBLOG_CODE ]; then
- echo "FULLBLOG_CODE=$FULLBLOG_CODE" >> $CONFIGURATION_FILE
- fi
- if [ $HUBZILLA_DOMAIN_NAME ]; then
- echo "HUBZILLA_DOMAIN_NAME=$HUBZILLA_DOMAIN_NAME" >> $CONFIGURATION_FILE
- fi
- if [ $HUBZILLA_CODE ]; then
- echo "HUBZILLA_CODE=$HUBZILLA_CODE" >> $CONFIGURATION_FILE
- fi
- if [ ${#MICROBLOG_DOMAIN_NAME} -gt 1 ]; then
- echo "MICROBLOG_DOMAIN_NAME=$MICROBLOG_DOMAIN_NAME" >> $CONFIGURATION_FILE
- fi
- if [ $MICROBLOG_CODE ]; then
- echo "MICROBLOG_CODE=$MICROBLOG_CODE" >> $CONFIGURATION_FILE
- fi
- if [ ${#MICROBLOG_WELCOME_MESSAGE} -gt 1 ]; then
- echo "MICROBLOG_WELCOME_MESSAGE=$MICROBLOG_WELCOME_MESSAGE" >> $CONFIGURATION_FILE
- fi
- if [ $MICROBLOG_BACKGROUND_IMAGE_URL ]; then
- echo "MICROBLOG_BACKGROUND_IMAGE_URL=$MICROBLOG_BACKGROUND_IMAGE_URL" >> $CONFIGURATION_FILE
- fi
- if [ $GIT_DOMAIN_NAME ]; then
- echo "GIT_DOMAIN_NAME=$GIT_DOMAIN_NAME" >> $CONFIGURATION_FILE
- fi
- if [ $GIT_CODE ]; then
- echo "GIT_CODE=$GIT_CODE" >> $CONFIGURATION_FILE
- fi
- if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
- echo "MEDIAGOBLIN_DOMAIN_NAME=$MEDIAGOBLIN_DOMAIN_NAME" >> $CONFIGURATION_FILE
- fi
- if [ $MEDIAGOBLIN_CODE ]; then
- echo "MEDIAGOBLIN_CODE=$MEDIAGOBLIN_CODE" >> $CONFIGURATION_FILE
- fi
- if [ $HWRNG_TYPE ]; then
- echo "HWRNG_TYPE=$HWRNG_TYPE" >> $CONFIGURATION_FILE
- fi
- if [ $ENABLE_SOCIAL_KEY_MANAGEMENT ]; then
- echo "ENABLE_SOCIAL_KEY_MANAGEMENT=$ENABLE_SOCIAL_KEY_MANAGEMENT" >> $CONFIGURATION_FILE
- fi
- if [ $WIFI_SSID ]; then
- echo "WIFI_SSID=$WIFI_SSID" >> $CONFIGURATION_FILE
- fi
- if [ $WIFI_INTERFACE ]; then
- echo "WIFI_INTERFACE=$WIFI_INTERFACE" >> $CONFIGURATION_FILE
- fi
- if [ $WIFI_TYPE ]; then
- echo "WIFI_TYPE=$WIFI_TYPE" >> $CONFIGURATION_FILE
- fi
- if [ ${#WIFI_PASSPHRASE} -gt 1 ]; then
- echo "WIFI_PASSPHRASE=$WIFI_PASSPHRASE" >> $CONFIGURATION_FILE
- fi
- if [ $WIFI_HOTSPOT ]; then
- echo "WIFI_HOTSPOT=$WIFI_HOTSPOT" >> $CONFIGURATION_FILE
- fi
- if [ $BATMAN_CELLID ]; then
- echo "BATMAN_CELLID=$BATMAN_CELLID" >> $CONFIGURATION_FILE
- fi
- if [ $WIFI_CHANNEL ]; then
- echo "WIFI_CHANNEL=$WIFI_CHANNEL" >> $CONFIGURATION_FILE
- fi
- if [ $DH_KEYLENGTH ]; then
- echo "DH_KEYLENGTH=$DH_KEYLENGTH" >> $CONFIGURATION_FILE
- fi
- echo "ONION_ONLY=$ONION_ONLY" >> $CONFIGURATION_FILE
-
- if [ $FRIENDS_MIRRORS_SERVER ]; then
- echo "FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER" >> $CONFIGURATION_FILE
- fi
- if [ $FRIENDS_MIRRORS_SSH_PORT ]; then
- echo "FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT" >> $CONFIGURATION_FILE
- fi
- if [ $FRIENDS_MIRRORS_PASSWORD ]; then
- echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
- fi
-}
-
-# test a domain name to see if it's valid
-function validate_domain_name {
- # count the number of dots in the domain name
- dots=${TEST_DOMAIN_NAME//[^.]}
- no_of_dots=${#dots}
- if (( no_of_dots > 3 )); then
- TEST_DOMAIN_NAME="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"
- fi
- if (( no_of_dots == 0 )); then
- TEST_DOMAIN_NAME="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"
- fi
-}
-
-function interactive_gpg_from_remote {
- REMOTE_SERVERS_LIST=/home/$MY_USERNAME/keyshareservers.txt
-
- # get a list of remote servers
- ${PROJECT_NAME}-remote -u $MY_USERNAME -l $REMOTE_SERVERS_LIST -t "Remote server"
-
- if [ ! -f $REMOTE_SERVERS_LIST ]; then
- dialog --title $"Encryption keys" --msgbox $'Error obtaining server list' 6 70
- return 1
- fi
-
- # check the number of entries in the file
- no_of_servers=$(cat $REMOTE_SERVERS_LIST | wc -l)
- if (( no_of_servers < 3 )); then
- dialog --title $"Encryption keys" \
- --msgbox $'There must be at least three servers to recover the key' 6 70
- return 2
- fi
-
- # try to recover the key from the servers
- apt-get -y install libgfshare-bin gnupg
- ${PROJECT_NAME}-recoverkey -u $MY_USERNAME -l $REMOTE_SERVERS_LIST
- if [ ! "$?" = "0" ]; then
- dialog --title $"Encryption keys" --msgbox $'Your key could not be recovered' 6 70
- return 3
- fi
-
- dialog --title $"Encryption keys" --msgbox $'Your key has been recovered' 6 70
-
- return 0
-}
-
-function reconstruct_key {
- if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
- return
- fi
- cd /home/$MY_USERNAME/.gnupg_fragments
- no_of_shares=$(ls -afq keyshare.asc.* | wc -l)
- if (( no_of_shares < 4 )); then
- dialog --title $"Encryption keys" --msgbox $'Not enough fragments to reconstruct the key' 6 70
- exit 7348
- fi
- apt-get -y install libgfshare-bin gnupg
- gfcombine /home/$MY_USERNAME/.gnupg_fragments/keyshare*
- if [ ! "$?" = "0" ]; then
- dialog --title $"Encryption keys" --msgbox $'Unable to reconstruct the key' 6 70
- exit 7348
- fi
-
- KEYS_FILE=/home/$MY_USERNAME/.gnupg_fragments/keyshare.asc
- if [ ! -f $KEYS_FILE ]; then
- dialog --title $"Encryption keys" --msgbox $'Unable to reconstruct the key' 6 70
- fi
-
- su -c "gpg --allow-secret-key-import --import $KEYS_FILE" - $MY_USERNAME
- if [ ! "$?" = "0" ]; then
- echo $'Unable to import gpg key'
- shred -zu $KEYS_FILE
- rm -rf /home/$MY_USERNAME/.tempgnupg
- exit 9654
- fi
- shred -zu $KEYS_FILE
-
- dialog --title $"Encryption keys" --msgbox $'Key has been reconstructed' 6 70
-}
-
-function interactive_gpg_from_usb {
- dialog --title $"Encryption keys" \
- --msgbox $'Plug in a USB drive containing a copy of your full key or key fragment' 6 70
-
- HOME_DIR=/home/$MY_USERNAME
- GPG_LOADING="yes"
- SSH_IMPORTED="no"
- GPG_CTR=0
- while [[ $GPG_LOADING == "yes" ]]
- do
- if [[ $INSTALLING_ON_BBB == "yes" ]]; then
- GPG_USB_DRIVE='/dev/sda1'
- if [ ! -b $GPG_USB_DRIVE ]; then
- if (( GPG_CTR > 0 )); then
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" --msgbox $'No USB drive found' 6 30
- exit 739836
- fi
- else
- GPG_USB_DRIVE='/dev/sdb1'
- if [ ! -b $GPG_USB_DRIVE ]; then
- GPG_USB_DRIVE='/dev/sdc1'
- if [ ! -b $GPG_USB_DRIVE ]; then
- GPG_USB_DRIVE='/dev/sdd1'
- if [ ! -b $GPG_USB_DRIVE ]; then
- if (( GPG_CTR > 0 )); then
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" --msgbox $'No USB drive found' 6 30
- exit 27852
- fi
- fi
- fi
- fi
-
- GPG_USB_MOUNT='/mnt/usb'
- umount -f $GPG_USB_MOUNT
- if [ ! -d $GPG_USB_MOUNT ]; then
- mkdir -p $GPG_USB_MOUNT
- fi
-
- if [ -f /dev/mapper/encrypted_usb ]; then
- rm -rf /dev/mapper/encrypted_usb
- fi
- cryptsetup luksClose encrypted_usb
- cryptsetup luksOpen $GPG_USB_DRIVE encrypted_usb
- if [ "$?" = "0" ]; then
- GPG_USB_DRIVE=/dev/mapper/encrypted_usb
- fi
- mount $GPG_USB_DRIVE $GPG_USB_MOUNT
- if [ ! "$?" = "0" ]; then
- if (( GPG_CTR > 0 )); then
- rm -rf $GPG_USB_MOUNT
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" \
- --msgbox $"There was a problem mounting the USB drive to $GPG_USB_MOUNT" 6 70
- rm -rf $GPG_USB_MOUNT
- exit 74393
- fi
-
- if [ ! -d $GPG_USB_MOUNT/.gnupg ]; then
- if [ ! -d $GPG_USB_MOUNT/.gnupg_fragments ]; then
- if (( GPG_CTR > 0 )); then
- umount -f $GPG_USB_MOUNT
- rm -rf $GPG_USB_MOUNT
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" \
- --msgbox $"The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found" 6 70
- umount -f $GPG_USB_MOUNT
- rm -rf $GPG_USB_MOUNT
- exit 723814
- fi
- fi
-
- if [ -d $GPG_USB_MOUNT/.gnupg ]; then
- if [ ! -d $HOME_DIR/.gnupg ]; then
- mkdir $HOME_DIR/.gnupg
- fi
- cp -r $GPG_USB_MOUNT/.gnupg/* $HOME_DIR/.gnupg
- GPG_LOADING="no"
- dialog --title $"Encryption keys" \
- --msgbox $"GPG Keyring loaded to $HOME_DIR" 6 70
- else
- if [ ! -d $HOME_DIR/.gnupg_fragments ]; then
- mkdir $HOME_DIR/.gnupg_fragments
- fi
- cp -r $GPG_USB_MOUNT/.gnupg_fragments/* $HOME_DIR/.gnupg_fragments
- fi
-
- if [[ $SSH_IMPORTED == "no" ]]; then
- if [ -d $GPG_USB_MOUNT/.ssh ]; then
- if [ ! -d $HOME_DIR/.ssh ]; then
- mkdir $HOME_DIR/.ssh
- fi
- cp $GPG_USB_MOUNT/.ssh/* $HOME_DIR/.ssh
- dialog --title $"Encryption keys" \
- --msgbox $"ssh keys imported" 6 70
- SSH_IMPORTED="yes"
- fi
- fi
-
- umount -f $GPG_USB_MOUNT
- rm -rf $GPG_USB_MOUNT
- if [[ $GPG_LOADING == "yes" ]]; then
- dialog --title $"Encryption keys" \
- --msgbox $"Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish" 6 70
- fi
- GPG_CTR=$((GPG_CTR + 1))
- done
-}
-
-function interactive_gpg {
- GPG_CONFIGURED="no"
- while [[ $GPG_CONFIGURED != "yes" ]]
- do
- GPG_CONFIGURED="yes"
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"GPG/PGP keys for your system:" 13 70 3 \
- 1 $"Generate new keys (new user)" on \
- 2 $"Import keys from USB drive/s" off \
- 3 $"Retrieve keys from friends servers" off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 2;;
- esac
- case $(cat $data) in
- 1) if [ -d /home/$MY_USERNAME/.gnupg ]; then
- rm -rf /home/$MY_USERNAME/.gnupg
- fi
- break;;
- 2) interactive_gpg_from_usb
- break;;
- 3) interactive_gpg_from_remote
- if [ ! "$?" = "0" ]; then
- GPG_CONFIGURED="no"
- fi;;
- esac
- done
-}
-
function set_main_repo {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Main Repository (Mirrors)" \
- --form $"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." 18 65 4 \
- $"URL:" 1 1 "$FRIENDS_MIRRORS_SERVER" 1 18 40 18 \
- $"SSH Port:" 2 1 "$FRIENDS_MIRRORS_SSH_PORT" 2 18 10 10000 \
- $"Password:" 3 1 "$FRIENDS_MIRRORS_PASSWORD" 3 18 40 10000 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- new_mirrors_url=$(cat $data | sed -n 1p)
- new_mirrors_ssh_port=$(cat $data | sed -n 2p)
- new_mirrors_password=$(cat $data | sed -n 3p)
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"Main Repository (Mirrors)" \
+ --form $"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." 18 65 4 \
+ $"URL:" 1 1 "$FRIENDS_MIRRORS_SERVER" 1 18 40 18 \
+ $"SSH Port:" 2 1 "$FRIENDS_MIRRORS_SSH_PORT" 2 18 10 10000 \
+ $"Password:" 3 1 "$FRIENDS_MIRRORS_PASSWORD" 3 18 40 10000 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ new_mirrors_url=$(cat $data | sed -n 1p)
+ new_mirrors_ssh_port=$(cat $data | sed -n 2p)
+ new_mirrors_password=$(cat $data | sed -n 3p)
- if [ ${#new_mirrors_url} -lt 2 ]; then
- return
- fi
- if [ ${#new_mirrors_ssh_port} -lt 1 ]; then
- return
- fi
- if [ ${#new_mirrors_password} -lt 10 ]; then
- dialog --title $"Main Repository" \
- --msgbox $'Mirrors password was too short. Should be at least 10 characters.' 6 40
- return
- fi
+ if [ ${#new_mirrors_url} -lt 2 ]; then
+ return
+ fi
+ if [ ${#new_mirrors_ssh_port} -lt 1 ]; then
+ return
+ fi
+ if [ ${#new_mirrors_password} -lt 10 ]; then
+ dialog --title $"Main Repository" \
+ --msgbox $'Mirrors password was too short. Should be at least 10 characters.' 6 40
+ return
+ fi
- if [[ $new_mirrors_url == *"."* ]]; then
- FRIENDS_MIRRORS_SERVER=$new_mirrors_url
- FRIENDS_MIRRORS_SSH_PORT=$new_mirrors_ssh_port
- FRIENDS_MIRRORS_PASSWORD=$new_mirrors_password
+ if [[ $new_mirrors_url == *"."* ]]; then
+ FRIENDS_MIRRORS_SERVER=$new_mirrors_url
+ FRIENDS_MIRRORS_SSH_PORT=$new_mirrors_ssh_port
+ FRIENDS_MIRRORS_PASSWORD=$new_mirrors_password
- dialog --title $"Main Repository" \
- --msgbox $"Main repository set to $FRIENDS_MIRRORS_SERVER" 6 60
- fi
+ dialog --title $"Main Repository" \
+ --msgbox $"Main repository set to $FRIENDS_MIRRORS_SERVER" 6 60
+ fi
+ save_configuration_values
}
function interactive_select_language {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Select your language:" 26 40 24 \
- 1 $"Afrikaans" off \
- 2 $"Albanian" off \
- 3 $"Arabic" off \
- 4 $"Basque" off \
- 5 $"Belarusian" off \
- 6 $"Bosnian" off \
- 7 $"Bulgarian" off \
- 8 $"Catalan" off \
- 9 $"Croatian" off \
- 10 $"Chinese (Simplified)" off \
- 11 $"Chinese (Traditional)" off \
- 12 $"Czech" off \
- 13 $"Danish" off \
- 14 $"Dutch" off \
- 15 $"English" on \
- 16 $"English (US)" off \
- 17 $"Estonian" off \
- 18 $"Farsi" off \
- 19 $"Filipino" off \
- 20 $"Finnish" off \
- 21 $"French" off \
- 22 $"French (Canada)" off \
- 23 $"Gaelic" off \
- 24 $"Gallego" off \
- 25 $"Georgian" off \
- 26 $"German" off \
- 27 $"German (Personal)" off \
- 28 $"Greek" off \
- 29 $"Gujarati" off \
- 30 $"Hebrew" off \
- 31 $"Hindi" off \
- 32 $"Hungarian" off \
- 33 $"Icelandic" off \
- 34 $"Indonesian" off \
- 35 $"Italian" off \
- 36 $"Japanese" off \
- 37 $"Kannada" off \
- 38 $"Khmer" off \
- 39 $"Korean" off \
- 40 $"Lao" off \
- 41 $"Lithuanian" off \
- 42 $"Latvian" off \
- 43 $"Malayalam" off \
- 44 $"Malaysian" off \
- 45 $"Maori (Ngai Tahu)" off \
- 46 $"Maori (Waikoto Uni)" off \
- 47 $"Mongolian" off \
- 48 $"Norwegian" off \
- 49 $"Norwegian (Primary)" off \
- 50 $"Nynorsk" off \
- 51 $"Polish" off \
- 52 $"Portuguese" off \
- 53 $"Portuguese (Brazil)" off \
- 54 $"Romanian" off \
- 55 $"Russian" off \
- 56 $"Samoan" off \
- 57 $"Serbian" off \
- 58 $"Slovak" off \
- 59 $"Slovenian" off \
- 60 $"Somali" off \
- 61 $"Spanish (International)" off \
- 62 $"Swedish" off \
- 63 $"Tagalog" off \
- 64 $"Tamil" off \
- 65 $"Thai" off \
- 66 $"Turkish" off \
- 67 $"Ukrainian" off \
- 68 $"Vietnamese" off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) DEFAULT_LANGUAGE='af_ZA.UTF-8';;
- 2) DEFAULT_LANGUAGE='sq_AL.UTF-8';;
- 3) DEFAULT_LANGUAGE='ar_SA.UTF-8';;
- 4) DEFAULT_LANGUAGE='eu_ES.UTF-8';;
- 5) DEFAULT_LANGUAGE='be_BY.UTF-8';;
- 6) DEFAULT_LANGUAGE='bs_BA.UTF-8';;
- 7) DEFAULT_LANGUAGE='bg_BG.UTF-8';;
- 8) DEFAULT_LANGUAGE='ca_ES.UTF-8';;
- 9) DEFAULT_LANGUAGE='hr_HR.UTF-8';;
- 10) DEFAULT_LANGUAGE='zh_CN.UTF-8';;
- 11) DEFAULT_LANGUAGE='zh_TW.UTF-8';;
- 12) DEFAULT_LANGUAGE='cs_CZ.UTF-8';;
- 13) DEFAULT_LANGUAGE='da_DK.UTF-8';;
- 14) DEFAULT_LANGUAGE='nl_NL.UTF-8';;
- 15) DEFAULT_LANGUAGE='en.UTF-8';;
- 16) DEFAULT_LANGUAGE='en_us.UTF-8';;
- 17) DEFAULT_LANGUAGE='et_EE.UTF-8';;
- 18) DEFAULT_LANGUAGE='fa_IR.UTF-8';;
- 19) DEFAULT_LANGUAGE='ph_PH.UTF-8';;
- 20) DEFAULT_LANGUAGE='fi_FI.UTF-8';;
- 21) DEFAULT_LANGUAGE='fr_FR.UTF-8';;
- 22) DEFAULT_LANGUAGE='fr_CA.UTF-8';;
- 23) DEFAULT_LANGUAGE='ga.UTF-8';;
- 24) DEFAULT_LANGUAGE='l_ES.UTF-8';;
- 25) DEFAULT_LANGUAGE='ka_GE.UTF-8';;
- 26) DEFAULT_LANGUAGE='de_DE.UTF-8';;
- 27) DEFAULT_LANGUAGE='de_DE.UTF-8';;
- 28) DEFAULT_LANGUAGE='el_GR.UTF-8';;
- 29) DEFAULT_LANGUAGE='gu.UTF-8';;
- 30) DEFAULT_LANGUAGE='he_IL.utf8';;
- 31) DEFAULT_LANGUAGE='hi_IN.UTF-8';;
- 32) DEFAULT_LANGUAGE='hu.UTF-8';;
- 33) DEFAULT_LANGUAGE='is_IS.UTF-8';;
- 34) DEFAULT_LANGUAGE='id_ID.UTF-8';;
- 35) DEFAULT_LANGUAGE='it_IT.UTF-8';;
- 36) DEFAULT_LANGUAGE='ja_JP.UTF-8';;
- 37) DEFAULT_LANGUAGE='kn_IN.UTF-8';;
- 38) DEFAULT_LANGUAGE='km_KH.UTF-8';;
- 39) DEFAULT_LANGUAGE='ko_KR.UTF-8';;
- 40) DEFAULT_LANGUAGE='lo_LA.UTF-8';;
- 41) DEFAULT_LANGUAGE='lt_LT.UTF-8';;
- 42) DEFAULT_LANGUAGE='lat.UTF-8';;
- 43) DEFAULT_LANGUAGE='ml_IN.UTF-8';;
- 44) DEFAULT_LANGUAGE='ms_MY.UTF-8';;
- 45) DEFAULT_LANGUAGE='mi_NZ.UTF-8';;
- 46) DEFAULT_LANGUAGE='mi_NZ.UTF-8';;
- 47) DEFAULT_LANGUAGE='mn.UTF-8';;
- 48) DEFAULT_LANGUAGE='no_NO.UTF-8';;
- 49) DEFAULT_LANGUAGE='no_NO.UTF-8';;
- 50) DEFAULT_LANGUAGE='nn_NO.UTF-8';;
- 51) DEFAULT_LANGUAGE='pl.UTF-8';;
- 52) DEFAULT_LANGUAGE='pt_PT.UTF-8';;
- 53) DEFAULT_LANGUAGE='pt_BR.UTF-8';;
- 54) DEFAULT_LANGUAGE='ro_RO.UTF-8';;
- 55) DEFAULT_LANGUAGE='ru_RU.UTF-8';;
- 56) DEFAULT_LANGUAGE='mi_NZ.UTF-8';;
- 57) DEFAULT_LANGUAGE='sr_CS.UTF-8';;
- 58) DEFAULT_LANGUAGE='sk_SK.UTF-8';;
- 59) DEFAULT_LANGUAGE='sl_SI.UTF-8';;
- 60) DEFAULT_LANGUAGE='so_SO.UTF-8';;
- 61) DEFAULT_LANGUAGE='es_ES.UTF-8';;
- 62) DEFAULT_LANGUAGE='sv_SE.UTF-8';;
- 63) DEFAULT_LANGUAGE='tl.UTF-8';;
- 64) DEFAULT_LANGUAGE='ta_IN.UTF-8';;
- 65) DEFAULT_LANGUAGE='th_TH.UTF-8';;
- 66) DEFAULT_LANGUAGE='tr_TR.UTF-8';;
- 67) DEFAULT_LANGUAGE='uk_UA.UTF-8';;
- 68) DEFAULT_LANGUAGE='vi_VN.UTF-8';;
- esac
- save_configuration_file
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --radiolist $"Select your language:" 26 40 24 \
+ 1 $"Afrikaans" off \
+ 2 $"Albanian" off \
+ 3 $"Arabic" off \
+ 4 $"Basque" off \
+ 5 $"Belarusian" off \
+ 6 $"Bosnian" off \
+ 7 $"Bulgarian" off \
+ 8 $"Catalan" off \
+ 9 $"Croatian" off \
+ 10 $"Chinese (Simplified)" off \
+ 11 $"Chinese (Traditional)" off \
+ 12 $"Czech" off \
+ 13 $"Danish" off \
+ 14 $"Dutch" off \
+ 15 $"English" on \
+ 16 $"English (US)" off \
+ 17 $"Estonian" off \
+ 18 $"Farsi" off \
+ 19 $"Filipino" off \
+ 20 $"Finnish" off \
+ 21 $"French" off \
+ 22 $"French (Canada)" off \
+ 23 $"Gaelic" off \
+ 24 $"Gallego" off \
+ 25 $"Georgian" off \
+ 26 $"German" off \
+ 27 $"German (Personal)" off \
+ 28 $"Greek" off \
+ 29 $"Gujarati" off \
+ 30 $"Hebrew" off \
+ 31 $"Hindi" off \
+ 32 $"Hungarian" off \
+ 33 $"Icelandic" off \
+ 34 $"Indonesian" off \
+ 35 $"Italian" off \
+ 36 $"Japanese" off \
+ 37 $"Kannada" off \
+ 38 $"Khmer" off \
+ 39 $"Korean" off \
+ 40 $"Lao" off \
+ 41 $"Lithuanian" off \
+ 42 $"Latvian" off \
+ 43 $"Malayalam" off \
+ 44 $"Malaysian" off \
+ 45 $"Maori (Ngai Tahu)" off \
+ 46 $"Maori (Waikoto Uni)" off \
+ 47 $"Mongolian" off \
+ 48 $"Norwegian" off \
+ 49 $"Norwegian (Primary)" off \
+ 50 $"Nynorsk" off \
+ 51 $"Polish" off \
+ 52 $"Portuguese" off \
+ 53 $"Portuguese (Brazil)" off \
+ 54 $"Romanian" off \
+ 55 $"Russian" off \
+ 56 $"Samoan" off \
+ 57 $"Serbian" off \
+ 58 $"Slovak" off \
+ 59 $"Slovenian" off \
+ 60 $"Somali" off \
+ 61 $"Spanish (International)" off \
+ 62 $"Swedish" off \
+ 63 $"Tagalog" off \
+ 64 $"Tamil" off \
+ 65 $"Thai" off \
+ 66 $"Turkish" off \
+ 67 $"Ukrainian" off \
+ 68 $"Vietnamese" off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) DEFAULT_LANGUAGE='af_ZA.UTF-8';;
+ 2) DEFAULT_LANGUAGE='sq_AL.UTF-8';;
+ 3) DEFAULT_LANGUAGE='ar_SA.UTF-8';;
+ 4) DEFAULT_LANGUAGE='eu_ES.UTF-8';;
+ 5) DEFAULT_LANGUAGE='be_BY.UTF-8';;
+ 6) DEFAULT_LANGUAGE='bs_BA.UTF-8';;
+ 7) DEFAULT_LANGUAGE='bg_BG.UTF-8';;
+ 8) DEFAULT_LANGUAGE='ca_ES.UTF-8';;
+ 9) DEFAULT_LANGUAGE='hr_HR.UTF-8';;
+ 10) DEFAULT_LANGUAGE='zh_CN.UTF-8';;
+ 11) DEFAULT_LANGUAGE='zh_TW.UTF-8';;
+ 12) DEFAULT_LANGUAGE='cs_CZ.UTF-8';;
+ 13) DEFAULT_LANGUAGE='da_DK.UTF-8';;
+ 14) DEFAULT_LANGUAGE='nl_NL.UTF-8';;
+ 15) DEFAULT_LANGUAGE='en_GB.UTF-8';;
+ 16) DEFAULT_LANGUAGE='en_US.UTF-8';;
+ 17) DEFAULT_LANGUAGE='et_EE.UTF-8';;
+ 18) DEFAULT_LANGUAGE='fa_IR.UTF-8';;
+ 19) DEFAULT_LANGUAGE='ph_PH.UTF-8';;
+ 20) DEFAULT_LANGUAGE='fi_FI.UTF-8';;
+ 21) DEFAULT_LANGUAGE='fr_FR.UTF-8';;
+ 22) DEFAULT_LANGUAGE='fr_CA.UTF-8';;
+ 23) DEFAULT_LANGUAGE='ga.UTF-8';;
+ 24) DEFAULT_LANGUAGE='l_ES.UTF-8';;
+ 25) DEFAULT_LANGUAGE='ka_GE.UTF-8';;
+ 26) DEFAULT_LANGUAGE='de_DE.UTF-8';;
+ 27) DEFAULT_LANGUAGE='de_DE.UTF-8';;
+ 28) DEFAULT_LANGUAGE='el_GR.UTF-8';;
+ 29) DEFAULT_LANGUAGE='gu.UTF-8';;
+ 30) DEFAULT_LANGUAGE='he_IL.utf8';;
+ 31) DEFAULT_LANGUAGE='hi_IN.UTF-8';;
+ 32) DEFAULT_LANGUAGE='hu.UTF-8';;
+ 33) DEFAULT_LANGUAGE='is_IS.UTF-8';;
+ 34) DEFAULT_LANGUAGE='id_ID.UTF-8';;
+ 35) DEFAULT_LANGUAGE='it_IT.UTF-8';;
+ 36) DEFAULT_LANGUAGE='ja_JP.UTF-8';;
+ 37) DEFAULT_LANGUAGE='kn_IN.UTF-8';;
+ 38) DEFAULT_LANGUAGE='km_KH.UTF-8';;
+ 39) DEFAULT_LANGUAGE='ko_KR.UTF-8';;
+ 40) DEFAULT_LANGUAGE='lo_LA.UTF-8';;
+ 41) DEFAULT_LANGUAGE='lt_LT.UTF-8';;
+ 42) DEFAULT_LANGUAGE='lat.UTF-8';;
+ 43) DEFAULT_LANGUAGE='ml_IN.UTF-8';;
+ 44) DEFAULT_LANGUAGE='ms_MY.UTF-8';;
+ 45) DEFAULT_LANGUAGE='mi_NZ.UTF-8';;
+ 46) DEFAULT_LANGUAGE='mi_NZ.UTF-8';;
+ 47) DEFAULT_LANGUAGE='mn.UTF-8';;
+ 48) DEFAULT_LANGUAGE='no_NO.UTF-8';;
+ 49) DEFAULT_LANGUAGE='no_NO.UTF-8';;
+ 50) DEFAULT_LANGUAGE='nn_NO.UTF-8';;
+ 51) DEFAULT_LANGUAGE='pl.UTF-8';;
+ 52) DEFAULT_LANGUAGE='pt_PT.UTF-8';;
+ 53) DEFAULT_LANGUAGE='pt_BR.UTF-8';;
+ 54) DEFAULT_LANGUAGE='ro_RO.UTF-8';;
+ 55) DEFAULT_LANGUAGE='ru_RU.UTF-8';;
+ 56) DEFAULT_LANGUAGE='mi_NZ.UTF-8';;
+ 57) DEFAULT_LANGUAGE='sr_CS.UTF-8';;
+ 58) DEFAULT_LANGUAGE='sk_SK.UTF-8';;
+ 59) DEFAULT_LANGUAGE='sl_SI.UTF-8';;
+ 60) DEFAULT_LANGUAGE='so_SO.UTF-8';;
+ 61) DEFAULT_LANGUAGE='es_ES.UTF-8';;
+ 62) DEFAULT_LANGUAGE='sv_SE.UTF-8';;
+ 63) DEFAULT_LANGUAGE='tl.UTF-8';;
+ 64) DEFAULT_LANGUAGE='ta_IN.UTF-8';;
+ 65) DEFAULT_LANGUAGE='th_TH.UTF-8';;
+ 66) DEFAULT_LANGUAGE='tr_TR.UTF-8';;
+ 67) DEFAULT_LANGUAGE='uk_UA.UTF-8';;
+ 68) DEFAULT_LANGUAGE='vi_VN.UTF-8';;
+ esac
+ save_configuration_values
- update-locale LANG=${DEFAULT_LANGUAGE}
- update-locale LANGUAGE=${DEFAULT_LANGUAGE}
- update-locale LC_MESSAGES=${DEFAULT_LANGUAGE}
- update-locale LC_ALL=${DEFAULT_LANGUAGE}
- update-locale LC_CTYPE=${DEFAULT_LANGUAGE}
+ locale-gen "${DEFAULT_LANGUAGE}"
+ update-locale LANG=${DEFAULT_LANGUAGE}
+ update-locale LANGUAGE=${DEFAULT_LANGUAGE}
+ update-locale LC_MESSAGES=${DEFAULT_LANGUAGE}
+ update-locale LC_ALL=${DEFAULT_LANGUAGE}
+ update-locale LC_CTYPE=${DEFAULT_LANGUAGE}
}
function select_user {
- SELECTED_USERNAME=
+ SELECTED_USERNAME=
- users_array=($(ls /home))
+ users_array=($(ls /home))
- delete=(mirrors git)
- for del in ${delete[@]}
- do
- users_array=(${users_array[@]/$del})
- done
+ delete=(mirrors git)
+ for del in ${delete[@]}
+ do
+ users_array=(${users_array[@]/$del})
+ done
- i=0
- W=()
- name=()
- for u in ${users_array[@]}
- do
- i=$((i+1))
- W+=($i "$u")
- name+=("$u")
- done
+ i=0
+ W=()
+ name=()
+ for u in ${users_array[@]}
+ do
+ if [[ $(is_valid_user "$u") == "1" ]]; then
+ i=$((i+1))
+ W+=($i "$u")
+ name+=("$u")
+ fi
+ done
- user_index=$(dialog --backtitle $"Freedombone Configuration" --title $"Select User" --menu $"Select one of the following:" 24 40 17 "${W[@]}" 3>&2 2>&1 1>&3)
+ if [ $i -eq 1 ]; then
+ SELECTED_USERNAME="${name[0]}"
+ else
+ user_index=$(dialog --backtitle $"Freedombone Configuration" --title $"Select User" --menu $"Select one of the following:" 24 40 17 "${W[@]}" 3>&2 2>&1 1>&3)
- if [ $? -eq 0 ]; then
- SELECTED_USERNAME="${name[$((user_index-1))]}"
- fi
+ if [ $? -eq 0 ]; then
+ SELECTED_USERNAME="${name[$((user_index-1))]}"
+ fi
+ fi
}
-function interactive_configuration {
- # create a temporary copy of the configuration file
- # which can be used to pre-populate selections
- if [ -f $CONFIGURATION_FILE ]; then
- cp $CONFIGURATION_FILE temp.cfg
- fi
+function interactive_config {
+ # create a temporary copy of the configuration file
+ # which can be used to pre-populate selections
+ if [ -f $CONFIGURATION_FILE ]; then
+ cp $CONFIGURATION_FILE temp.cfg
+ fi
- interactive_select_language
+ interactive_select_language
- if [[ $ONION_ONLY == "no" ]]; then
- INITIAL_MESSAGE=$"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."
- else
- INITIAL_MESSAGE=$"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."
- fi
+ if [[ $ONION_ONLY == "no" ]]; then
+ INITIAL_MESSAGE=$"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."
+ else
+ INITIAL_MESSAGE=$"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."
+ fi
- dialog --title $"Freedombone" --msgbox "$INITIAL_MESSAGE" 15 50
+ dialog --title $"Freedombone" --msgbox "$INITIAL_MESSAGE" 15 50
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Type of Installation:" 18 40 11 \
- 1 $"Full" on \
- 2 $"Writer" off \
- 3 $"Cloud" off \
- 4 $"Chat" off \
- 5 $"Mailbox" off \
- 6 $"Non-Mailbox" off \
- 7 $"Social" off \
- 8 $"Media" off \
- 9 $"Developer" off \
- 10 $"Mesh (router)" off \
- 11 $"Mesh (user device)" off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) SYSTEM_TYPE=$VARIANT_FULL;;
- 2) SYSTEM_TYPE=$VARIANT_WRITER;;
- 3) SYSTEM_TYPE=$VARIANT_CLOUD;;
- 4) SYSTEM_TYPE=$VARIANT_CHAT;;
- 5) SYSTEM_TYPE=$VARIANT_MAILBOX;;
- 6) SYSTEM_TYPE=$VARIANT_NONMAILBOX;;
- 7) SYSTEM_TYPE=$VARIANT_SOCIAL;;
- 8) SYSTEM_TYPE=$VARIANT_MEDIA;;
- 9) SYSTEM_TYPE=$VARIANT_DEVELOPER;;
- 10) SYSTEM_TYPE=$VARIANT_MESH;;
- 11) SYSTEM_TYPE=$VARIANT_MESH_USER;;
- esac
- save_configuration_file
+ #choose_system_variant
+ set_main_repo
+ choose_username
+ choose_full_name
+ choose_social_key_management
+ choose_rng
+ choose_debian_repo
+ choose_dns
+ ${PROJECT_NAME}-wifi --networksinteractive $WIFI_NETWORKS_FILE
+ choose_dynamic_dns
+ choose_default_domain_name
+ choose_email_address
+ interactive_key_recovery
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" && $SYSTEM_TYPE != "$VARIANT_MESH_USER" ]]; then
- set_main_repo
- save_configuration_file
- fi
+ # delete the temporary configuration file
+ if [ -f temp.cfg ]; then
+ shred -zu temp.cfg
+ fi
- if [[ $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
- ENABLE_BATMAN="yes"
- ENABLE_CJDNS="no"
- ENABLE_BABEL="no"
- if [ ! $WIFI_SSID ]; then
- WIFI_SSID='mesh'
- fi
-
- #data=$(tempfile 2>/dev/null)
- #trap "rm -f $data" 0 1 2 5 15
- #dialog --backtitle "Freedombone Configuration" \
- # --radiolist "Select your type of mesh network:" 10 40 3 \
- # 1 "Babel" off \
- # 2 "B.A.T.M.A.N. Advanced" on \
- # 3 "cjdns" off 2> $data
- #sel=$?
- #case $sel in
- # 1) exit 1;;
- # 255) exit 1;;
- #esac
- #case $(cat $data) in
- # 1) ENABLE_BABEL="yes";;
- # 2) ENABLE_BATMAN="yes";;
- # 3) ENABLE_CJDNS="yes";;
- #esac
- save_configuration_file
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --inputbox $"Wireless Mesh ESSID\n\nIf you press enter the default will be '$WIFI_SSID'" 10 40 "$(grep 'WIFI_SSID' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- sel=$?
- case $sel in
- 0) WIFI_SSID=$(cat $data);;
- 1) exit 1;;
- 255) exit 1;;
- esac
- save_configuration_file
-
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH_USER" ]]; then
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --inputbox $"Give your mesh peer a name" 10 40 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- sel=$?
- case $sel in
- 0) DEFAULT_DOMAIN_NAME=$(cat $data);;
- 1) exit 1;;
- 255) exit 1;;
- esac
- else
- DEFAULT_DOMAIN_NAME=$(hostname)
- fi
- save_configuration_file
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Wifi Channel (spaced to be non-overlapping):" 11 50 4 \
- 1 "1" on \
- 2 "5" off \
- 3 "9" off \
- 4 "13" off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) WIFI_CHANNEL=1;;
- 2) WIFI_CHANNEL=5;;
- 3) WIFI_CHANNEL=9;;
- 4) WIFI_CHANNEL=13;;
- esac
- save_configuration_file
- fi
-
- #if [[ $ENABLE_BATMAN == "yes" ]]; then
- # data=$(tempfile 2>/dev/null)
- # trap "rm -f $data" 0 1 2 5 15
- # dialog --backtitle "Freedombone Configuration" \
- # --inputbox "Optionally register with an Access Point" 10 40 "$(grep 'BATMAN_CELLID' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- # sel=$?
- # case $sel in
- # 0) BATMAN_CELLID=$(cat $data);;
- # 1) exit 1;;
- # 255) exit 1;;
- # esac
- # save_configuration_file
- #fi
-
- if [[ $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
- ${PROJECT_NAME}-client --essid $WIFI_SSID --channel $WIFI_CHANNEL
- if [ "$?" = "0" ]; then
- clear
- echo ".---. . . "
- echo "| | | "
- echo "|--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. "
- echo "| | (.-' (.-' ( | ( )| | | | )( )| | (.-' "
- echo "' ' --' --' -' - -' ' ' -' -' -' ' - --'"
- echo ''
- echo $'Your system is now ready for connection to the mesh network'
- echo ''
- echo $'To connect to the network open a terminal and type:'
- echo ''
- echo ' meshweb'
- echo ''
- echo $'To disconnect from the mesh and return to the internet type:'
- echo ''
- echo ' sudo batman stop'
- echo ''
- echo $'To turn your system into a dedicated mesh peer you could add'
- echo $'the meshweb command to your startup applications'
- echo ''
- touch /tmp/meshuserdevice
- exit 0
- else
- echo $'Failed to fully install the mesh networking system'
- exit 74589
- fi
- fi
-
- if [ -d /home/$GENERIC_IMAGE_USERNAME ]; then
- if [ ! -f $IMAGE_PASSWORD_FILE ]; then
- echo 'Cannot find the password file for the admin user'
- exit 62753
- fi
- # when installing from an image which comes with a known default user account
- SELECTED_USERNAME=
- while [ ! $SELECTED_USERNAME ]
- do
- if [ ! $SELECTED_USERNAME ]; then
- SELECTED_USERNAME=$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')
- fi
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Username" \
- --inputbox $"Set your username for the system\n\nYour username should not contain any spaces" 12 60 "$SELECTED_USERNAME" 2> $data
- sel=$?
- case $sel in
- 0) possible_username=$(cat $data)
- SELECTED_USERNAME=
- if [[ $possible_username != *' '* && $possible_username != *'/'* && $possible_username != *'\'* && $possible_username != *'*'* ]]; then
- if [ $possible_username ]; then
- if [ ${#possible_username} -gt 1 ]; then
- if [[ $possible_username != $GENERIC_IMAGE_USERNAME ]]; then
- MY_USERNAME=$(cat $data)
- useradd -m -s /bin/bash $MY_USERNAME
- if [ -d /home/$MY_USERNAME ]; then
- echo "${MY_USERNAME}:$(printf `cat $IMAGE_PASSWORD_FILE`)" | chpasswd
- # Add the user as a sudoer - they will be the new admin user
- if ! grep -q "$MY_USERNAME ALL=(ALL) ALL" /etc/sudoers; then
- echo "$MY_USERNAME ALL=(ALL) ALL" >> /etc/sudoers
- # remove the generic image admin user from sudoers
- sed -i "s|${GENERIC_IMAGE_USERNAME}.*||g" /etc/sudoers
- fi
- break
- fi
- fi
- fi
- fi
- fi
- ;;
- 1) exit 1;;
- 255) exit 1;;
- esac
- done
- else
- no_of_users=$(find /home/* -maxdepth 0 -type d | wc -l)
- if [ $no_of_users -eq 1 ]; then
- # only a single user on the system
- MY_USERNAME=$(ls /home)
- else
- # select one from a number of users
- if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
- MY_USERNAME=$DEFAULT_DOMAIN_NAME
- else
- select_user
- if [ ! $SELECTED_USERNAME ]; then
- echo $'No username selected'
- exit 72589
- fi
- MY_USERNAME="$SELECTED_USERNAME"
- fi
- fi
- fi
-
- if [ ! $MY_USERNAME ]; then
- echo $'No user account was selected'
- exit 64398
- fi
- if [[ $MY_USERNAME == '-f' ]]; then
- echo $'No user account was selected'
- exit 8347
- fi
- if [[ $MY_USERNAME == 'debian' || $MY_USERNAME == 'fbone' ]]; then
- echo $"Don't use the default user account"
- exit 9341
- fi
- if [ ! -d /home/$MY_USERNAME ]; then
- echo $"The directory /home/$MY_USERNAME does not exist"
- exit 6437
- fi
- save_configuration_file
-
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
- valid_name=
- while [ ! $valid_name ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --inputbox $"Your full name (or nick)" 10 30 "$(grep 'MY_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- sel=$?
- case $sel in
- 0) possible_name=$(cat $data)
- if [ "$possible_name" ]; then
- if [ ${#possible_name} -gt 1 ]; then
- valid_name="$possible_name"
- MY_NAME="$possible_name"
- break;
- fi
- fi
- ;;
- 1) exit 1;;
- 255) exit 1;;
- esac
- done
- save_configuration_file
- fi
-
- if [[ $MINIMAL_INSTALL == "no" ]]; then
- if [[ $(grep "INSTALLING_ON_BBB" temp.cfg | awk -F '=' '{print $2}') == "yes" ]]; then
- dialog --title $"Install Target" \
- --backtitle $"Freedombone Configuration" \
- --yesno $"\nAre you installing onto a Beaglebone Black?" 7 60
- else
- dialog --title $"Install Target" \
- --backtitle $"Freedombone Configuration" \
- --defaultno \
- --yesno $"\nAre you installing onto a Beaglebone Black?" 7 60
- fi
- sel=$?
- case $sel in
- 0) INSTALLING_ON_BBB="yes";;
- 1) INSTALLING_ON_BBB="no";;
- 255) exit 1;;
- esac
- if [[ $INSTALLING_ON_BBB == "yes" ]]; then
- USB_DRIVE=/dev/sda1
- fi
- save_configuration_file
- fi
-
- if [[ $MINIMAL_INSTALL == "no" ]]; then
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
- interactive_gpg
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- SOCIAL_KEY_STR=$"\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."
- if [[ $(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" temp.cfg | awk -F '=' '{print $2}') == "yes" ]]; then
- dialog --title $"Social Key Management" \
- --backtitle $"Freedombone Configuration" \
- --yesno "$SOCIAL_KEY_STR" 15 60
- else
- dialog --title $"Social Key Management" \
- --backtitle $"Freedombone Configuration" \
- --defaultno \
- --yesno "$SOCIAL_KEY_STR" 15 60
- fi
- sel=$?
- case $sel in
- 0) ENABLE_SOCIAL_KEY_MANAGEMENT="yes";;
- 255) exit 1;;
- esac
- save_configuration_file
- fi
- else
- # enable for the minimal case
- ENABLE_SOCIAL_KEY_MANAGEMENT="yes"
- fi
-
- if [[ $MINIMAL_INSTALL == "no" ]]; then
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $INSTALLING_ON_BBB != "yes" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Type of Random Number Generator:" 10 40 2 \
- 1 Haveged on \
- 2 OneRNG off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 2) HWRNG_TYPE="onerng"
- dialog --title $"OneRNG Device" \
- --msgbox $"Please ensure that the OneRNG device is disconnected. You can reconnect it later during the installation" 8 60
- ;;
- 255) exit 1;;
- esac
- else
- HWRNG_TYPE="beaglebone"
- fi
- save_configuration_file
- fi
-
- if [[ $MINIMAL_INSTALL == "no" ]]; then
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Where to download Debian packages from:" 25 45 49 \
- 1 $"Australia" off \
- 2 $"Austria" off \
- 3 $"Belarus" off \
- 4 $"Belgium" off \
- 5 $"Bosnia and Herzegovina" off \
- 6 $"Brazil" off \
- 7 $"Bulgaria" off \
- 8 $"Canada" off \
- 9 $"Chile" off \
- 10 $"China" off \
- 11 $"Croatia" off \
- 12 $"Czech Republic" off \
- 13 $"Denmark" off \
- 14 $"El Salvador" off \
- 15 $"Estonia" off \
- 16 $"Finland" off \
- 17 $"France 1" off \
- 18 $"France 2" off \
- 19 $"Germany 1" off \
- 20 $"Germany 2" off \
- 21 $"Greece" off \
- 22 $"Hungary" off \
- 23 $"Iceland" off \
- 24 $"Iran" off \
- 25 $"Ireland" off \
- 26 $"Italy" off \
- 27 $"Japan" off \
- 28 $"Korea" off \
- 29 $"Lithuania" off \
- 30 $"Mexico" off \
- 31 $"Netherlands" off \
- 32 $"New Caledonia" off \
- 33 $"New Zealand" off \
- 34 $"Norway" off \
- 35 $"Poland" off \
- 36 $"Portugal" off \
- 37 $"Romania" off \
- 38 $"Russia" off \
- 39 $"Slovakia" off \
- 40 $"Slovenia" off \
- 41 $"Spain" off \
- 42 $"Sweden" off \
- 43 $"Switzerland" off \
- 44 $"Taiwan" off \
- 45 $"Thailand" off \
- 46 $"Turkey" off \
- 47 $"Ukraine" off \
- 48 $"United Kingdom" off \
- 49 $"United States" on 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) DEBIAN_REPO='ftp.au.debian.org';;
- 2) DEBIAN_REPO='ftp.at.debian.org';;
- 3) DEBIAN_REPO='ftp.by.debian.org';;
- 4) DEBIAN_REPO='ftp.be.debian.org';;
- 5) DEBIAN_REPO='ftp.ba.debian.org';;
- 6) DEBIAN_REPO='ftp.br.debian.org';;
- 7) DEBIAN_REPO='ftp.bg.debian.org';;
- 8) DEBIAN_REPO='ftp.ca.debian.org';;
- 9) DEBIAN_REPO='ftp.cl.debian.org';;
- 10) DEBIAN_REPO='ftp.cn.debian.org';;
- 11) DEBIAN_REPO='ftp.hr.debian.org';;
- 12) DEBIAN_REPO='ftp.cz.debian.org';;
- 13) DEBIAN_REPO='ftp.dk.debian.org';;
- 14) DEBIAN_REPO='ftp.sv.debian.org';;
- 15) DEBIAN_REPO='ftp.ee.debian.org';;
- 16) DEBIAN_REPO='ftp.fi.debian.org';;
- 17) DEBIAN_REPO='ftp2.fr.debian.org';;
- 18) DEBIAN_REPO='ftp.fr.debian.org';;
- 19) DEBIAN_REPO='ftp2.de.debian.org';;
- 20) DEBIAN_REPO='ftp.de.debian.org';;
- 21) DEBIAN_REPO='ftp.gr.debian.org';;
- 22) DEBIAN_REPO='ftp.hu.debian.org';;
- 23) DEBIAN_REPO='ftp.is.debian.org';;
- 24) DEBIAN_REPO='ftp.ir.debian.org';;
- 25) DEBIAN_REPO='ftp.ie.debian.org';;
- 26) DEBIAN_REPO='ftp.it.debian.org';;
- 27) DEBIAN_REPO='ftp.jp.debian.org';;
- 28) DEBIAN_REPO='ftp.kr.debian.org';;
- 29) DEBIAN_REPO='ftp.lt.debian.org';;
- 30) DEBIAN_REPO='ftp.mx.debian.org';;
- 31) DEBIAN_REPO='ftp.nl.debian.org';;
- 32) DEBIAN_REPO='ftp.nc.debian.org';;
- 33) DEBIAN_REPO='ftp.nz.debian.org';;
- 34) DEBIAN_REPO='ftp.no.debian.org';;
- 35) DEBIAN_REPO='ftp.pl.debian.org';;
- 36) DEBIAN_REPO='ftp.pt.debian.org';;
- 37) DEBIAN_REPO='ftp.ro.debian.org';;
- 38) DEBIAN_REPO='ftp.ru.debian.org';;
- 39) DEBIAN_REPO='ftp.sk.debian.org';;
- 40) DEBIAN_REPO='ftp.si.debian.org';;
- 41) DEBIAN_REPO='ftp.es.debian.org';;
- 42) DEBIAN_REPO='ftp.se.debian.org';;
- 43) DEBIAN_REPO='ftp.ch.debian.org';;
- 44) DEBIAN_REPO='ftp.tw.debian.org';;
- 45) DEBIAN_REPO='ftp.th.debian.org';;
- 46) DEBIAN_REPO='ftp.tr.debian.org';;
- 47) DEBIAN_REPO='ftp.ua.debian.org';;
- 48) DEBIAN_REPO='ftp.uk.debian.org';;
- 49) DEBIAN_REPO='ftp.us.debian.org';;
- 255) exit 1;;
- esac
- save_configuration_file
- else
- DEBIAN_REPO='ftp.de.debian.org'
- fi
-
- if [[ $MINIMAL_INSTALL == "no" && $ONION_ONLY == "no" ]]; then
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Pick a domain name service (DNS):" 25 50 16 \
- 1 $"Digital Courage" on \
- 2 $"German Privacy Foundation 1" off \
- 3 $"German Privacy Foundation 2" off \
- 4 $"Chaos Computer Club" off \
- 5 $"ClaraNet" off \
- 6 $"OpenNIC 1" off \
- 7 $"OpenNIC 2" off \
- 8 $"OpenNIC 3" off \
- 9 $"OpenNIC 4" off \
- 10 $"OpenNIC 5" off \
- 11 $"OpenNIC 6" off \
- 12 $"OpenNIC 7" off \
- 13 $"PowerNS" off \
- 14 $"ValiDOM" off \
- 15 $"Freie Unzensierte" off \
- 16 $"Google" off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) NAMESERVER1='85.214.73.63'
- NAMESERVER2='213.73.91.35'
- ;;
- 2) NAMESERVER1='87.118.100.175'
- NAMESERVER2='94.75.228.29'
- ;;
- 3) NAMESERVER1='85.25.251.254'
- NAMESERVER2='2.141.58.13'
- ;;
- 4) NAMESERVER1='213.73.91.35'
- NAMESERVER2='85.214.73.63'
- ;;
- 5) NAMESERVER1='212.82.225.7'
- NAMESERVER2='212.82.226.212'
- ;;
- 6) NAMESERVER1='58.6.115.42'
- NAMESERVER2='58.6.115.43'
- ;;
- 7) NAMESERVER1='119.31.230.42'
- NAMESERVER2='200.252.98.162'
- ;;
- 8) NAMESERVER1='217.79.186.148'
- NAMESERVER2='81.89.98.6'
- ;;
- 9) NAMESERVER1='78.159.101.37'
- NAMESERVER2='203.167.220.153'
- ;;
- 10) NAMESERVER1='82.229.244.191'
- NAMESERVER2='82.229.244.191'
- ;;
- 11) NAMESERVER1='216.87.84.211'
- NAMESERVER2='66.244.95.20'
- ;;
- 12) NAMESERVER1='207.192.69.155'
- NAMESERVER2='72.14.189.120'
- ;;
- 13) NAMESERVER1='194.145.226.26'
- NAMESERVER2='77.220.232.44'
- ;;
- 14) NAMESERVER1='78.46.89.147'
- NAMESERVER2='88.198.75.145'
- ;;
- 15) NAMESERVER1='85.25.149.144'
- NAMESERVER2='87.106.37.196'
- ;;
- 16) NAMESERVER1='8.8.8.8'
- NAMESERVER2='4.4.4.4'
- ;;
- 255) exit 1;;
- esac
- save_configuration_file
- else
- # as defaults for a minimal install process these settings are debatable
- NAMESERVER1='85.214.73.63'
- NAMESERVER2='213.73.91.35'
- fi
-
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
- ${PROJECT_NAME}-wifi --networksinteractive $WIFI_NETWORKS_FILE
- fi
-
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" && $ONION_ONLY == "no" ]]; then
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --radiolist $"Choose Dynamic DNS provider:" 15 40 14 \
- 1 dyndns off \
- 2 freedns on \
- 3 zoneedit off \
- 4 no-ip off \
- 5 easydns off \
- 6 tzo off \
- 7 3322 off \
- 8 dnsomatic off \
- 9 tunnelbroker off \
- 10 dns.he.net off \
- 11 dynsip off \
- 12 sitelutions off \
- 13 dnsexit off \
- 14 changeip off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) DDNS_PROVIDER="default@dyndns.org";;
- 2) DDNS_PROVIDER="default@freedns.afraid.org";;
- 3) DDNS_PROVIDER="default@zoneedit.com";;
- 4) DDNS_PROVIDER="default@no-ip.com";;
- 5) DDNS_PROVIDER="default@easydns.com";;
- 6) DDNS_PROVIDER="default@tzo.com";;
- 7) DDNS_PROVIDER="dyndns@3322.org";;
- 8) DDNS_PROVIDER="default@dnsomatic.com";;
- 9) DDNS_PROVIDER="ipv6tb@he.net";;
- 10) DDNS_PROVIDER="dyndns@he.net";;
- 11) DDNS_PROVIDER="default@dynsip.org";;
- 12) DDNS_PROVIDER="default@sitelutions.com";;
- 13) DDNS_PROVIDER="default@dnsexit.com";;
- 14) DDNS_PROVIDER="default@changeip.com";;
- 255) exit 1;;
- esac
- save_configuration_file
-
- valid_ddns_username=
- while [ ! $valid_ddns_username ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --inputbox $"Dynamic DNS provider username" 10 30 "$(grep 'DDNS_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- sel=$?
- case $sel in
- 0) possible_username=$(cat $data)
- if [ "$possible_username" ]; then
- if [ ${#possible_username} -gt 1 ]; then
- valid_ddns_username=$(cat $data)
- DDNS_USERNAME=$valid_ddns_username
- break;
- fi
- fi
- ;;
- 1) exit 1;;
- 255) exit 1;;
- esac
- done
- save_configuration_file
-
- valid_ddns_password=
- while [ ! $valid_ddns_password ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --clear \
- --insecure \
- --passwordbox $"Dynamic DNS provider password" 10 30 "$(grep 'DDNS_PASSWORD' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- sel=$?
- case $sel in
- 0) possible_password=$(cat $data)
- if [ "$possible_password" ]; then
- if [ ${#possible_password} -gt 1 ]; then
- valid_ddns_password=$(cat $data)
- DDNS_PASSWORD=$valid_ddns_password
- break;
- fi
- fi
- ;;
- 1) exit 1;;
- 255) exit 1;;
- esac
- if [ ${#DDNS_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
- dialog --title $"Password quality check" --msgbox $"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." 10 40
- DDNS_PASSWORD=""
- fi
- done
- save_configuration_file
- fi
-
- if [[ $MINIMAL_INSTALL == "no" && $ONION_ONLY == "no" ]]; then
- SET_STATIC_IP="no"
- dialog --title $"Static local IP address" \
- --backtitle $"Freedombone Configuration" \
- --defaultno \
- --yesno $"\nDo you want to set a static local IP address for this system?\n\nFor example, 192.168.1.10" 10 60
- sel=$?
- case $sel in
- 0) SET_STATIC_IP="yes";;
- 255) exit 1;;
- esac
-
- if [[ $SET_STATIC_IP == "yes" ]]; then
- if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
- LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep 'LOCAL_NETWORK_STATIC_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
- if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
- LOCAL_NETWORK_STATIC_IP_ADDRESS='192.168..'
- fi
- fi
- if [ ! $ROUTER_IP_ADDRESS ]; then
- ROUTER_IP_ADDRESS=$(grep 'ROUTER_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
- if [ ! $ROUTER_IP_ADDRESS ]; then
- ROUTER_IP_ADDRESS='192.168..'
- fi
- fi
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Local Network Configuration" \
- --form $"\nPlease enter the IP addresses:" 11 55 3 \
- $"This system:" 1 1 "$LOCAL_NETWORK_STATIC_IP_ADDRESS" 1 16 16 15 \
- $"Internet router:" 2 1 "$ROUTER_IP_ADDRESS" 2 16 16 15 \
- 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
- ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
- save_configuration_file
- fi
- fi
-
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- WIKI_TITLE='My Wiki'
- WIKI_DOMAIN_NAME='wiki.local'
- else
- WIKI_DETAILS_COMPLETE=
- while [ ! $WIKI_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
-
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Wiki Configuration" \
- --form $"\nPlease enter your wiki details:" 11 55 4 \
- $"Title:" 1 1 "$(grep 'WIKI_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Domain:" 2 1 "$(grep 'WIKI_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
- $"Code:" 3 1 "$(grep 'WIKI_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 16 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Wiki Configuration" \
- --form $"\nPlease enter your wiki details:" 11 55 3 \
- $"Title:" 1 1 "$(grep 'WIKI_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Domain:" 2 1 "$(grep 'WIKI_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- WIKI_TITLE=$(cat $data | sed -n 1p)
- WIKI_DOMAIN_NAME=$(cat $data | sed -n 2p)
- if [ $WIKI_DOMAIN_NAME ]; then
- TEST_DOMAIN_NAME=$WIKI_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $WIKI_DOMAIN_NAME ]]; then
- WIKI_DOMAIN_NAME=
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- WIKI_CODE=$(cat $data | sed -n 3p)
- validate_freedns_code "$WIKI_CODE"
- if [ ! $VALID_CODE ]; then
- WIKI_DOMAIN_NAME=
- fi
- fi
- fi
- fi
- if [ $WIKI_DOMAIN_NAME ]; then
- WIKI_DETAILS_COMPLETE="yes"
- fi
- done
- fi
- save_configuration_file
- fi
-
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- MY_BLOG_TITLE='My Blog'
- FULLBLOG_DOMAIN_NAME='blog.local'
- else
- FULLBLOG_DETAILS_COMPLETE=
- while [ ! $FULLBLOG_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Blog Configuration" \
- --form $"\nPlease enter your blog details:" 11 55 4 \
- $"Title:" 1 1 "$(grep 'MY_BLOG_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Domain:" 2 1 "$(grep 'FULLBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
- $"Code:" 3 1 "$(grep 'FULLBLOG_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 16 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Blog Configuration" \
- --form $"\nPlease enter your blog details:" 11 55 3 \
- $"Title:" 1 1 "$(grep 'MY_BLOG_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Domain:" 2 1 "$(grep 'FULLBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- MY_BLOG_TITLE=$(cat $data | sed -n 1p)
- FULLBLOG_DOMAIN_NAME=$(cat $data | sed -n 2p)
- if [ $FULLBLOG_DOMAIN_NAME ]; then
- if [[ $FULLBLOG_DOMAIN_NAME == "$WIKI_DOMAIN_NAME" ]]; then
- FULLBLOG_DOMAIN_NAME=""
- fi
- TEST_DOMAIN_NAME=$FULLBLOG_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $FULLBLOG_DOMAIN_NAME ]]; then
- FULLBLOG_DOMAIN_NAME=
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- FULLBLOG_CODE=$(cat $data | sed -n 3p)
- validate_freedns_code "$FULLBLOG_CODE"
- if [ ! $VALID_CODE ]; then
- FULLBLOG_DOMAIN_NAME=
- fi
- fi
- fi
- fi
- if [ $FULLBLOG_DOMAIN_NAME ]; then
- FULLBLOG_DETAILS_COMPLETE="yes"
- fi
- done
- fi
- save_configuration_file
- fi
-
- if [[ $MEDIAGOBLIN_ENABLED == 'yes' ]]; then
- if [[ $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- MEDIAGOBLIN_DOMAIN_NAME='media.local'
- else
- MEDIAGOBLIN_DETAILS_COMPLETE=
- while [ ! $MEDIAGOBLIN_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Mediagoblin Configuration" \
- --form $"\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:" 11 55 2 \
- $"Domain:" 1 1 "$(grep 'MEDIAGOBLIN_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Code:" 2 1 "$(grep 'MEDIAGOBLIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Mediagoblin Configuration" \
- --form $"\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:" 11 55 2 \
- $"Domain:" 1 1 "$(grep 'MEDIAGOBLIN_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- MEDIAGOBLIN_DOMAIN_NAME=$(cat $data | sed -n 1p)
- if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
- TEST_DOMAIN_NAME=$MEDIAGOBLIN_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $MEDIAGOBLIN_DOMAIN_NAME ]]; then
- MEDIAGOBLIN_DOMAIN_NAME='invalid'
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- MEDIAGOBLIN_CODE=$(cat $data | sed -n 2p)
- validate_freedns_code "$MEDIAGOBLIN_CODE"
- if [ ! $VALID_CODE ]; then
- MEDIAGOBLIN_DOMAIN_NAME='invalid'
- fi
- fi
- fi
- fi
- if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
- if [[ $MEDIAGOBLIN_DOMAIN_NAME == 'invalid' ]]; then
- MEDIAGOBLIN_DOMAIN_NAME=
- else
- MEDIAGOBLIN_DETAILS_COMPLETE="yes"
- fi
- fi
- done
- fi
- save_configuration_file
- fi
- MEDIA_SERVER_ENABLED='no'
- fi
-
- if [[ $MEDIA_SERVER_ENABLED == 'yes' ]]; then
- if [[ $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- MEDIA_SERVER_DOMAIN_NAME='media.local'
- else
- MEDIA_SERVER_DETAILS_COMPLETE=
- while [ ! $MEDIA_SERVER_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Media Server Configuration" \
- --form $"\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server site:" 11 55 2 \
- $"Domain:" 1 1 "$(grep 'MEDIA_SERVER_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Code:" 2 1 "$(grep 'MEDIA_SERVER_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Media Server Configuration" \
- --form $"\nPlease enter your Media Server details, or just select Ok if you don't need a Media Server site:" 11 55 2 \
- $"Domain:" 1 1 "$(grep 'MEDIA_SERVER_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- MEDIA_SERVER_DOMAIN_NAME=$(cat $data | sed -n 1p)
- if [ $MEDIA_SERVER_DOMAIN_NAME ]; then
- TEST_DOMAIN_NAME=$MEDIA_SERVER_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $MEDIA_SERVER_DOMAIN_NAME ]]; then
- MEDIA_SERVER_DOMAIN_NAME='invalid'
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- MEDIA_SERVER_CODE=$(cat $data | sed -n 2p)
- validate_freedns_code "$MEDIA_SERVER_CODE"
- if [ ! $VALID_CODE ]; then
- MEDIA_SERVER_DOMAIN_NAME='invalid'
- fi
- fi
- fi
- fi
- if [ $MEDIA_SERVER_DOMAIN_NAME ]; then
- if [[ $MEDIA_SERVER_DOMAIN_NAME == 'invalid' ]]; then
- MEDIA_SERVER_DOMAIN_NAME=
- else
- MEDIA_SERVER_DETAILS_COMPLETE="yes"
- fi
- fi
- done
- fi
- save_configuration_file
- fi
- fi
-
- if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- HUBZILLA_DOMAIN_NAME='hubzilla.local'
- else
- HUBZILLA_DETAILS_COMPLETE=
- while [ ! $HUBZILLA_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Hubzilla Configuration" \
- --form $"\nPlease enter your Hubzilla details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 55 3 \
- $"Domain:" 1 1 "$(grep 'HUBZILLA_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Code:" 2 1 "$(grep 'HUBZILLA_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Hubzilla Configuration" \
- --form $"\nPlease enter your Hubzilla details\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 11 55 3 \
- $"Domain:" 1 1 "$(grep 'HUBZILLA_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- HUBZILLA_DOMAIN_NAME=$(cat $data | sed -n 1p)
- if [ $HUBZILLA_DOMAIN_NAME ]; then
- TEST_DOMAIN_NAME=$HUBZILLA_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $HUBZILLA_DOMAIN_NAME ]]; then
- HUBZILLA_DOMAIN_NAME=
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- HUBZILLA_CODE=$(cat $data | sed -n 2p)
- validate_freedns_code "$HUBZILLA_CODE"
- if [ ! $VALID_CODE ]; then
- HUBZILLA_DOMAIN_NAME=
- fi
- fi
- fi
- fi
- if [ $HUBZILLA_DOMAIN_NAME ]; then
- HUBZILLA_DETAILS_COMPLETE="yes"
- fi
- done
- fi
- save_configuration_file
- fi
-
- if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- MICROBLOG_DOMAIN_NAME='microblog.local'
- else
- MICROBLOG_DETAILS_COMPLETE=
- while [ ! $MICROBLOG_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Microblog Configuration" \
- --form $"\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:" 16 65 4 \
- $"Domain:" 1 1 "$(grep 'MICROBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
- $"Welcome Message:" 2 1 "$(grep '$MICROBLOG_WELCOME_MESSAGE' temp.cfg | awk -F '=' '{print $2}')" 2 25 255 255 \
- $"Background image URL:" 3 1 "$(grep '$MICROBLOG_BACKGROUND_IMAGE_URL' temp.cfg | awk -F '=' '{print $2}')" 3 25 255 255 \
- $"Code:" 4 1 "$(grep 'MICROBLOG_CODE' temp.cfg | awk -F '=' '{print $2}')" 4 25 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Microblog Configuration" \
- --form $"\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:" 16 65 4 \
- $"Domain:" 1 1 "$(grep 'MICROBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \
- $"Welcome Message:" 2 1 "$(grep '$MICROBLOG_WELCOME_MESSAGE' temp.cfg | awk -F '=' '{print $2}')" 2 25 255 255 \
- $"Background image URL:" 3 1 "$(grep '$MICROBLOG_BACKGROUND_IMAGE_URL' temp.cfg | awk -F '=' '{print $2}')" 3 25 255 255 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- MICROBLOG_DOMAIN_NAME=$(cat $data | sed -n 1p)
- welcome_msg=$(cat $data | sed -n 2p)
- if [ ${#welcome_msg} -gt 1 ]; then
- MICROBLOG_WELCOME_MESSAGE=$welcome_msg
- fi
- img_url=$(cat $data | sed -n 3p)
- if [ ${#img_url} -gt 1 ]; then
- MICROBLOG_BACKGROUND_IMAGE_URL=$img_url
- fi
- if [ $MICROBLOG_DOMAIN_NAME ]; then
- if [[ $MICROBLOG_DOMAIN_NAME == "$HUBZILLA_DOMAIN_NAME" ]]; then
- MICROBLOG_DOMAIN_NAME=""
- fi
- TEST_DOMAIN_NAME=$MICROBLOG_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $MICROBLOG_DOMAIN_NAME ]]; then
- MICROBLOG_DOMAIN_NAME=
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- MICROBLOG_CODE=$(cat $data | sed -n 4p)
- validate_freedns_code "$MICROBLOG_CODE"
- if [ ! $VALID_CODE ]; then
- MICROBLOG_DOMAIN_NAME=
- fi
- fi
- fi
- fi
- if [ $MICROBLOG_DOMAIN_NAME ]; then
- MICROBLOG_DETAILS_COMPLETE="yes"
- fi
- done
- fi
- save_configuration_file
- fi
-
- if [[ $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- GIT_DOMAIN_NAME='git.local'
- else
- DEVELOPER_DETAILS_COMPLETE=
- while [ ! $DEVELOPER_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
-
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Developer Configuration" \
- --form $"\nPlease enter your Git hosting site details.\nIf You don't need developer tools then just select Ok" 11 55 3 \
- $"Domain:" 1 1 "$(grep 'GIT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Code:" 2 1 "$(grep 'GIT_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
- 2> $data
- else
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Developer Configuration" \
- --form $"\nPlease enter your Git hosting site details.\nIf You don't need developer tools then just select Ok" 11 55 2 \
- $"Domain:" 1 1 "$(grep 'GIT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- GIT_DOMAIN_NAME=$(cat $data | sed -n 1p)
- if [ $GIT_DOMAIN_NAME ]; then
- TEST_DOMAIN_NAME=$GIT_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $GIT_DOMAIN_NAME ]]; then
- GIT_DOMAIN_NAME=
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- GIT_CODE=$(cat $data | sed -n 2p)
- validate_freedns_code "$GIT_CODE"
- if [ ! $VALID_CODE ]; then
- GIT_DOMAIN_NAME=
- fi
- fi
- fi
- else
- DEVELOPER_DETAILS_COMPLETE="yes"
- fi
- if [ $GIT_DOMAIN_NAME ]; then
- DEVELOPER_DETAILS_COMPLETE="yes"
- fi
- done
- fi
- save_configuration_file
- fi
-
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
- if [[ $ONION_ONLY != "no" ]]; then
- DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
- else
- DEFAULT_DOMAIN_DETAILS_COMPLETE=
- while [ ! $DEFAULT_DOMAIN_DETAILS_COMPLETE ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Your main domain name" \
- --form $"\nWhich domain name should your email/XMPP/IRC/VoIP be associated with?" 11 55 3 \
- $"Domain:" 1 1 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
- $"Code:" 2 1 "$(grep 'DEFAULT_DOMAIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
- 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- DEFAULT_DOMAIN_NAME=$(cat $data | sed -n 1p)
- DEFAULT_DOMAIN_CODE=$(cat $data | sed -n 2p)
- if [ $DEFAULT_DOMAIN_NAME ]; then
- validate_freedns_code "$DEFAULT_DOMAIN_CODE"
- if [ ! $VALID_CODE ]; then
- DEFAULT_DOMAIN_NAME=
- fi
- fi
- else
- dialog --backtitle $"Freedombone Configuration" \
- --inputbox $"Which domain name should your email/XMPP/IRC/VoIP be associated with?" 10 45 \
- "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
- sel=$?
- case $sel in
- 0) DEFAULT_DOMAIN_NAME=$(cat $data);;
- 1) exit 1;;
- 255) exit 1;;
- esac
- fi
- if [ $DEFAULT_DOMAIN_NAME ]; then
- TEST_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME
- validate_domain_name
- if [[ $TEST_DOMAIN_NAME != $DEFAULT_DOMAIN_NAME ]]; then
- DEFAULT_DOMAIN_NAME=
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
- else
- DEFAULT_DOMAIN_DETAILS_COMPLETE="yes"
- fi
- fi
- done
- fi
- save_configuration_file
-
- if [[ $ONION_ONLY != "no" ]]; then
- EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
- else
- while [ ${#MY_EMAIL_ADDRESS} -lt 5 ]
- do
- EMAIL_ADDRESS=$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
- if [ ! $EMAIL_ADDRESS ]; then
- EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
- fi
- if [ ${#MY_EMAIL_ADDRESS} -lt 5 ]; then
- EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
- fi
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --inputbox $"Your email address" 10 30 "$EMAIL_ADDRESS" 2> $data
- sel=$?
- case $sel in
- 0) MY_EMAIL_ADDRESS=$(cat $data);;
- 1) exit 1;;
- 255) exit 1;;
- esac
- done
- fi
- save_configuration_file
- fi
-
- # delete the temporary configuration file
- if [ -f temp.cfg ]; then
- shred -zu temp.cfg
- fi
+ # This file indicates that the configuration happened successfully
+ touch $HOME/.${PROJECT_NAME}-interactive
}
function show_result {
- #clear
- echo ''
- echo -n $"Configuration filename:"
- echo " $CONFIGURATION_FILE"
- echo ''
- echo $'Contents:'
- echo ''
- cat $CONFIGURATION_FILE
- echo ''
+ #clear
+ echo ''
+ echo -n $"Configuration filename:"
+ echo " $CONFIGURATION_FILE"
+ echo ''
+ echo $'Contents:'
+ echo ''
+ cat $CONFIGURATION_FILE
+ echo ''
}
-function read_configuration {
- if [ ! $CONFIGURATION_FILE ]; then
- CONFIGURATION_FILE='freedombone.cfg'
- fi
+if [ ! $CONFIGURATION_FILE ]; then
+ CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
+fi
- if [ -f $CONFIGURATION_FILE ]; then
- if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE; then
- ENABLE_SOCIAL_KEY_MANAGEMENT=$(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "GIT_DOMAIN_NAME" $CONFIGURATION_FILE; then
- GIT_DOMAIN_NAME=$(grep "GIT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "GIT_CODE" $CONFIGURATION_FILE; then
- GIT_CODE=$(grep "GIT_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_USERNAME" $CONFIGURATION_FILE; then
- MY_USERNAME=$(grep "MY_USERNAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "DOMAIN_NAME" $CONFIGURATION_FILE; then
- # for backwards compatability
- DEFAULT_DOMAIN_NAME=$(grep "DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
- DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "DEFAULT_DOMAIN_CODE" $CONFIGURATION_FILE; then
- DEFAULT_DOMAIN_CODE=$(grep "DEFAULT_DOMAIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "NAMESERVER1" $CONFIGURATION_FILE; then
- NAMESERVER1=$(grep "NAMESERVER1" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "NAMESERVER2" $CONFIGURATION_FILE; then
- NAMESERVER2=$(grep "NAMESERVER2" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
- DEBIAN_REPO=$(grep "DEBIAN_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- CHECK_MESSAGE="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."
- fi
- if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
- DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "DDNS_USERNAME" $CONFIGURATION_FILE; then
- DDNS_USERNAME=$(grep "DDNS_USERNAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "DDNS_PASSWORD" $CONFIGURATION_FILE; then
- DDNS_PASSWORD=$(grep "DDNS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
- LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "ENABLE_CJDNS" $CONFIGURATION_FILE; then
- ENABLE_CJDNS=$(grep "ENABLE_CJDNS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "ENABLE_BATMAN" $CONFIGURATION_FILE; then
- ENABLE_BATMAN=$(grep "ENABLE_BATMAN" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "ENABLE_BABEL" $CONFIGURATION_FILE; then
- ENABLE_BABEL=$(grep "ENABLE_BABEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "ROUTER_IP_ADDRESS" $CONFIGURATION_FILE; then
- ROUTER_IP_ADDRESS=$(grep "ROUTER_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIKI_TITLE" $CONFIGURATION_FILE; then
- WIKI_TITLE=$(grep "WIKI_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_NAME" $CONFIGURATION_FILE; then
- MY_NAME=$(grep "MY_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_EMAIL_ADDRESS" $CONFIGURATION_FILE; then
- MY_EMAIL_ADDRESS=$(grep "MY_EMAIL_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "INSTALLING_ON_BBB" $CONFIGURATION_FILE; then
- INSTALLING_ON_BBB=$(grep "INSTALLING_ON_BBB" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "USB_DRIVE" $CONFIGURATION_FILE; then
- USB_DRIVE=$(grep "USB_DRIVE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "PUBLIC_MAILING_LIST" $CONFIGURATION_FILE; then
- PUBLIC_MAILING_LIST=$(grep "PUBLIC_MAILING_LIST" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MICROBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(grep "MICROBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MICROBLOG_CODE" $CONFIGURATION_FILE; then
- MICROBLOG_CODE=$(grep "MICROBLOG_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MICROBLOG_WELCOME_MESSAGE" $CONFIGURATION_FILE; then
- MICROBLOG_WELCOME_MESSAGE=$(grep "MICROBLOG_WELCOME_MESSAGE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MICROBLOG_BACKGROUND_IMAGE_URL" $CONFIGURATION_FILE; then
- MICROBLOG_BACKGROUND_IMAGE_URL=$(grep "MICROBLOG_BACKGROUND_IMAGE_URL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE; then
- HUBZILLA_DOMAIN_NAME=$(grep "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "HUBZILLA_CODE" $CONFIGURATION_FILE; then
- HUBZILLA_CODE=$(grep "HUBZILLA_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
- MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- MEDIAGOBLIN_ENABLED='yes'
- fi
- if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
- MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MEDIA_SERVER_DOMAIN_NAME" $CONFIGURATION_FILE; then
- MEDIA_SERVER_DOMAIN_NAME=$(grep "MEDIA_SERVER_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- MEDIA_SERVER_ENABLED='yes'
- fi
- if grep -q "MEDIA_SERVER_CODE" $CONFIGURATION_FILE; then
- MEDIA_SERVER_CODE=$(grep "MEDIA_SERVER_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE; then
- WIKI_DOMAIN_NAME=$(grep "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIKI_CODE" $CONFIGURATION_FILE; then
- WIKI_CODE=$(grep "WIKI_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
- FULLBLOG_DOMAIN_NAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FULLBLOG_CODE" $CONFIGURATION_FILE; then
- FULLBLOG_CODE=$(grep "FULLBLOG_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_BLOG_TITLE" $CONFIGURATION_FILE; then
- MY_BLOG_TITLE=$(grep "MY_BLOG_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_BLOG_SUBTITLE" $CONFIGURATION_FILE; then
- MY_BLOG_SUBTITLE=$(grep "MY_BLOG_SUBTITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
- MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
- MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MEDIA_SERVER_DOMAIN_NAME" $CONFIGURATION_FILE; then
- MEDIA_SERVER_DOMAIN_NAME=$(grep "MEDIA_SERVER_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MEDIA_SERVER_CODE" $CONFIGURATION_FILE; then
- MEDIA_SERVER_CODE=$(grep "MEDIA_SERVER_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_SSID" $CONFIGURATION_FILE; then
- WIFI_SSID=$(grep "WIFI_SSID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
- WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_TYPE" $CONFIGURATION_FILE; then
- WIFI_TYPE=$(grep "WIFI_TYPE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_PASSPHRASE" $CONFIGURATION_FILE; then
- WIFI_PASSPHRASE=$(grep "WIFI_PASSPHRASE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "BATMAN_CELLID" $CONFIGURATION_FILE; then
- BATMAN_CELLID=$(grep "BATMAN_CELLID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_CHANNEL" $CONFIGURATION_FILE; then
- WIFI_CHANNEL=$(grep "WIFI_CHANNEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
- ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- fi
-}
+read_configuration_values
+interactive_config
+#show_result
-read_configuration
-interactive_configuration
-show_result
exit 0
diff --git a/src/freedombone-config-qtox b/src/freedombone-config-qtox
new file mode 100644
index 00000000..f4249b79
--- /dev/null
+++ b/src/freedombone-config-qtox
@@ -0,0 +1,78 @@
+[Advanced]
+dbSyncType=2
+
+[Audio]
+audioInDevEnabled=true
+audioOutDevEnabled=true
+inDev=
+inGain=0
+outDev=
+outVolume=100
+
+[Chat]
+chatMessageFont=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s\xbf\xf0\0\0\0\0\0\0\0\0\0\r\x5\x1\0\x32\x10)
+
+[DHT Server]
+dhtServerList\size=88
+useCustomList=true
+
+[GUI]
+dateFormat="dddd, MMMM d, yyyy"
+emojiFontPointSize=16
+firstColumnHandlePos=50
+lightTrayIcon=false
+minimizeOnClose=false
+minimizeToTray=false
+secondColumnHandlePosFromRight=50
+smileyPack=:/smileys/emojione/emoticons.xml
+statusChangeNotificationEnabled=false
+style=Fusion
+themeColor=0
+timestampFormat=hh:mm:ss
+useEmoticons=true
+avatarsPath=/usr/share/freedombone/avatars
+
+[General]
+autoAwayTime=10
+autoSaveEnabled=false
+autostartInTray=false
+busySound=false
+checkUpdates=true
+closeToTray=false
+currentProfile=data
+dontGroupWindows=true
+enableIPv6=true
+fauxOfflineMessaging=true
+forceTCP=false
+globalAutoAcceptDir=/home/fbone/
+groupAlwaysNotify=false
+groupchatPosition=true
+makeToxPortable=false
+notifySound=true
+proxyAddr=
+proxyPort=0
+proxyType=0
+separateWindow=false
+showInFront=false
+showSystemTray=true
+showWindow=true
+stylePreference=1
+translation=en
+
+[Login]
+autoLogin=true
+
+[State]
+dialogGeometry=@ByteArray()
+dialogSettingsGeometry=@ByteArray()
+dialogSplitterState=@ByteArray()
+splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xff\0\0\x2\b\0\0\0\0\x6\x1\0\0\0\x1\0)
+windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\x34\0\0\x3\b\0\0\x1\xf4\0\0\0\x1\0\0\0P\0\0\x3\a\0\0\x1\xf3\0\0\0\0\0\0)
+windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x3\a\0\0\x1\xa4\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+
+[Video]
+camVideoFPS=0
+camVideoRes=@Rect(0 0 0 0)
+screenGrabbed=false
+screenRegion=@Rect(0 0 0 0)
+videoDev=
diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel
index f912c20c..f5c5f4ad 100755
--- a/src/freedombone-controlpanel
+++ b/src/freedombone-controlpanel
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -33,6 +33,18 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-controlpanel
export TEXTDOMAINDIR="/usr/share/locale"
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
SELECTED_USERNAME=
SIP_CONFIGURATION_FILE=/etc/sipwitch.conf
@@ -41,24 +53,14 @@ UPGRADE_SCRIPT_NAME="${PROJECT_NAME}-upgrade"
UPDATE_DATE_SCRIPT=/usr/bin/updatedate
# Minimum number of characters in a password
-MINIMUM_PASSWORD_LENGTH=10
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-else
- if [ -f /usr/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
- fi
-fi
+MINIMUM_PASSWORD_LENGTH=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-# voip
-VOIP_PORT=64738
-VOIP_ONION_PORT=8095
+# Mumble
+MUMBLE_PORT=64738
+MUMBLE_ONION_PORT=8095
SSH_PORT=2222
-IRC_PORT=6697
-IRC_ONION_PORT=8093
-
# outgoing SMTP proxy
SMTP_PROXY_ENABLE=$'no'
SMTP_PROXY_PROTOCOL='smtps'
@@ -76,54 +78,23 @@ WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
USB_DRIVE=sdb
# get default USB from config file
-CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
-if [ -f $CONFIGURATION_FILE ]; then
- if grep -q "WIFI_HOTSPOT=" $CONFIGURATION_FILE; then
- WIFI_HOTSPOT=$(cat $CONFIGURATION_FILE | grep "WIFI_HOTSPOT=" | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_INTERFACE=" $CONFIGURATION_FILE; then
- WIFI_INTERFACE=$(cat $CONFIGURATION_FILE | grep "WIFI_INTERFACE=" | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_TYPE=" $CONFIGURATION_FILE; then
- WIFI_TYPE=$(cat $CONFIGURATION_FILE | grep "WIFI_TYPE=" | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_SSID=" $CONFIGURATION_FILE; then
- WIFI_SSID=$(cat $CONFIGURATION_FILE | grep "WIFI_SSID=" | awk -F '=' '{print $2}')
- fi
- if grep -q "WIFI_PASSPHRASE=" $CONFIGURATION_FILE; then
- WIFI_PASSPHRASE=$(cat $CONFIGURATION_FILE | grep "WIFI_PASSPHRASE=" | awk -F '=' '{print $2}')
- fi
- if grep -q "USB_DRIVE=" $CONFIGURATION_FILE; then
- USB_DRIVE=$(cat $CONFIGURATION_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
- if [[ $USB_DRIVE == *"dev"* ]]; then
- USB_DRIVE=$(echo ${USB_DRIVE} | awk -F '/' '{print $3}' | sed 's|1||g' | sed 's|2||g')
- fi
- fi
- if grep -q "SSH_PORT=" $CONFIGURATION_FILE; then
- SSH_PORT=$(cat $CONFIGURATION_FILE | grep "SSH_PORT=" | awk -F '=' '{print $2}')
- fi
- if grep -q "IRC_PORT=" $CONFIGURATION_FILE; then
- IRC_PORT=$(cat $CONFIGURATION_FILE | grep "IRC_PORT=" | awk -F '=' '{print $2}')
- fi
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
- if grep -q "SMTP_PROXY_ENABLE=" $CONFIGURATION_FILE; then
- SMTP_PROXY_ENABLE=$(cat $CONFIGURATION_FILE | grep "SMTP_PROXY_ENABLE=" | awk -F '=' '{print $2}')
- fi
- if grep -q "SMTP_PROXY_PROTOCOL=" $CONFIGURATION_FILE; then
- SMTP_PROXY_PROTOCOL=$(cat $CONFIGURATION_FILE | grep "SMTP_PROXY_PROTOCOL=" | awk -F '=' '{print $2}')
- fi
- if grep -q "SMTP_PROXY_SERVER=" $CONFIGURATION_FILE; then
- SMTP_PROXY_SERVER=$(cat $CONFIGURATION_FILE | grep "SMTP_PROXY_SERVER=" | awk -F '=' '{print $2}')
- fi
- if grep -q "SMTP_PROXY_PORT=" $CONFIGURATION_FILE; then
- SMTP_PROXY_PORT=$(cat $CONFIGURATION_FILE | grep "SMTP_PROXY_PORT=" | awk -F '=' '{print $2}')
- fi
- if grep -q "SMTP_PROXY_USERNAME=" $CONFIGURATION_FILE; then
- SMTP_PROXY_USERNAME=$(cat $CONFIGURATION_FILE | grep "SMTP_PROXY_USERNAME=" | awk -F '=' '{print $2}')
- fi
- if grep -q "SMTP_PROXY_PASSWORD=" $CONFIGURATION_FILE; then
- SMTP_PROXY_PASSWORD=$(cat $CONFIGURATION_FILE | grep "SMTP_PROXY_PASSWORD=" | awk -F '=' '{print $2}')
- fi
+read_config_param WIFI_HOTSPOT
+read_config_param WIFI_INTERFACE
+read_config_param WIFI_TYPE
+read_config_param WIFI_SSID
+read_config_param WIFI_PASSPHRASE
+read_config_param SSH_PORT
+read_config_param SMTP_PROXY_ENABLE
+read_config_param SMTP_PROXY_PROTOCOL
+read_config_param SMTP_PROXY_SERVER
+read_config_param SMTP_PROXY_PORT
+read_config_param SMTP_PROXY_USERNAME
+read_config_param SMTP_PROXY_PASSWORD
+read_config_param USB_DRIVE
+if [[ $USB_DRIVE == *"dev"* ]]; then
+ USB_DRIVE=$(echo ${USB_DRIVE} | awk -F '/' '{print $3}' | sed 's|1||g' | sed 's|2||g')
fi
# Mirrors settings
@@ -137,6 +108,122 @@ function any_key {
read -n1 -r -p $"Press any key to continue..." key
}
+function get_app_icann_address {
+ app_name="$1"
+ if grep -q "${app_name} domain" $COMPLETION_FILE; then
+ echo $(cat ${COMPLETION_FILE} | grep "${app_name} domain" | head -n 1 | awk -F ':' '{print $2}')
+ return
+ fi
+ echo "${DEFAULT_DOMAIN_NAME}"
+}
+
+function passwords_select_user {
+ SELECTED_USERNAME=
+
+ users_array=($(ls /home))
+
+ delete=(mirrors git)
+ for del in ${delete[@]}
+ do
+ users_array=(${users_array[@]/$del})
+ done
+
+ i=0
+ W=()
+ name=()
+ for u in ${users_array[@]}
+ do
+ if [[ $(is_valid_user "$u") == "1" ]]; then
+ i=$((i+1))
+ W+=($i "$u")
+ name+=("$u")
+ fi
+ done
+
+ if [ $i -eq 1 ]; then
+ SELECTED_USERNAME="${name[0]}"
+ else
+ user_index=$(dialog --backtitle $"Freedombone Control Panel" --title $"Select User" --menu $"Select one of the following:" 24 40 17 "${W[@]}" 3>&2 2>&1 1>&3)
+
+ if [ $? -eq 0 ]; then
+ SELECTED_USERNAME="${name[$((user_index-1))]}"
+ fi
+ fi
+}
+
+function passwords_show_apps {
+ SELECTED_APP=
+ i=0
+ W=()
+ name=()
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ $(function_exists change_password_${a}) == "1" ]]; then
+ i=$((i+1))
+ W+=($i "$a")
+ name+=("$a")
+ fi
+ done
+
+ selected_app_index=$(dialog --backtitle $"Freedombone Control Panel" --title $"Select App" --menu $"Select one of the following:" 24 40 17 "${W[@]}" 3>&2 2>&1 1>&3)
+
+ if [ $? -eq 0 ]; then
+ SELECTED_APP="${name[$((selected_app_index-1))]}"
+ fi
+}
+
+function view_or_change_passwords {
+ passwords_select_user
+ if [ ! $SELECTED_USERNAME ]; then
+ return
+ fi
+ detect_installed_apps
+ passwords_show_apps
+ if [ ! $SELECTED_APP ]; then
+ return
+ fi
+
+ CURR_PASSWORD=$(${PROJECT_NAME}-pass -u ${SELECTED_USERNAME} -a ${SELECTED_APP})
+
+ icann_address=$(get_app_icann_address "$app_name")
+ onion_address=$(get_app_onion_address "${SELECTED_APP}")
+
+ titlestr=$"View or Change Password"
+ if [ ${#onion_address} -gt 0 ]; then
+ viewstr=$"${SELECTED_APP} password for ${SELECTED_USERNAME} on $icann_address or $onion_address\n\nCopy or change it if you wish."
+ else
+ viewstr=$"${SELECTED_APP} password for ${SELECTED_USERNAME} on $icann_address\n\nCopy or change it if you wish."
+ fi
+
+ if [ -f /root/.nostore ]; then
+ titlestr=$"Change Password"
+ if [ ${#onion_address} -gt 0 ]; then
+ viewstr=$"Change the ${SELECTED_APP} password for ${SELECTED_USERNAME} on $icann_address or $onion_address."
+ else
+ viewstr=$"Change the ${SELECTED_APP} password for ${SELECTED_USERNAME} on $icann_address."
+ fi
+ fi
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title "$titlestr" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox "$viewstr" 12 60 "$CURR_PASSWORD" 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ CURR_PASSWORD=$(<$data)
+ if [ ${#CURR_PASSWORD} -gt 8 ]; then
+ ${PROJECT_NAME}-pass -u ${SELECTED_USERNAME} -a ${SELECTED_APP} -p "${CURR_PASSWORD}"
+ change_password_${SELECTED_APP} ${SELECTED_USERNAME} "${CURR_PASSWORD}"
+ dialog --title $"Change password" \
+ --msgbox $"The password was changed" 6 40
+ fi
+ ;;
+ esac
+
+}
+
function check_for_updates {
if [ ! -f /etc/cron.weekly/$UPGRADE_SCRIPT_NAME ]; then
dialog --title $"Check for updates" \
@@ -149,45 +236,6 @@ function check_for_updates {
any_key
}
-function read_repo_servers {
- if [ -f $CONFIGURATION_FILE ]; then
- if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- fi
-
- if [ ! $FRIENDS_MIRRORS_SERVER ]; then
- return
- fi
- if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
- return
- fi
-
- MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
- if [ ! -f $MAIN_COMMAND ]; then
- MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
- fi
-
- REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
-
- for line in "${REPOS[@]}"
- do
- repo_name=$(echo "$line" | awk -F '=' '{print $1}')
- mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
- friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
- ${repo_name}="${friends_repo_url}"
- done
-}
-
function set_main_repo {
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
@@ -224,23 +272,9 @@ function set_main_repo {
FRIENDS_MIRRORS_SSH_PORT=$new_mirrors_ssh_port
FRIENDS_MIRRORS_PASSWORD=$new_mirrors_password
- if ! grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
- echo "FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER" >> $CONFIGURATION_FILE
- else
- sed -i "s|FRIENDS_MIRRORS_SERVER=.*|FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER|g" $CONFIGURATION_FILE
- fi
-
- if ! grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
- echo "FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT" >> $CONFIGURATION_FILE
- else
- sed -i "s|FRIENDS_MIRRORS_SSH_PORT=.*|FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT|g" $CONFIGURATION_FILE
- fi
-
- if ! grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
- else
- sed -i "s|FRIENDS_MIRRORS_PASSWORD=.*|FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD|g" $CONFIGURATION_FILE
- fi
+ write_config_param "FRIENDS_MIRRORS_SERVER" "$FRIENDS_MIRRORS_SERVER"
+ write_config_param "FRIENDS_MIRRORS_SSH_PORT" "$FRIENDS_MIRRORS_SSH_PORT"
+ write_config_param "FRIENDS_MIRRORS_PASSWORD" "$FRIENDS_MIRRORS_PASSWORD"
# re-read the repos
read_repo_servers
@@ -297,7 +331,7 @@ function pad_string {
}
function show_domains {
- DEFAULT_DOMAIN_NAME=$(cat $CONFIGURATION_FILE | grep "DEFAULT_DOMAIN_NAME=" | awk -F '=' '{print $2}')
+ read_config_param "DEFAULT_DOMAIN_NAME"
echo 'Domains'
echo '======='
@@ -312,82 +346,52 @@ function show_domains {
echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
echo "$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')"
fi
- if grep -q "Email onion domain" $COMPLETION_FILE; then
+ if grep -q "email onion domain" $COMPLETION_FILE; then
echo -n -e "$(pad_string 'Email')"
echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
- echo "$(cat ${COMPLETION_FILE} | grep 'Email onion domain' | awk -F ':' '{print $2}')"
+ echo "$(cat ${COMPLETION_FILE} | grep 'email onion domain' | awk -F ':' '{print $2}')"
fi
- if grep -q "XMPP onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'XMPP')"
- echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
- echo "$(cat ${COMPLETION_FILE} | grep 'XMPP onion domain' | awk -F ':' '{print $2}')"
- fi
- if grep -q "VoIP onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'VoIP/Mumble')"
- echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
- echo "$(cat ${COMPLETION_FILE} | grep 'VoIP onion domain' | awk -F ':' '{print $2}')"
- fi
- if grep -q "SIP onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'SIP')"
- echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
- echo "$(cat ${COMPLETION_FILE} | grep 'SIP onion domain' | awk -F ':' '{print $2}')"
- fi
- if grep -q "IRC onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'IRC')"
- echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
- echo "$(cat ${COMPLETION_FILE} | grep 'IRC onion domain' | awk -F ':' '{print $2}')"
- fi
- if grep -q "tox onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Tox')"
- echo -n -e "$(pad_string ${DEFAULT_DOMAIN_NAME})"
- echo "$(cat ${COMPLETION_FILE} | grep 'tox onion domain' | awk -F ':' '{print $2}')"
- fi
- if grep -q "Wiki domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Wiki')"
- WIKIDOM=$(cat ${COMPLETION_FILE} | grep 'Wiki domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${WIKIDOM})"
- if [ -d /var/lib/tor/hidden_service_wiki ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_wiki/hostname)"
+
+ for app_name in "${APPS_INSTALLED_NAMES[@]}"
+ do
+ if ! grep -q "SHOW_ON_ABOUT=1" /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}; then
+ continue
fi
- echo ''
- fi
- if grep -q "Hubzilla domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Hubzilla')"
- HUBZILLADOM=$(cat ${COMPLETION_FILE} | grep 'Hubzilla domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${HUBZILLADOM})"
- if [ -d /var/lib/tor/hidden_service_hubzilla ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_hubzilla/hostname)"
+
+ # handle the foibles of capitalisation
+ if ! grep -q "${app_name} domain" $COMPLETION_FILE; then
+ app_name_upper=$(echo ${app_name} | awk '{print toupper($0)}')
+ if grep -q "${app_name_upper} domain" $COMPLETION_FILE; then
+ app_name=${app_name_upper}
+ else
+ app_name_first_upper="$(tr '[:lower:]' '[:upper:]' <<< ${app_name:0:1})${app_name:1}"
+ if grep -q "${app_name_first_upper} domain" $COMPLETION_FILE; then
+ app_name=${app_name_first_upper}
+ fi
+ fi
fi
- echo ''
- fi
- if grep -q "Blog domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Blog')"
- BLOGDOM=$(cat ${COMPLETION_FILE} | grep 'Blog domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${BLOGDOM})"
- if [ -d /var/lib/tor/hidden_service_blog ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_blog/hostname)"
+
+ if [ ${#app_name} -gt 0 ]; then
+ icann_address=$(get_app_icann_address "$app_name")
+ onion_address=$(get_app_onion_address "$app_name")
+ if [ ${#onion_address} -eq 0 ]; then
+ onion_address="-"
+ fi
+
+ echo -n -e "$(pad_string "${app_name}")"
+ echo -n -e "$(pad_string "${icann_address}")"
+ echo "${onion_address}"
+
+ if grep -q "${app_name}_mobile onion domain" $COMPLETION_FILE; then
+ onion_address=$(get_app_onion_address "${app_name}" "mobile")
+ echo -n -e "$(pad_string "${app_name} (mobile)")"
+ echo -n -e "$(pad_string "${icann_address}")"
+ echo "${onion_address}"
+ fi
fi
- echo ''
- fi
- if grep -q "GNU Social domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'GNU Social')"
- GNUSOCIALDOM=$(cat ${COMPLETION_FILE} | grep 'GNU Social domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${GNUSOCIALDOM})"
- if [ -d /var/lib/tor/hidden_service_microblog ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_microblog/hostname)"
- fi
- echo ''
- fi
- if grep -q "Gogs domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Gogs')"
- GOGSDOM=$(cat ${COMPLETION_FILE} | grep 'Gogs domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${GOGSDOM})"
- if [ -d /var/lib/tor/hidden_service_gogs ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_gogs/hostname)"
- fi
- echo ''
- fi
- if grep -q "RSS reader domain" $COMPLETION_FILE; then
+ done
+
+ if grep -q "rss reader domain" $COMPLETION_FILE; then
if [ -d /var/lib/tor/hidden_service_ttrss ]; then
echo -n -e "$(pad_string 'RSS reader')"
RSSDOM='-'
@@ -403,43 +407,6 @@ function show_domains {
echo ''
fi
fi
- if grep -q "Webmail onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Webmail')"
- WEBMAILDOM='-'
- echo -n -e "$(pad_string ${WEBMAILDOM})"
- if [ -d /var/lib/tor/hidden_service_webmail ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_webmail/hostname)"
- fi
- echo ''
- fi
- if grep -q "Search engine onion domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Search engine')"
- SEARCHDOM='-'
- echo -n -e "$(pad_string ${SEARCHDOM})"
- if [ -d /var/lib/tor/hidden_service_searx ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_searx/hostname)"
- fi
- echo ''
- fi
- if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Mediagoblin')"
- MEDIADOM=$(cat ${COMPLETION_FILE} | grep 'Mediagoblin domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${MEDIADOM})"
- if [ -d /var/lib/tor/hidden_service_mediagoblin ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_mediagoblin/hostname)"
- fi
- echo ''
- fi
- if grep -q "Media server domain" $COMPLETION_FILE; then
- echo -n -e "$(pad_string 'Media server')"
- MEDIADOM=$(cat ${COMPLETION_FILE} | grep 'Media server domain' | awk -F ':' '{print $2}')
- echo -n -e "$(pad_string ${MEDIADOM})"
- if [ -d /var/lib/tor/hidden_service_mediadrop ]; then
- echo -n "$(cat /var/lib/tor/hidden_service_mediadrop/hostname)"
- fi
- echo ''
- fi
-
echo ''
}
@@ -448,26 +415,30 @@ function show_users {
echo '====='
echo ''
echo -n -e "$(pad_string 'Name')"
- echo -n -e "$(pad_string 'SIP ext')"
+ if [[ $(app_is_installed sip) == "1" ]]; then
+ echo -n -e "$(pad_string 'SIP ext')"
+ fi
echo -n -e "$(pad_string 'Data')"
echo ''
- echo '--------------------------------------------------------------------------'
+ echo '----------------------------------'
for d in /home/*/ ; do
USRNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USRNAME != "git" && $USRNAME != "mirrors" && $USRNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USRNAME") == "1" ]]; then
echo -n -e "$(pad_string ${USRNAME})"
# get the SIP extension
SIPEXT=
- while read ext; do
- if [[ $ext == *"user id"* ]]; then
- CURR_UID=$(echo "$ext" | awk -F '"' '{print $2}' | awk -F '"' '{print $1}')
- fi
- if [[ $ext == *"extension"* ]]; then
- if [[ $CURR_UID == $USRNAME ]]; then
- SIPEXT=$(echo "$ext" | awk -F '>' '{print $2}' | awk -F '<' '{print $1}')
+ if [ -f $SIP_CONFIGURATION_FILE ]; then
+ while read ext; do
+ if [[ $ext == *"user id"* ]]; then
+ CURR_UID=$(echo "$ext" | awk -F '"' '{print $2}' | awk -F '"' '{print $1}')
fi
- fi
- done < $SIP_CONFIGURATION_FILE
+ if [[ $ext == *"extension"* ]]; then
+ if [[ $CURR_UID == $USRNAME ]]; then
+ SIPEXT=$(echo "$ext" | awk -F '>' '{print $2}' | awk -F '<' '{print $1}')
+ fi
+ fi
+ done < $SIP_CONFIGURATION_FILE
+ fi
if [ $SIPEXT ]; then
echo -n -e "$(pad_string SIP:${SIPEXT})"
else
@@ -485,9 +456,7 @@ function show_mirrors_password {
if [ ! /home/mirrors ]; then
return
fi
- if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
+ read_config_param "MY_MIRRORS_PASSWORD"
echo 'Local Mirrors'
echo '============='
echo ''
@@ -498,10 +467,52 @@ function show_mirrors_password {
echo ''
}
+function show_tahoe_introducer {
+ if [ ! -f /home/tahoelafs/.tahoe-introducer/private/introducer.furl ]; then
+ return
+ fi
+ echo 'Tahoe-LAFS'
+ echo '=========='
+ echo ''
+ cat /home/tahoelafs/.tahoe-introducer/private/introducer.furl
+ echo ''
+}
+
+function show_ip_addresses {
+ echo $'IP/DNS addresses'
+ echo '================'
+ echo ''
+ echo -n "IPv4: $(get_ipv4_address)"
+ ipv6_address="$(get_ipv6_address)"
+ if [ ${#ipv6_address} -gt 0 ]; then
+ echo " IPv6: ${ipv6_address}"
+ fi
+ echo ''
+ echo ''
+}
+
+function show_ssh_public_key {
+ echo $'SSH Public Keys'
+ echo '==============='
+ echo ''
+ echo "$(get_ssh_server_key)"
+ echo ''
+ echo ''
+}
+
function show_about {
clear
+ echo ''
+ echo $' Detecting installed apps...'
+ detect_apps
+ get_apps_installed_names
+
+ clear
+ show_ip_addresses
+ show_ssh_public_key
show_domains
show_mirrors_password
+ show_tahoe_introducer
show_users
any_key
}
@@ -522,92 +533,21 @@ function select_user {
name=()
for u in ${users_array[@]}
do
- i=$((i+1))
- W+=($i "$u")
- name+=("$u")
+ if [[ $(is_valid_user "$u") == "1" ]]; then
+ i=$((i+1))
+ W+=($i "$u")
+ name+=("$u")
+ fi
done
- user_index=$(dialog --backtitle $"Freedombone Control Panel" --title $"Select User" --menu $"Select one of the following:" 24 40 17 "${W[@]}" 3>&2 2>&1 1>&3)
+ if [ $i -eq 1 ]; then
+ SELECTED_USERNAME="${name[0]}"
+ else
+ user_index=$(dialog --backtitle $"Freedombone Control Panel" --title $"Select User" --menu $"Select one of the following:" 24 40 17 "${W[@]}" 3>&2 2>&1 1>&3)
- if [ $? -eq 0 ]; then
- SELECTED_USERNAME="${name[$((user_index-1))]}"
- fi
-}
-
-function smtp_proxy {
- MUTTRC_FILE=/home/$ADMIN_USER/.muttrc
- if [ ! -f $MUTTRC_FILE ]; then
- return
- fi
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"SMTP Proxy for $ADMIN_USER" \
- --form $"You may need to proxy outgoing email via your ISP's mail server. If so enter the details below." 14 75 6 \
- $"Enable proxy:" 1 1 "$SMTP_PROXY_ENABLE" 1 24 5 5 \
- $"Protocol (smtp/smtps):" 2 1 "$SMTP_PROXY_PROTOCOL" 2 24 5 5 \
- $"ISP mail server:" 3 1 "$SMTP_PROXY_SERVER" 3 24 40 10000 \
- $"Port:" 4 1 "$SMTP_PROXY_PORT" 4 24 5 5 \
- $"Username:" 5 1 "$SMTP_PROXY_USERNAME" 5 24 40 10000 \
- $"Password:" 6 1 "$SMTP_PROXY_PASSWORD" 6 24 40 10000 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- SMTP_PROXY_ENABLE=$(cat $data | sed -n 1p)
- SMTP_PROXY_PROTOCOL=$(cat $data | sed -n 2p)
- SMTP_PROXY_SERVER=$(cat $data | sed -n 3p)
- SMTP_PROXY_PORT=$(cat $data | sed -n 4p)
- SMTP_PROXY_USERNAME=$(cat $data | sed -n 5p)
- SMTP_PROXY_PASSWORD=$(cat $data | sed -n 6p)
-
- # change muttrc
- if [ $SMTP_PROXY_ENABLE != $'no' ]; then
- if ! grep "set smtp_url" $MUTTRC_FILE; then
- echo "set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"" >> $MUTTRC_FILE
- else
- sed -i "s|set smtp_url=.*|set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"|g" $MUTTRC_FILE
+ if [ $? -eq 0 ]; then
+ SELECTED_USERNAME="${name[$((user_index-1))]}"
fi
- sed -i 's|#set smtp_url|set smtp_url|g' $MUTTRC_FILE
- else
- if grep "set smtp_url" $MUTTRC_FILE; then
- sed -i 's|set smtp_url|#set smtp_url|g' $MUTTRC_FILE
- fi
- fi
-
- # save settings within the main configuration file
- if ! grep -q "SMTP_PROXY_ENABLE=" $CONFIGURATION_FILE; then
- echo "SMTP_PROXY_ENABLE=$SMTP_PROXY_ENABLE" >> $CONFIGURATION_FILE
- else
- sed -i "s|SMTP_PROXY_ENABLE=.*|SMTP_PROXY_ENABLE=$SMTP_PROXY_ENABLE|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "SMTP_PROXY_PROTOCOL=" $CONFIGURATION_FILE; then
- echo "SMTP_PROXY_PROTOCOL=$SMTP_PROXY_PROTOCOL" >> $CONFIGURATION_FILE
- else
- sed -i "s|SMTP_PROXY_PROTOCOL=.*|SMTP_PROXY_PROTOCOL=$SMTP_PROXY_PROTOCOL|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "SMTP_PROXY_SERVER=" $CONFIGURATION_FILE; then
- echo "SMTP_PROXY_SERVER=$SMTP_PROXY_SERVER" >> $CONFIGURATION_FILE
- else
- sed -i "s|SMTP_PROXY_SERVER=.*|SMTP_PROXY_SERVER=$SMTP_PROXY_SERVER|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "SMTP_PROXY_PORT=" $CONFIGURATION_FILE; then
- echo "SMTP_PROXY_PORT=$SMTP_PROXY_PORT" >> $CONFIGURATION_FILE
- else
- sed -i "s|SMTP_PROXY_PORT=.*|SMTP_PROXY_PORT=$SMTP_PROXY_PORT|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "SMTP_PROXY_USERNAME=" $CONFIGURATION_FILE; then
- echo "SMTP_PROXY_USERNAME=$SMTP_PROXY_USERNAME" >> $CONFIGURATION_FILE
- else
- sed -i "s|SMTP_PROXY_USERNAME=.*|SMTP_PROXY_USERNAME=$SMTP_PROXY_USERNAME|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "SMTP_PROXY_PASSWORD=" $CONFIGURATION_FILE; then
- echo "SMTP_PROXY_PASSWORD=$SMTP_PROXY_PASSWORD" >> $CONFIGURATION_FILE
- else
- sed -i "s|SMTP_PROXY_PASSWORD=.*|SMTP_PROXY_PASSWORD=$SMTP_PROXY_PASSWORD|g" $CONFIGURATION_FILE
fi
}
@@ -669,66 +609,6 @@ function change_password {
--msgbox $"Password for $SELECTED_USERNAME was changed" 6 40
}
-function irc_show_password {
- IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
- dialog --title $"IRC Password" \
- --msgbox "$IRC_PASSWORD" 6 40
-}
-
-function irc_set_global_password {
- dialog --title $"IRC Password" \
- --clear \
- --backtitle $"Freedombone Control Panel" \
- --passwordbox $"Password for all IRC users, or press Enter for no password" 10 50 2> $data
- sel=$?
- case $sel in
- 0)
- EXISTING_IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
- NEW_IRC_PASSWORD=$(<$data)
- sed -i "0,/RE/s/Password =.*/Password =$NEW_IRC_PASSWORD/" /etc/ngircd/ngircd.conf
-
- # replace the password for all users
- for d in /home/*/ ; do
- IRC_USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $IRC_USERNAME != "git" && $IRC_USERNAME != "mirrors" && $IRC_USERNAME != "sync" ]]; then
- if [ -f /home/$IRC_USERNAME/.irssi/config ]; then
- sed -i "s|$EXISTING_IRC_PASSWORD|$NEW_IRC_PASSWORD|g" /home/$IRC_USERNAME/.irssi/config
- chown -R $IRC_USERNAME:$IRC_USERNAME /home/$IRC_USERNAME/.irssi
- fi
- fi
- done
-
- # restart the daemon for the new password to take effect
- systemctl restart ngircd
-
- dialog --title $"IRC Password" \
- --msgbox $"The IRC password was changed" 6 40
- ;;
- esac
-}
-
-function change_blog_avatar {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Change blog avatar" \
- --backtitle $"Freedombone Control Panel" \
- --inputbox $"Enter a URL for an image. It should be approximately a square image." 8 75 2>$data
- sel=$?
- case $sel in
- 0)
- IMAGE_URL=$(<$data)
- if [ ${#IMAGE_URL} -gt 5 ]; then
- clear
- ${PROJECT_NAME}-blog -a $IMAGE_URL
- if [ "$?" = "0" ]; then
- dialog --title $"Change blog avatar" \
- --msgbox $"Your blog avatar has been changed" 6 40
- fi
- fi
- ;;
- esac
-}
-
function change_ssh_public_key {
select_user
if [ ! $SELECTED_USERNAME ]; then
@@ -1097,186 +977,144 @@ function backup_data {
dialog --title $"Backup data to USB" \
--msgbox $"Plug in a LUKS encrypted USB drive" 6 40
clear
- echo ' '
+ detect_usb_drive
+ echo ''
+ echo $"Detected USB drive $USB_DRIVE"
+ echo ''
echo $'Enter the passphrase for your LUKS encrypted backup drive:'
${PROJECT_NAME}-backup-local
any_key
}
-function restore_from_usb {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Restore from USB backup" \
- --radiolist $"Choose an application to restore:" 32 70 28 \
- 1 $"Everything" off \
- 2 $"Return to the backup and restore menu" on \
- 3 $"Configuration files" off \
- 4 $"MariaDB settings" off \
- 5 $"Let's Encrypt account" off \
- 6 $"Mutt email client settings" off \
- 7 $"GPG keys" off \
- 8 $"Email processing rules" off \
- 9 $"Spam filtering rules" off \
- 10 $"Administrator's README file" off \
- 11 $"IPFS" off \
- 12 $"SSH keys" off \
- 13 $"User configuration files" off \
- 14 $"User local files" off \
- 15 $"User fin files" off \
- 16 $"SSL/TLS certificates" off \
- 17 $"Personal settings" off \
- 18 $"Mailing List" off \
- 19 $"XMPP chat" off \
- 20 $"GNU Social" off \
- 21 $"Hubzilla" off \
- 22 $"Syncthing" off \
- 23 $"Gogs" off \
- 24 $"Wiki" off \
- 25 $"Blog" off \
- 26 $"CJDNS" off \
- 27 $"Email" off \
- 28 $"DLNA" off \
- 29 $"VoIP" off \
- 30 $"RSS reader" off \
- 31 $"Tox" off \
- 32 $"Mediagoblin" off 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
+function restore_data_from_storage {
+ restore_type="$1"
- if [ $(cat $data) -ne 2 ]; then
- clear
- fi
+ AllStr=$"all"
+ ExitStr=$"Exit"
+ RestoreStr=$"Restore apps"
- case $(cat $data) in
- 1) ${PROJECT_NAME}-restore-local $USB_DRIVE;;
- 2) return;;
- 3) ${PROJECT_NAME}-restore-local $USB_DRIVE configfiles;;
- 4) ${PROJECT_NAME}-restore-local $USB_DRIVE mariadb;;
- 5) ${PROJECT_NAME}-restore-local $USB_DRIVE letsencrypt;;
- 6) ${PROJECT_NAME}-restore-local $USB_DRIVE mutt;;
- 7) ${PROJECT_NAME}-restore-local $USB_DRIVE gpg;;
- 8) ${PROJECT_NAME}-restore-local $USB_DRIVE procmail;;
- 9) ${PROJECT_NAME}-restore-local $USB_DRIVE spamassassin;;
- 10) ${PROJECT_NAME}-restore-local $USB_DRIVE readme;;
- 11) ${PROJECT_NAME}-restore-local $USB_DRIVE ipfs;;
- 12) ${PROJECT_NAME}-restore-local $USB_DRIVE ssh;;
- 13) ${PROJECT_NAME}-restore-local $USB_DRIVE userconfig;;
- 14) ${PROJECT_NAME}-restore-local $USB_DRIVE userlocal;;
- 15) ${PROJECT_NAME}-restore-local $USB_DRIVE userfin;;
- 16) ${PROJECT_NAME}-restore-local $USB_DRIVE certs;;
- 17) ${PROJECT_NAME}-restore-local $USB_DRIVE personal;;
- 18) ${PROJECT_NAME}-restore-local $USB_DRIVE mailinglist;;
- 19) ${PROJECT_NAME}-restore-local $USB_DRIVE xmpp;;
- 20) ${PROJECT_NAME}-restore-local $USB_DRIVE gnusocial;;
- 21) ${PROJECT_NAME}-restore-local $USB_DRIVE hubzilla;;
- 22) ${PROJECT_NAME}-restore-local $USB_DRIVE syncthing;;
- 23) ${PROJECT_NAME}-restore-local $USB_DRIVE gogs;;
- 24) ${PROJECT_NAME}-restore-local $USB_DRIVE wiki;;
- 25) ${PROJECT_NAME}-restore-local $USB_DRIVE blog;;
- 26) ${PROJECT_NAME}-restore-local $USB_DRIVE cjdns;;
- 27) ${PROJECT_NAME}-restore-local $USB_DRIVE email;;
- 28) ${PROJECT_NAME}-restore-local $USB_DRIVE dlna;;
- 29) ${PROJECT_NAME}-restore-local $USB_DRIVE voip;;
- 30) ${PROJECT_NAME}-restore-local $USB_DRIVE ttrss;;
- 31) ${PROJECT_NAME}-restore-local $USB_DRIVE tox;;
- 32) ${PROJECT_NAME}-restore-local $USB_DRIVE mediagoblin;;
- esac
- done
- any_key
-}
+ if [[ $restore_type != "local" ]]; then
+ restore_command="${PROJECT_NAME}-restore-remote $remote_domain_name configuration;;"
+ else
+ remote_domain_name="$1"
+ detect_usb_drive
+ restore_command="${PROJECT_NAME}-restore-local $USB_DRIVE"
+ RestoreStr=$"Restore apps from USB drive $USB_DRIVE"
+ fi
-function restore_from_remote {
- remote_domain_name=$1
+ utils_installed=(configfiles
+ mariadb
+ letsencrypt
+ passwords
+ mutt
+ gpg
+ procmail
+ spamassassin
+ readme
+ ssh
+ userconfig
+ userlocal
+ userfin
+ certs
+ personal
+ email)
+
+ detect_apps
while true
do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Restore from ${remote_domain_name}" \
- --radiolist $"Choose an application to restore:" 31 70 28 \
- 1 $"Everything" off \
- 2 $"Return to the backup and restore menu" on \
- 3 $"Configuration files" off \
- 4 $"MariaDB settings" off \
- 5 $"Let's Encrypt account" off \
- 6 $"Mutt email client settings" off \
- 7 $"GPG keys" off \
- 8 $"Email processing rules" off \
- 9 $"Spam filtering rules" off \
- 10 $"Administrator's README file" off \
- 11 $"IPFS" off \
- 12 $"SSH keys" off \
- 13 $"User configuration files" off \
- 14 $"User local files" off \
- 15 $"User fin files" off \
- 16 $"SSL/TLS certificates" off \
- 17 $"Personal settings" off \
- 18 $"Mailing List" off \
- 19 $"XMPP chat" off \
- 20 $"GNU Social" off \
- 21 $"Hubzilla" off \
- 22 $"Syncthing" off \
- 23 $"Gogs" off \
- 24 $"Wiki" off \
- 25 $"Blog" off \
- 26 $"CJDNS" off \
- 27 $"Email" off \
- 28 $"DLNA" off \
- 29 $"VoIP" off \
- 30 $"RSS reader" off \
- 31 $"Tox" off 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- if [ $(cat $data) -ne 2 ]; then
- clear
+ app_list=()
+ n=1
+ applist="$n $AllStr off"
+ n=$[n+1]
+ app_list+=("$AllStr")
+
+ util_index=0
+ for a in "${utils_installed[@]}"
+ do
+ applist="$applist $n $a off"
+ app_name=${utils_installed[util_index]}
+ n=$[n+1]
+ util_index=$[util_index+1]
+ app_list+=("$app_name")
+ done
+
+ app_index=0
+ for a in "${APPS_INSTALLED_NAMES[@]}"
+ do
+ applist="$applist $n $a off"
+ n=$[n+1]
+ app_name=${APPS_INSTALLED_NAMES[app_index]}
+ app_index=$[app_index+1]
+ app_list+=("$app_name")
+ done
+ applist="$applist $n $ExitStr on"
+ n=$[n+1]
+ app_list+=("$ExitStr")
+
+ choice=$(dialog --stdout --backtitle $"Freedombone" \
+ --title "$RestoreStr" \
+ --radiolist $'Choose:' \
+ 30 50 20 $applist)
+
+ if [ $? -ne 0 ]; then
+ break
+ fi
+ app_index=$[choice-1]
+ app_name=${app_list[app_index]}
+
+ # exit
+ if [[ "$app_name" == "$ExitStr" ]]; then
+ break
+ fi
+
+ clear
+
+ # Restore all
+ if [[ "$app_name" == "$AllStr" ]]; then
+ $restore_command
+ retcode="$?"
+ if [[ "$retcode" != "0" ]]; then
+ if [[ "$1" == "local" ]]; then
+ dialog --title $"Restore all apps from USB" \
+ --msgbox $"Restore failed with code $retcode" 6 60
+ else
+ dialog --title $"Restore all apps from $1" \
+ --msgbox $"Restore failed with code $retcode" 6 60
+ fi
+ break
+ fi
+
+ if [[ "$1" == "local" ]]; then
+ dialog --title $"Restore all apps from USB" \
+ --msgbox $"Restore complete" 6 40
+ else
+ dialog --title $"Restore all apps from $1" \
+ --msgbox $"Restore complete" 6 40
+ fi
+ break
+ fi
+
+ # Restore an app
+ $restore_command "${app_name}"
+ retcode="$?"
+ if [[ "$retcode" != "0" ]]; then
+ dialog --title $"Restore apps from USB" \
+ --msgbox $"Restore of ${app_name} failed with code $retcode" 6 60
+ return
+ fi
+
+ # finished
+ if [[ "$1" == "local" ]]; then
+ dialog --title $"Restore apps from USB" \
+ --msgbox $"Restore complete" 6 40
+ else
+ dialog --title $"Restore apps from $1" \
+ --msgbox $"Restore complete" 6 40
fi
- case $(cat $data) in
- 1) ${PROJECT_NAME}-restore-remote $remote_domain_name;;
- 2) return;;
- 3) ${PROJECT_NAME}-restore-remote $remote_domain_name configfiles;;
- 4) ${PROJECT_NAME}-restore-remote $remote_domain_name mariadb;;
- 5) ${PROJECT_NAME}-restore-remote $remote_domain_name letsencrypt;;
- 6) ${PROJECT_NAME}-restore-remote $remote_domain_name mutt;;
- 7) ${PROJECT_NAME}-restore-remote $remote_domain_name gpg;;
- 8) ${PROJECT_NAME}-restore-remote $remote_domain_name procmail;;
- 9) ${PROJECT_NAME}-restore-remote $remote_domain_name spamassassin;;
- 10) ${PROJECT_NAME}-restore-remote $remote_domain_name readme;;
- 11) ${PROJECT_NAME}-restore-remote $remote_domain_name ipfs;;
- 12) ${PROJECT_NAME}-restore-remote $remote_domain_name ssh;;
- 13) ${PROJECT_NAME}-restore-remote $remote_domain_name userconfig;;
- 14) ${PROJECT_NAME}-restore-remote $remote_domain_name userlocal;;
- 15) ${PROJECT_NAME}-restore-remote $remote_domain_name userfin;;
- 16) ${PROJECT_NAME}-restore-remote $remote_domain_name certs;;
- 17) ${PROJECT_NAME}-restore-remote $remote_domain_name personal;;
- 18) ${PROJECT_NAME}-restore-remote $remote_domain_name mailinglist;;
- 19) ${PROJECT_NAME}-restore-remote $remote_domain_name xmpp;;
- 20) ${PROJECT_NAME}-restore-remote $remote_domain_name gnusocial;;
- 21) ${PROJECT_NAME}-restore-remote $remote_domain_name hubzilla;;
- 22) ${PROJECT_NAME}-restore-remote $remote_domain_name syncthing;;
- 23) ${PROJECT_NAME}-restore-remote $remote_domain_name gogs;;
- 24) ${PROJECT_NAME}-restore-remote $remote_domain_name wiki;;
- 25) ${PROJECT_NAME}-restore-remote $remote_domain_name blog;;
- 26) ${PROJECT_NAME}-restore-remote $remote_domain_name cjdns;;
- 27) ${PROJECT_NAME}-restore-remote $remote_domain_name email;;
- 28) ${PROJECT_NAME}-restore-remote $remote_domain_name dlna;;
- 29) ${PROJECT_NAME}-restore-remote $remote_domain_name voip;;
- 30) ${PROJECT_NAME}-restore-remote $remote_domain_name ttrss;;
- 31) ${PROJECT_NAME}-restore-remote $remote_domain_name tox;;
- esac
done
- any_key
}
function restore_data {
@@ -1285,7 +1123,7 @@ function restore_data {
clear
echo ' '
echo $'Enter the passphrase for your LUKS encrypted backup drive:'
- restore_from_usb
+ restore_data_from_storage local
}
function restore_data_remote {
@@ -1314,7 +1152,7 @@ function restore_data_remote {
return
fi
- restore_from_remote $friend_server_domain_name
+ restore_data_from_storage $friend_server_domain_name
;;
esac
}
@@ -1383,6 +1221,9 @@ function security_settings {
}
function reset_tripwire {
+ if [ ! -f /usr/bin/reset-tripwire ]; then
+ return
+ fi
clear
echo $'Resetting the Tripwire...'
echo ' '
@@ -1392,96 +1233,14 @@ function reset_tripwire {
any_key
}
-function hubzilla_renew_cert {
- dialog --title $"Renew SSL certificate" \
- --backtitle $"Freedombone Control Panel" \
- --yesno $"\nThis will renew a letsencrypt certificate. Select 'yes' to continue" 16 60
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
- if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
- dialog --title $"Renew SSL certificate" \
- --msgbox $"Hubzilla install directory not found" 6 40
- return
- fi
- ${PROJECT_NAME}-renew-cert -h $HUBZILLA_DOMAIN_NAME -p 'letsencrypt'
- if [ ! "$?" = "0" ]; then
- any_key
- else
- dialog --title $"Renew SSL certificate" \
- --msgbox $"Hubzilla certificate has been renewed" 6 40
- fi
-}
-
-function hubzilla_channel_directory_server {
- if ! grep -q "Hubzilla domain" $COMPLETION_FILE; then
- dialog --title $"Hubzilla channel directory server" \
- --msgbox $"Hubzilla is not installed on this system" 6 40
- return
- fi
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
- if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
- dialog --title $"Hubzilla channel directory server" \
- --msgbox $"Hubzilla install directory not found" 6 40
- return
- fi
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Hubzilla channel directory server" \
- --backtitle $"Freedombone Control Panel" \
- --inputbox $"When you click on 'channel directory' this is where Hubzilla will obtain its list from" 8 60 2>$data
- sel=$?
- case $sel in
- 0)
- hubzilla_domain_server=$(<$data)
- if [[ $hubzilla_domain_server != *"."* ]]; then
- return
- fi
- if [[ $hubzilla_domain_server != "https"* ]]; then
- dialog --title $"Hubzilla channel directory server" \
- --msgbox $"Invalid domain - include the https://" 6 40
- return
- fi
- ./var/www/$HUBZILLA_DOMAIN_NAME/htdocs/util/config system directory_server $hubzilla_domain_server
- dialog --title $"Hubzilla channel directory server" \
- --msgbox $"Domain channel directory server changed to $hubzilla_domain_server" 6 40
- ;;
- esac
-}
-
function format_drive {
- drive=
+ detect_usb_drive
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Format a USB drive (LUKS encrypted)" \
- --radiolist $"Choose a drive:" 12 70 5 \
- 1 $"sda (Beaglebone Black)" off \
- 2 $"sdb" off \
- 3 $"sdc" off \
- 4 $"sdd" off \
- 5 $"Back to Backup and Restore menu" on 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- case $(cat $data) in
- 1) drive='sda';;
- 2) drive='sdb';;
- 3) drive='sdc';;
- 4) drive='sdd';;
- 5) return;;
- esac
-
- dialog --title $"Format USB drive" \
+ dialog --title $"Format USB drive $USB_DRIVE" \
--backtitle $"Freedombone Control Panel" \
--defaultno \
- --yesno $"\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!" 16 60
+ --yesno $"\nPlease confirm that you wish to format drive\n\n ${USB_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!" 16 60
sel=$?
case $sel in
1) return;;
@@ -1489,36 +1248,18 @@ function format_drive {
esac
clear
- ${PROJECT_NAME}-format $drive
+ echo ''
+ echo $"Formatting drive $USB_DRIVE. ALL CONTENTS WILL BE LOST."
+ echo ''
+ ${PROJECT_NAME}-format $USB_DRIVE
any_key
}
function remove_backups {
- drive=
+ detect_usb_drive
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Remove backups from a USB drive" \
- --radiolist $"Choose a drive:" 12 70 5 \
- 1 $"sda (Beaglebone Black)" off \
- 2 $"sdb" off \
- 3 $"sdc" off \
- 4 $"sdd" off \
- 5 $"Back to Backup and Restore menu" on 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- case $(cat $data) in
- 1) drive='sda';;
- 2) drive='sdb';;
- 3) drive='sdc';;
- 4) drive='sdd';;
- 5) return;;
- esac
-
- dialog --title $"Remove backups from a USB drive" \
+ dialog --title $"Remove backups from a USB drive $USB_DRIVE" \
--backtitle $"Freedombone Control Panel" \
--defaultno \
--yesno $"\nPlease confirm that you wish to remove backups from this drive\n\n ${drive}\n\nYou will not be able to recover them afterwards." 12 60
@@ -1529,7 +1270,7 @@ function remove_backups {
esac
clear
- ${PROJECT_NAME}-backup-local $drive remove
+ ${PROJECT_NAME}-backup-local $USB_DRIVE remove
any_key
}
@@ -1582,39 +1323,40 @@ function change_system_name {
esac
}
-function set_tls_time_source {
- TLS_DATE_SOURCE=$(cat /usr/bin/updatedate | grep "TIMESOURCE='" | awk -F '=' '{print $2}' | awk -F "'" '{print $2}')
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Set the TLS date/time source" \
+function set_dynamic_IP {
+ revert_to_dynamic=
+ dialog --title $"Return to using a dynamic IP address" \
--backtitle $"Freedombone Control Panel" \
- --inputbox $"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)." 14 60 "$TLS_DATE_SOURCE" 2>$data
+ --yesno $"\nDo you wish to go back to using a dynamic IP address?" 8 60
sel=$?
case $sel in
- 0) NEW_TLS_DATE_SOURCE=$(<$data)
- if [[ $NEW_TLS_DATE_SOURCE == *"."* && $NEW_TLS_DATE_SOURCE != *'/'* ]]; then
- if [[ $NEW_TLS_DATE_SOURCE != "http"* ]]; then
- sed -i "s|TIMESOURCE='.*|TIMESOURCE='${NEW_TLS_DATE_SOURCE}'|g" $UPDATE_DATE_SCRIPT
- else
- dialog --title $"Invalid domain name" \
- --msgbox $"Don't include the 'https'" 6 70
- fi
- else
- dialog --title $"Invalid domain name" \
- --msgbox $"That doesn't look like a domain name" 6 70
- fi
+ 0) revert_to_dynamic=1
;;
+ 1) return;;
esac
+
+ if [ $revert_to_dynamic ]; then
+ wifi_original_network_settings
+ clear
+ echo ''
+ echo $'Changing to a dynamic IP address.'
+ echo ''
+ echo $"System is rebooting. You may need to close this terminal and log in from a new one."
+ reboot
+ fi
}
function set_static_IP {
- STATIC_IP='192.168.1.60'
- STATIC_GATEWAY='192.168.1.1'
+ IPv4_address=$(get_ipv4_address)
+ IPv4_address_base=$(echo "$IPv4_address" | awk -F '.' '{print $1"."$2"."$3}')
+ STATIC_IP="${IPv4_address_base}.60"
+ STATIC_GATEWAY="${IPv4_address_base}.1"
+
NEW_STATIC_IP=
NEW_STATIC_GATEWAY=
if grep -q 'iface eth0 inet static' /etc/network/interfaces; then
- STATIC_IP=$(cat /etc/network/interfaces | grep "address " | awk -F ' ' '{print $2}' | head -n 1)
- STATIC_GATEWAY=$(cat /etc/network/interfaces | grep "gateway " | awk -F ' ' '{print $2}' | head -n 1)
+ STATIC_IP=$(cat /etc/network/interfaces | grep "address " | head -n 1 | awk -F ' ' '{print $2}')
+ STATIC_GATEWAY=$(cat /etc/network/interfaces | grep "gateway " | head -n 1 | awk -F ' ' '{print $2}')
fi
# get the IP for the box
@@ -1623,19 +1365,16 @@ function set_static_IP {
dialog --title $"Set a static local IP address" \
--backtitle $"Freedombone Control Panel" \
--inputbox $"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
-Enter a static local IP address for this system.\n\nIt will typically be 192.168.1.x" 15 60 "$STATIC_IP" 2>$data
+Enter a static local IP address for this system.\n\nIt will typically be ${IPv4_address_base}.x\n\nIf you leave this field blank then the system will revert to using a dynamic IP address." 18 60 "$STATIC_IP" 2>$data
sel=$?
case $sel in
0) NEW_STATIC_IP=$(<$data)
if [[ "$NEW_STATIC_IP" != *"."* ]]; then
+ set_dynamic_IP
return
fi
- if grep -q 'iface eth0 inet static' /etc/network/interfaces; then
- if [[ "$NEW_STATIC_IP" != "$STATIC_IP" ]]; then
- sed -i "s|${STATIC_IP}|${NEW_STATIC_IP}|g" /etc/network/interfaces
- fi
- fi
;;
+ 1) return;;
esac
# get the gateway
@@ -1643,59 +1382,104 @@ Enter a static local IP address for this system.\n\nIt will typically be 192.168
trap "rm -f $data" 0 1 2 5 15
dialog --title $"Set the IP address of your internet router/modem" \
--backtitle $"Freedombone Control Panel" \
- --inputbox $"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" 12 60 "$STATIC_GATEWAY" 2>$data
+ --inputbox $"Set the local IP address for your internet router or ADSL modem.\n\nIt will typically be ${IPv4_address_base}.1, ${IPv4_address_base}.254, or similar" 12 60 "$STATIC_GATEWAY" 2>$data
sel=$?
case $sel in
0) NEW_STATIC_GATEWAY=$(<$data)
if [[ "$NEW_STATIC_GATEWAY" != *"."* ]]; then
return
fi
- if grep -q 'iface eth0 inet static' /etc/network/interfaces; then
- if [[ "$NEW_STATIC_GATEWAY" != "$STATIC_GATEWAY" ]]; then
- sed -i "s|${STATIC_GATEWAY}|${NEW_STATIC_GATEWAY}|g" /etc/network/interfaces
- fi
- return
- fi
;;
+ 1) return;;
esac
- if ! grep -q 'iface eth0 inet static' /etc/network/interfaces; then
- if [ "$NEW_STATIC_GATEWAY" && "$NEW_STATIC_IP" ]; then
- echo '# This file describes the network interfaces available on your system' > /etc/network/interfaces
- echo '# and how to activate them. For more information, see interfaces(5).' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# The loopback network interface' >> /etc/network/interfaces
- echo 'auto lo' >> /etc/network/interfaces
- echo 'iface lo inet loopback' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# The primary network interface' >> /etc/network/interfaces
- echo 'auto eth0' >> /etc/network/interfaces
- echo 'iface eth0 inet static' >> /etc/network/interfaces
- echo " address ${NEW_STATIC_IP}" >> /etc/network/interfaces
- echo ' netmask 255.255.255.0' >> /etc/network/interfaces
- echo " gateway ${NEW_STATIC_GATEWAY}" >> /etc/network/interfaces
- echo " dns-nameservers 213.73.91.35 85.214.20.141" >> /etc/network/interfaces
- echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
- echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# The secondary network interface' >> /etc/network/interfaces
- echo '#auto eth1' >> /etc/network/interfaces
- echo '#iface eth1 inet dhcp' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# WiFi Example' >> /etc/network/interfaces
- echo "#auto $WIFI_INTERFACE" >> /etc/network/interfaces
- echo "#iface $WIFI_INTERFACE inet dhcp" >> /etc/network/interfaces
- echo '# wpa-ssid "essid"' >> /etc/network/interfaces
- echo '# wpa-psk "password"' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# Ethernet/RNDIS gadget (g_ether)' >> /etc/network/interfaces
- echo '# ... or on host side, usbnet and random hwaddr' >> /etc/network/interfaces
- echo '# Note on some boards, usb0 is automaticly setup with an init script' >> /etc/network/interfaces
- echo '#iface usb0 inet static' >> /etc/network/interfaces
- echo '# address 192.168.7.2' >> /etc/network/interfaces
- echo '# netmask 255.255.255.0' >> /etc/network/interfaces
- echo '# network 192.168.7.0' >> /etc/network/interfaces
- echo '# gateway 192.168.7.1' >> /etc/network/interfaces
+ if [[ "$NEW_STATIC_GATEWAY" == *"."* && "$NEW_STATIC_IP" == *"."* ]]; then
+ ip_addresses_have_changed=
+ if ! grep -q "address ${NEW_STATIC_IP}" /etc/network/interfaces; then
+ ip_addresses_have_changed=1
+ fi
+ if ! grep -q "gateway ${NEW_STATIC_GATEWAY}" /etc/network/interfaces; then
+ ip_addresses_have_changed=1
+ fi
+ if [ $ip_addresses_have_changed ]; then
+ write_config_param "NETWORK_IS_STATIC" "1"
+ write_config_param "LOCAL_NETWORK_STATIC_IP_ADDRESS" "$NEW_STATIC_IP"
+ write_config_param "ROUTER_IP_ADDRESS" "$NEW_STATIC_GATEWAY"
+
+ email_change_relay "$NEW_STATIC_IP"
+
+ static_wifi_address=
+ if [[ $(config_param_exists "WIFI_INTERFACE") == "1" ]]; then
+ dialog --title $"Static local IP address" \
+ --backtitle $"Freedombone Control Panel" \
+ --yesno $"\nSet a static address for the wifi adapter?\n\nIf you select 'no' then wired ethernet will be used." 10 60
+ sel=$?
+ case $sel in
+ 0) static_wifi_address=1
+ write_config_param "NETWORK_IS_STATIC" "1"
+ ;;
+ esac
+ fi
+
+ if [ ! $static_wifi_address ]; then
+ # wired network
+ remove_wifi_startup_script
+ echo '# This file describes the network interfaces available on your system' > /etc/network/interfaces
+ echo '# and how to activate them. For more information, see interfaces(5).' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The loopback network interface' >> /etc/network/interfaces
+ echo 'auto lo' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The primary network interface' >> /etc/network/interfaces
+ echo 'auto eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet static' >> /etc/network/interfaces
+ echo " address ${NEW_STATIC_IP}" >> /etc/network/interfaces
+ echo ' netmask 255.255.255.0' >> /etc/network/interfaces
+ echo " gateway ${NEW_STATIC_GATEWAY}" >> /etc/network/interfaces
+ echo " dns-nameservers 213.73.91.35 85.214.20.141" >> /etc/network/interfaces
+ echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
+ echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The secondary network interface' >> /etc/network/interfaces
+ echo '#auto eth1' >> /etc/network/interfaces
+ echo '#iface eth1 inet dhcp' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# WiFi Example' >> /etc/network/interfaces
+ echo "#auto $WIFI_INTERFACE" >> /etc/network/interfaces
+ echo "#iface $WIFI_INTERFACE inet dhcp" >> /etc/network/interfaces
+ echo '# wpa-ssid "essid"' >> /etc/network/interfaces
+ echo '# wpa-psk "password"' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# Ethernet/RNDIS gadget (g_ether)' >> /etc/network/interfaces
+ echo '# ... or on host side, usbnet and random hwaddr' >> /etc/network/interfaces
+ echo '# Note on some boards, usb0 is automaticly setup with an init script' >> /etc/network/interfaces
+ echo '#iface usb0 inet static' >> /etc/network/interfaces
+ echo '# address 192.168.7.2' >> /etc/network/interfaces
+ echo '# netmask 255.255.255.0' >> /etc/network/interfaces
+ echo '# network 192.168.7.0' >> /etc/network/interfaces
+ echo '# gateway 192.168.7.1' >> /etc/network/interfaces
+ else
+ # wifi network
+ wifi_settings
+ fi
+
+ clear
+ echo ''
+ echo $'Restarting the network daemon.'
+ echo ''
+ echo $'If you logged in using the previous IP address then you may need to close this terminal and log in again on the new one.'
+
+ function_check pihole_change_ipv4
+ pihole_change_ipv4 ${NEW_STATIC_IP}
+
+ dialog --title $"Static local IP address" \
+ --backtitle $"Freedombone Control Panel" \
+ --yesno $"\nFor the change to take effect your system will now need to reboot. Do this now?" 8 60
+ sel=$?
+ case $sel in
+ 0) reboot;;
+ esac
fi
fi
}
@@ -1711,8 +1495,16 @@ function wifi_settings {
cp $TEMP_WIFI_NETWORKS_FILE $WIFI_NETWORKS_FILE
rm $TEMP_WIFI_NETWORKS_FILE
${PROJECT_NAME}-wifi --networks $WIFI_NETWORKS_FILE
- dialog --title $"Wifi Settings" \
- --msgbox $"Wifi settings were changed" 6 40
+ create_wifi_startup_script
+ if [[ $(wifi_is_running) == "1" ]]; then
+ dialog --title $"Wifi Settings" \
+ --msgbox $"Wifi settings were changed." 6 60
+ else
+ dialog --title $"Wifi Settings" \
+ --msgbox $"Wifi settings were changed. You will need to restart the system with ethernet cable removed for the changes to take effect." 7 60
+ fi
+ else
+ remove_wifi_startup_script
fi
}
@@ -1801,31 +1593,134 @@ function hotspot_settings {
fi
# store any changes
- if ! grep -q "WIFI_HOTSPOT" $CONFIGURATION_FILE; then
- echo "WIFI_HOTSPOT=$WIFI_HOTSPOT" >> $CONFIGURATION_FILE
- else
- sed -i "s|WIFI_HOTSPOT=.*|WIFI_HOTSPOT=$WIFI_HOTSPOT|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "WIFI_SSID" $CONFIGURATION_FILE; then
- echo "WIFI_SSID=$WIFI_SSID" >> $CONFIGURATION_FILE
- else
- sed -i "s|WIFI_SSID=.*|WIFI_SSID=$WIFI_SSID|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "WIFI_TYPE" $CONFIGURATION_FILE; then
- echo "WIFI_TYPE=$WIFI_TYPE" >> $CONFIGURATION_FILE
- else
- sed -i "s|WIFI_TYPE=.*|WIFI_SSID=$WIFI_TYPE|g" $CONFIGURATION_FILE
- fi
- if ! grep -q "WIFI_PASSPHRASE" $CONFIGURATION_FILE; then
- echo "WIFI_PASSPHRASE=$WIFI_PASSPHRASE" >> $CONFIGURATION_FILE
- else
- sed -i "s|WIFI_PASSPHRASE=.*|WIFI_PASSPHRASE=$WIFI_PASSPHRASE|g" $CONFIGURATION_FILE
- fi
+ write_config_param "WIFI_HOTSPOT" "$WIFI_HOTSPOT"
+ write_config_param "WIFI_SSID" "$WIFI_SSID"
+ write_config_param "WIFI_TYPE" "$WIFI_TYPE"
+ write_config_param "WIFI_PASSPHRASE" "$WIFI_PASSPHRASE"
dialog --title $"Wifi Settings" \
--msgbox $"Hotspot settings were changed" 6 40
}
+function reinstall_mariadb {
+ dialog --title $"Reinstall MariaDB" \
+ --backtitle $"Freedombone Control Panel" \
+ --defaultno \
+ --yesno $"\nThis should be a LAST RESORT, if the mysql daemon won't start. You will lose ALL databases and will then need to restore them from backup.\n\nAre you sure that you wish to continue?" 12 60
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+
+ clear
+ database_reinstall
+
+ dialog --title $"Reinstall MariaDB" \
+ --msgbox $"MariaDB has been reinstalled" 6 40
+}
+
+function show_firewall {
+ clear
+ echo $"Firewall Settings"
+ echo ''
+ while read line; do
+ firewall_name=$(echo "$line" | awk -F '=' '{print $1}')
+ firewall_port=$(echo "$line" | awk -F '=' '{print $2}')
+ echo -n -e "$(pad_string ${firewall_name})"
+ echo "${firewall_port}"
+ done < $FIREWALL_CONFIG
+ any_key
+}
+
+function email_extra_domains {
+ email_hostnames=$(cat /etc/exim4/update-exim4.conf.conf | grep "dc_other_hostnames" | awk -F "'" '{print $2}')
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Email Domains" \
+ --backtitle $"Freedombone Control Panel" \
+ --inputbox $"Enter the list of email domains to use, separated by semicolons" 8 60 $email_hostnames 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ emailhostnames=$(<$data)
+ if [ ${#emailhostnames} -gt 2 ]; then
+ if [[ "$email_hostnames" != "$emailhostnames" ]]; then
+ if [[ "$emailhostnames" == *"."* ]]; then
+ if [[ "$emailhostnames" != *" "* ]]; then
+ sed -i "s|dc_other_hostnames=.*|dc_other_hostnames='$emailhostnames'|g" /etc/exim4/update-exim4.conf.conf
+ update-exim4.conf
+ dpkg-reconfigure --frontend noninteractive exim4-config
+ systemctl restart saslauthd
+ dialog --title $"Email Domains" \
+ --backtitle $"Freedombone Control Panel" \
+ --msgbox $"Email domains were changed" 6 50
+ else
+ dialog --title $"Email Domains not set" \
+ --backtitle $"Freedombone Control Panel" \
+ --msgbox $"There should be no spaces in the list" 6 50
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+}
+
+function email_smtp_proxy {
+ MUTTRC_FILE=/home/$ADMIN_USER/.muttrc
+ if [ ! -f $MUTTRC_FILE ]; then
+ return
+ fi
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"SMTP Proxy for $ADMIN_USER" \
+ --form $"You may need to proxy outgoing email via your ISP's mail server. If so enter the details below." 14 75 6 \
+ $"Enable proxy:" 1 1 "$SMTP_PROXY_ENABLE" 1 24 5 5 \
+ $"Protocol (smtp/smtps):" 2 1 "$SMTP_PROXY_PROTOCOL" 2 24 5 5 \
+ $"ISP mail server:" 3 1 "$SMTP_PROXY_SERVER" 3 24 40 10000 \
+ $"Port:" 4 1 "$SMTP_PROXY_PORT" 4 24 5 5 \
+ $"Username:" 5 1 "$SMTP_PROXY_USERNAME" 5 24 40 10000 \
+ $"Password:" 6 1 "$SMTP_PROXY_PASSWORD" 6 24 40 10000 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ SMTP_PROXY_ENABLE=$(cat $data | sed -n 1p)
+ SMTP_PROXY_PROTOCOL=$(cat $data | sed -n 2p)
+ SMTP_PROXY_SERVER=$(cat $data | sed -n 3p)
+ SMTP_PROXY_PORT=$(cat $data | sed -n 4p)
+ SMTP_PROXY_USERNAME=$(cat $data | sed -n 5p)
+ SMTP_PROXY_PASSWORD=$(cat $data | sed -n 6p)
+
+ # change muttrc
+ if [ $SMTP_PROXY_ENABLE != $'no' ]; then
+ if ! grep "set smtp_url" $MUTTRC_FILE; then
+ echo "set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"" >> $MUTTRC_FILE
+ else
+ sed -i "s|set smtp_url=.*|set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"|g" $MUTTRC_FILE
+ fi
+ sed -i 's|#set smtp_url|set smtp_url|g' $MUTTRC_FILE
+ else
+ if grep "set smtp_url" $MUTTRC_FILE; then
+ sed -i 's|set smtp_url|#set smtp_url|g' $MUTTRC_FILE
+ fi
+ fi
+
+ # save settings within the main configuration file
+ write_config_param "SMTP_PROXY_ENABLE" "$SMTP_PROXY_ENABLE"
+ write_config_param "SMTP_PROXY_PROTOCOL" "$SMTP_PROXY_PROTOCOL"
+ write_config_param "SMTP_PROXY_SERVER" "$SMTP_PROXY_SERVER"
+ write_config_param "SMTP_PROXY_PORT" "$SMTP_PROXY_PORT"
+ write_config_param "SMTP_PROXY_USERNAME" "$SMTP_PROXY_USERNAME"
+ write_config_param "SMTP_PROXY_PASSWORD" "$SMTP_PROXY_PASSWORD"
+}
+
function menu_backup_restore {
while true
do
@@ -1833,17 +1728,18 @@ function menu_backup_restore {
trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Control Panel" \
--title $"Backup and Restore" \
- --radiolist $"Choose an operation:" 18 70 11 \
+ --radiolist $"Choose an operation:" 19 70 12 \
1 $"Backup data to USB drive" off \
2 $"Restore GPG key from USB keydrive" off \
3 $"Restore data from USB drive" off \
- 4 $"Configure remote backups" off \
- 5 $"Restore from remote backup" off \
- 6 $"Backup GPG key to USB (master keydrive)" off \
- 7 $"Backup GPG key to USB (fragment keydrive)" off \
- 8 $"Format a USB drive (LUKS encrypted)" off \
- 9 $"Remove backups from a USB drive" off \
- 10 $"Back to main menu" on 2> $data
+ 4 $"Reinstall mariadb" off \
+ 5 $"Configure remote backups" off \
+ 6 $"Restore from remote backup" off \
+ 7 $"Backup GPG key to USB (master keydrive)" off \
+ 8 $"Backup GPG key to USB (fragment keydrive)" off \
+ 9 $"Format a USB drive (LUKS encrypted)" off \
+ 10 $"Remove backups from a USB drive" off \
+ 11 $"Back to main menu" on 2> $data
sel=$?
case $sel in
1) break;;
@@ -1853,13 +1749,14 @@ function menu_backup_restore {
1) backup_data;;
2) restore_gpg_key;;
3) restore_data;;
- 4) configure_remote_backups;;
- 5) restore_data_remote;;
- 6) create_keydrive_master;;
- 7) create_keydrive_fragment;;
- 8) format_drive;;
- 9) remove_backups;;
- 10) break;;
+ 4) reinstall_mariadb;;
+ 5) configure_remote_backups;;
+ 6) restore_data_remote;;
+ 7) create_keydrive_master;;
+ 8) create_keydrive_fragment;;
+ 9) format_drive;;
+ 10) remove_backups;;
+ 11) break;;
esac
done
}
@@ -1870,14 +1767,16 @@ function menu_email {
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Control Panel" \
- --title $"Email Filtering Rules" \
- --radiolist $"Choose an operation:" 13 70 6 \
+ --title $"Email Menu" \
+ --radiolist $"Choose an operation:" 15 70 8 \
1 $"Add a user to a mailing list" off \
2 $"Remove a user from a mailing list" off \
3 $"Add an email rule" off \
4 $"Block/Unblock an email address" off \
5 $"Block/Unblock email with subject text" off \
- 6 $"Back to main menu" on 2> $data
+ 6 $"Outgoing Email Proxy" off \
+ 7 $"Extra email domains" off \
+ 8 $"Back to main menu" on 2> $data
sel=$?
case $sel in
1) break;;
@@ -1889,7 +1788,9 @@ function menu_email {
3) email_rule;;
4) block_unblock_email;;
5) block_unblock_subject;;
- 6) break;;
+ 6) email_smtp_proxy;;
+ 7) email_extra_domains;;
+ 8) break;;
esac
done
}
@@ -1922,55 +1823,6 @@ function menu_users {
done
}
-function menu_hubzilla {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Hubzilla" \
- --radiolist $"Choose an operation:" 13 70 4 \
- 1 $"Set channel directory server" off \
- 2 $"Renew SSL certificate" off \
- 3 $"Back to main menu" on 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- case $(cat $data) in
- 1) hubzilla_channel_directory_server;;
- 2) hubzilla_renew_cert;;
- 3) break;;
- esac
- done
-}
-
-function menu_media {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"Media Menu" \
- --radiolist $"Choose an operation:" 13 70 3 \
- 1 $"Attach a drive containing playable media" off \
- 2 $"Remove a drive containing playable media" off \
- 3 $"Exit" on 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- case $(cat $data) in
- 1) remove-music
- attach-music;;
- 2) remove-music;;
- 3) break;;
- esac
- done
-}
-
function wifi_enable {
disable_wifi='yes'
dialog --title $"Enable Wifi" \
@@ -1987,6 +1839,12 @@ function wifi_enable {
}
function menu_wifi {
+ if [[ "$(wifi_exists)" == "0" ]]; then
+ dialog --title $"Wifi" \
+ --msgbox $"No wifi adaptors were detected" 6 40
+ return
+ fi
+
while true
do
status_str=$'Wifi OFF'
@@ -2023,34 +1881,43 @@ function menu_wifi {
done
}
-function menu_irc {
- if [ ! -d /etc/ngircd ]; then
- dialog --title $"IRC Menu" \
- --msgbox $"No IRC server is installed" 6 70
+function menu_app_settings {
+ detect_installable_apps
+
+ applist=""
+ appnames=()
+ n=1
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} != "0" ]]; then
+ if [[ $(function_exists configure_interactive_${a}) == "1" ]]; then
+ applist="$applist $n $a off"
+ n=$[n+1]
+ appnames+=("$a")
+ fi
+ fi
+ app_index=$[app_index+1]
+ done
+ if [ $n -le 1 ]; then
return
fi
+ backstr=$'Exit'
+ applist="$applist $n $backstr on"
+ appnames+=("Exit")
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"IRC Menu" \
- --radiolist $"Choose an operation:" 14 70 4 \
- 1 $"Set a password for all IRC users" off \
- 2 $"Show current IRC login password" off \
- 3 $"Exit" on 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- case $(cat $data) in
- 1) irc_set_global_password;;
- 2) irc_show_password;;
- 3) break;;
- esac
- done
+ choice=$(dialog --stdout --backtitle $"Freedombone" \
+ --title $"Change Settings for an App" \
+ --radiolist $'Choose:' \
+ 16 40 20 $applist)
+
+ if [ $? -eq 0 ]; then
+ app_index=$[choice-1]
+ chosen_app=${appnames[$app_index]}
+ if [[ $chosen_app != "Exit" ]]; then
+ configure_interactive_${chosen_app}
+ fi
+ fi
}
function menu_top_level {
@@ -2060,29 +1927,27 @@ function menu_top_level {
trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Control Panel" \
--title $"Control Panel" \
- --radiolist $"Choose an operation:" 29 70 22 \
+ --radiolist $"Choose an operation:" 28 70 21 \
1 $"About this system" off \
- 2 $"Backup and Restore" off \
- 3 $"Reset Tripwire" off \
- 4 $"Logging on/off" off \
- 5 $"Ping enable/disable" off \
- 6 $"Manage Users" off \
- 7 $"Email Filtering Rules" off \
- 8 $"Outgoing Email Proxy" off \
- 9 $"Security Settings" off \
- 10 $"Set the main repository (repo mirrors)" off \
- 11 $"Hubzilla" off \
- 12 $"Media menu" off \
- 13 $"IRC menu" off \
- 14 $"Change your blog avatar" off \
- 15 $"Change the name of this system" off \
- 16 $"Set the TLS date/time source" off \
- 17 $"Set a static local IP address" off \
- 18 $"Wifi menu" off \
- 19 $"Check for updates" off \
- 20 $"Power off the system" off \
- 21 $"Restart the system" off \
- 22 $"Exit" on 2> $data
+ 2 $"Passwords" off \
+ 3 $"Backup and Restore" off \
+ 4 $"Show Firewall" off \
+ 5 $"Reset Tripwire" off \
+ 6 $"App Settings" off \
+ 7 $"Add/Remove Apps" off \
+ 8 $"Logging on/off" off \
+ 9 $"Ping enable/disable" off \
+ 10 $"Manage Users" off \
+ 11 $"Email Menu" off \
+ 12 $"Security Settings" off \
+ 13 $"Set the main repository (repo mirrors)" off \
+ 14 $"Change the name of this system" off \
+ 15 $"Set a static local IP address" off \
+ 16 $"Wifi menu" off \
+ 17 $"Check for updates" off \
+ 18 $"Power off the system" off \
+ 19 $"Restart the system" off \
+ 20 $"Exit" on 2> $data
sel=$?
case $sel in
1) exit 1;;
@@ -2090,34 +1955,32 @@ function menu_top_level {
esac
case $(cat $data) in
1) show_about;;
- 2) menu_backup_restore;;
- 3) reset_tripwire;;
- 4) logging_on_off;;
- 5) ping_enable_disable;;
- 6) menu_users;;
- 7) menu_email;;
- 8) smtp_proxy;;
- 9) security_settings;;
- 10) set_main_repo;;
- 11) menu_hubzilla;;
- 12) menu_media;;
- 13) menu_irc;;
- 14) change_blog_avatar;;
- 15) change_system_name;;
- 16) set_tls_time_source;;
- 17) set_static_IP;;
- 18) menu_wifi;;
- 19) check_for_updates;;
- 20) shut_down_system;;
- 21) restart_system;;
- 22) break;;
+ 2) view_or_change_passwords;;
+ 3) menu_backup_restore;;
+ 4) show_firewall;;
+ 5) reset_tripwire;;
+ 6) menu_app_settings;;
+ 7) ${PROJECT_NAME}-addremove;;
+ 8) logging_on_off;;
+ 9) ping_enable_disable;;
+ 10) menu_users;;
+ 11) menu_email;;
+ 12) security_settings;;
+ 13) set_main_repo;;
+ 14) change_system_name;;
+ 15) set_static_IP;;
+ 16) menu_wifi;;
+ 17) check_for_updates;;
+ 18) shut_down_system;;
+ 19) restart_system;;
+ 20) break;;
esac
done
}
if [[ $USER != 'root' ]]; then
# show the user version of the control panel
- freedombone-controlpanel-user
+ ${PROJECT_NAME}-controlpanel-user
exit 0
fi
@@ -2126,7 +1989,7 @@ if [ ! -f $COMPLETION_FILE ]; then
exit 1
fi
-ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ADMIN_USER=$(get_completion_param "Admin user")
read_repo_servers
menu_top_level
clear
diff --git a/src/freedombone-controlpanel-user b/src/freedombone-controlpanel-user
index 5b2c5db9..7efdc93e 100755
--- a/src/freedombone-controlpanel-user
+++ b/src/freedombone-controlpanel-user
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2016 Bob Mottram
+# Copyright (C) 2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -35,916 +35,805 @@ export TEXTDOMAINDIR="/usr/share/locale"
MY_EMAIL_ADDRESS=$USER@$HOSTNAME
GPG_ID=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "pub" | head -n 1 | awk -F '/' '{print $2}' | awk -F ' ' '{print $1}')
+GPG_BACKUP_ID=$(gpg --fingerprint "(backup key)" | grep -i "pub" | head -n 1 | awk -F '/' '{print $2}' | awk -F ' ' '{print $1}')
-SYNCTHING_CONFIG_FILE=~/.syncthingids
-SYNCTHING_ID=$(cat ~/.syncthing-server-id)
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
function any_key {
- echo ' '
- read -n1 -r -p $"Press any key to continue..." key
+ echo ' '
+ read -n1 -r -p $"Press any key to continue..." key
}
function remove_user_from_mailing_list {
- USER_MAILING_LISTS=$(cat "/home/$USER/.procmailrc" | grep '\[' | grep '\]' | awk -F '\[' '{print $2}' | awk -F '\\' '{print $1}')
+ USER_MAILING_LISTS=$(cat "/home/$USER/.procmailrc" | grep '\[' | grep '\]' | awk -F '\[' '{print $2}' | awk -F '\\' '{print $1}')
- i=0
- W=()
- list_name=()
- while read -r listname; do
- i=$((i+1))
- W+=($i "$listname")
- list_name+=("$listname")
- echo $listname
- done <<< "$USER_MAILING_LISTS"
+ i=0
+ W=()
+ list_name=()
+ while read -r listname; do
+ i=$((i+1))
+ W+=($i "$listname")
+ list_name+=("$listname")
+ echo $listname
+ done <<< "$USER_MAILING_LISTS"
- i=$((i+1))
- W+=($i $"Exit back to user mainenance")
+ i=$((i+1))
+ W+=($i $"Exit back to user mainenance")
- list_selected=$(dialog --default-item "$i" --backtitle $"Freedombone User Control Panel" --title $"Remove yourself from a mailing list" --menu $"Select one of the following:" 24 50 17 "${W[@]}" 3>&2 2>&1 1>&3)
+ list_selected=$(dialog --default-item "$i" --backtitle $"Freedombone User Control Panel" --title $"Remove yourself from a mailing list" --menu $"Select one of the following:" 24 50 17 "${W[@]}" 3>&2 2>&1 1>&3)
- if [ $? -eq 0 ]; then # Exit with OK
- if [ ${list_selected} -ne ${i} ]; then
- remove_list_name="${list_name[$((list_selected-1))]}"
+ if [ $? -eq 0 ]; then # Exit with OK
+ if [ ${list_selected} -ne ${i} ]; then
+ remove_list_name="${list_name[$((list_selected-1))]}"
- # find the line number where the list is defined
- line_number=0
- i=0
- while read -r line
- do
- if [[ "$line" == *"\[${remove_list_name}\\]"* ]]; then
- line_number=${i}
- fi
- i=$((i+1))
- done < "/home/$USER/.procmailrc"
+ # find the line number where the list is defined
+ line_number=0
+ i=0
+ while read -r line
+ do
+ if [[ "$line" == *"\[${remove_list_name}\\]"* ]]; then
+ line_number=${i}
+ fi
+ i=$((i+1))
+ done < "/home/$USER/.procmailrc"
- if [ ${line_number} -eq 0 ]; then
- # no match was found
- return
- fi
+ if [ ${line_number} -eq 0 ]; then
+ # no match was found
+ return
+ fi
- # recreate the file
- if [ -f /home/${USER}/.procmailrc_new ]; then
- rm /home/${USER}/.procmailrc_new
- fi
- i=0
- clip=0
- while read -r line
- do
- i=$((i+1))
- if [ ${i} -gt $((line_number-1)) ]; then
- if [ ${clip} -eq 0 ]; then
- clip=1
- fi
- if [ ${clip} -eq 1 ]; then
- if [ ${i} -lt $((line_number+2)) ]; then
- continue
- else
- if [ ${#line} -lt 1 ]; then
- clip=2
- continue
- fi
- if [[ "$line" == ":"* || "$line" == "#"* ]]; then
- clip=2
- else
- continue
- fi
- fi
- fi
- fi
+ # recreate the file
+ if [ -f /home/${USER}/.procmailrc_new ]; then
+ rm /home/${USER}/.procmailrc_new
+ fi
+ i=0
+ clip=0
+ while read -r line
+ do
+ i=$((i+1))
+ if [ ${i} -gt $((line_number-1)) ]; then
+ if [ ${clip} -eq 0 ]; then
+ clip=1
+ fi
+ if [ ${clip} -eq 1 ]; then
+ if [ ${i} -lt $((line_number+2)) ]; then
+ continue
+ else
+ if [ ${#line} -lt 1 ]; then
+ clip=2
+ continue
+ fi
+ if [[ "$line" == ":"* || "$line" == "#"* ]]; then
+ clip=2
+ else
+ continue
+ fi
+ fi
+ fi
+ fi
- echo "$line" >> /home/${USER}/.procmailrc_new
+ echo "$line" >> /home/${USER}/.procmailrc_new
- if [[ "$line" == *"\[${remove_list_name}\\]"* ]]; then
- line_number=${i}
- fi
- done < "/home/$USER/.procmailrc"
- cp /home/${USER}/.procmailrc_new /home/${USER}/.procmailrc
- rm /home/${USER}/.procmailrc_new
- chown ${USER}:${USER} /home/${USER}/.procmailrc
- dialog --title $"Remove yourself from mailing list" \
- --msgbox $"You have been removed from ${remove_list_name}" 6 50
- fi
- fi
+ if [[ "$line" == *"\[${remove_list_name}\\]"* ]]; then
+ line_number=${i}
+ fi
+ done < "/home/$USER/.procmailrc"
+ cp /home/${USER}/.procmailrc_new /home/${USER}/.procmailrc
+ rm /home/${USER}/.procmailrc_new
+ chown ${USER}:${USER} /home/${USER}/.procmailrc
+ dialog --title $"Remove yourself from mailing list" \
+ --msgbox $"You have been removed from ${remove_list_name}" 6 50
+ fi
+ fi
}
function add_to_mailing_list {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Subscribe to a mailing list" \
- --form $"You can either enter a subject or an email address\n" 11 68 4 \
- $"List folder name:" 1 1 "" 1 35 26 25 \
- $"Name between [] on subject line:" 2 1 "" 2 35 26 25 \
- $"List email address:" 3 1 "" 3 35 26 25 \
- $"Public:" 4 1 $"yes" 4 35 4 25 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- LIST_NAME=$(cat $data | sed -n 1p)
- LIST_SUBJECT=$(cat $data | sed -n 2p)
- LIST_EMAIL=$(cat $data | sed -n 3p)
- LIST_PUBLIC=$(cat $data | sed -n 4p)
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Subscribe to a mailing list" \
+ --form $"You can either enter a subject or an email address\n" 11 68 4 \
+ $"List folder name:" 1 1 "" 1 35 26 25 \
+ $"Name between [] on subject line:" 2 1 "" 2 35 26 25 \
+ $"List email address:" 3 1 "" 3 35 26 25 \
+ $"Public:" 4 1 $"yes" 4 35 4 25 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ LIST_NAME=$(cat $data | sed -n 1p)
+ LIST_SUBJECT=$(cat $data | sed -n 2p)
+ LIST_EMAIL=$(cat $data | sed -n 3p)
+ LIST_PUBLIC=$(cat $data | sed -n 4p)
- if [ ${#LIST_PUBLIC} -lt 1 ]; then
- LIST_PUBLIC='no'
- fi
- if [[ $LIST_PUBLIC == $'y' || $LIST_PUBLIC == $'Y' || $LIST_PUBLIC == $'true' || $LIST_PUBLIC == $'True' || $LIST_PUBLIC == $'yes' || $LIST_PUBLIC == $'Yes' || $LIST_PUBLIC == $'YES' ]]; then
- LIST_PUBLIC='yes'
- else
- LIST_PUBLIC='no'
- fi
- if [ ${#LIST_NAME} -lt 2 ]; then
- dialog --title $"Add mailing list" \
- --msgbox $"No mailing list name was given" 6 40
- return
- fi
- if [ ${#LIST_SUBJECT} -lt 2 ]; then
- if [ ${#LIST_EMAIL} -lt 2 ]; then
- dialog --title $"Add mailing list" \
- --msgbox $"No mailing list subject or address was given" 6 40
- return
- fi
- fi
- if [ ${#LIST_SUBJECT} -gt 1 ]; then
- ${PROJECT_NAME}-addlist -u $USER -l "$LIST_NAME" \
- -s "$LIST_SUBJECT" --public $LIST_PUBLIC
- else
- if [[ "$LIST_EMAIL" != *"@"* || "$LIST_EMAIL" != *"."* ]]; then
- dialog --title $"Add mailing list" \
- --msgbox $"Unrecognised email address" 6 40
- return
- else
- ${PROJECT_NAME}-addlist -u $USER -l "$LIST_NAME" \
- -e "$LIST_EMAIL" --public $LIST_PUBLIC
- fi
- fi
+ if [ ${#LIST_PUBLIC} -lt 1 ]; then
+ LIST_PUBLIC='no'
+ fi
+ if [[ $LIST_PUBLIC == $'y' || $LIST_PUBLIC == $'Y' || $LIST_PUBLIC == $'true' || $LIST_PUBLIC == $'True' || $LIST_PUBLIC == $'yes' || $LIST_PUBLIC == $'Yes' || $LIST_PUBLIC == $'YES' ]]; then
+ LIST_PUBLIC='yes'
+ else
+ LIST_PUBLIC='no'
+ fi
+ if [ ${#LIST_NAME} -lt 2 ]; then
+ dialog --title $"Add mailing list" \
+ --msgbox $"No mailing list name was given" 6 40
+ return
+ fi
+ if [ ${#LIST_SUBJECT} -lt 2 ]; then
+ if [ ${#LIST_EMAIL} -lt 2 ]; then
+ dialog --title $"Add mailing list" \
+ --msgbox $"No mailing list subject or address was given" 6 40
+ return
+ fi
+ fi
+ if [ ${#LIST_SUBJECT} -gt 1 ]; then
+ ${PROJECT_NAME}-addlist -u $USER -l "$LIST_NAME" \
+ -s "$LIST_SUBJECT" --public $LIST_PUBLIC
+ else
+ if [[ "$LIST_EMAIL" != *"@"* || "$LIST_EMAIL" != *"."* ]]; then
+ dialog --title $"Add mailing list" \
+ --msgbox $"Unrecognised email address" 6 40
+ return
+ else
+ ${PROJECT_NAME}-addlist -u $USER -l "$LIST_NAME" \
+ -e "$LIST_EMAIL" --public $LIST_PUBLIC
+ fi
+ fi
- dialog --title $"Add mailing list" \
- --msgbox $"$LIST_NAME list was added" 6 40
+ dialog --title $"Add mailing list" \
+ --msgbox $"$LIST_NAME list was added" 6 40
}
function email_rule_address {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Create an email rule" \
- --form "\n" 9 65 4 \
- $"When email arrives from address:" 1 1 "" 1 35 24 28 \
- $"Move to folder:" 2 1 "" 2 35 24 28 \
- $"Public:" 3 1 $"no" 3 35 4 25 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- RULE_EMAIL=$(cat $data | sed -n 1p)
- RULE_FOLDER=$(cat $data | sed -n 2p)
- RULE_PUBLIC=$(cat $data | sed -n 3p)
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Create an email rule" \
+ --form "\n" 9 65 4 \
+ $"When email arrives from address:" 1 1 "" 1 35 24 28 \
+ $"Move to folder:" 2 1 "" 2 35 24 28 \
+ $"Public:" 3 1 $"no" 3 35 4 25 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ RULE_EMAIL=$(cat $data | sed -n 1p)
+ RULE_FOLDER=$(cat $data | sed -n 2p)
+ RULE_PUBLIC=$(cat $data | sed -n 3p)
- if [ ${#RULE_PUBLIC} -lt 1 ]; then
- RULE_PUBLIC='no'
- fi
- if [[ $RULE_PUBLIC == $'y' || $RULE_PUBLIC == $'Y' || $RULE_PUBLIC == $'true' || $RULE_PUBLIC == $'True' || $RULE_PUBLIC == $'yes' || $RULE_PUBLIC == $'Yes' || $RULE_PUBLIC == $'YES' ]]; then
- RULE_PUBLIC='yes'
- else
- RULE_PUBLIC='no'
- fi
- if [ ${#RULE_EMAIL} -lt 2 ]; then
- dialog --title $"Create an email rule" \
- --msgbox $"No email address was given" 6 40
- return
- fi
- if [ ${#RULE_FOLDER} -lt 2 ]; then
- dialog --title $"Create an email rule" \
- --msgbox $"No folder name was given" 6 40
- return
- fi
- if [[ "$RULE_EMAIL" != *"@"* || "$RULE_EMAIL" != *"."* ]]; then
- dialog --title $"Create an email rule" \
- --msgbox $"Unrecognised email address" 6 40
- return
- fi
+ if [ ${#RULE_PUBLIC} -lt 1 ]; then
+ RULE_PUBLIC='no'
+ fi
+ if [[ $RULE_PUBLIC == $'y' || $RULE_PUBLIC == $'Y' || $RULE_PUBLIC == $'true' || $RULE_PUBLIC == $'True' || $RULE_PUBLIC == $'yes' || $RULE_PUBLIC == $'Yes' || $RULE_PUBLIC == $'YES' ]]; then
+ RULE_PUBLIC='yes'
+ else
+ RULE_PUBLIC='no'
+ fi
+ if [ ${#RULE_EMAIL} -lt 2 ]; then
+ dialog --title $"Create an email rule" \
+ --msgbox $"No email address was given" 6 40
+ return
+ fi
+ if [ ${#RULE_FOLDER} -lt 2 ]; then
+ dialog --title $"Create an email rule" \
+ --msgbox $"No folder name was given" 6 40
+ return
+ fi
+ if [[ "$RULE_EMAIL" != *"@"* || "$RULE_EMAIL" != *"."* ]]; then
+ dialog --title $"Create an email rule" \
+ --msgbox $"Unrecognised email address" 6 40
+ return
+ fi
- ${PROJECT_NAME}-addemail -u $USER -e "$RULE_EMAIL" \
- -g "$RULE_FOLDER" --public $RULE_PUBLIC
- dialog --title $"Create an email rule" \
- --msgbox $"Email rule for $RULE_EMAIL was added" 6 40
+ ${PROJECT_NAME}-addemail -u $USER -e "$RULE_EMAIL" \
+ -g "$RULE_FOLDER" --public $RULE_PUBLIC
+ dialog --title $"Create an email rule" \
+ --msgbox $"Email rule for $RULE_EMAIL was added" 6 40
}
function gpg_set_trust {
- TRUST_ADDRESS=$1
- fpr=$(gpg --with-colons --fingerprint "$TRUST_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}')
- if [ ${#fpr} -gt 2 ]; then
+ TRUST_ADDRESS=$1
+ fpr=$(gpg --with-colons --fingerprint "$TRUST_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}')
+ if [ ${#fpr} -gt 2 ]; then
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Trust a PGP/GPG key or website domain" \
- --radiolist $"Set the trust level for $TRUST_ADDRESS:" 18 70 10 \
- 1 $"I don't know or won't say" off \
- 2 $"I do NOT trust" off \
- 3 $"I trust marginally" on \
- 4 $"I trust fully" off \
- 5 $"I trust ultimately" off 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- TRUST_LEVEL=$(cat $data)
- if [ ${TRUST_LEVEL} -ge 1 ] ; then
- if [ ${TRUST_LEVEL} -le 5 ] ; then
- echo -e "trust\n${TRUST_LEVEL}\ny\nsave\n" | gpg --command-fd 0 --edit-key $fpr
- if [ "$?" = "0" ]; then
- gpg --update-trustdb
- dialog --title $"Trust a PGP/GPG key or website domain" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}" 6 50
- fi
- fi
- fi
- fi
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Trust a PGP/GPG key or website domain" \
+ --radiolist $"Set the trust level for $TRUST_ADDRESS:" 18 70 10 \
+ 1 $"I don't know or won't say" off \
+ 2 $"I do NOT trust" off \
+ 3 $"I trust marginally" on \
+ 4 $"I trust fully" off \
+ 5 $"I trust ultimately" off 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ TRUST_LEVEL=$(cat $data)
+ if [ ${TRUST_LEVEL} -ge 1 ] ; then
+ if [ ${TRUST_LEVEL} -le 5 ] ; then
+ echo -e "trust\n${TRUST_LEVEL}\ny\nsave\n" | gpg --command-fd 0 --edit-key $fpr
+ if [ "$?" = "0" ]; then
+ gpg --update-trustdb
+ dialog --title $"Trust a PGP/GPG key or website domain" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}" 6 50
+ fi
+ fi
+ fi
+ fi
}
function email_rule_subject {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Create an email rule" \
- --form "\n" 9 75 4 \
- $"When email arrives with subject containing:" 1 1 "" 1 45 24 28 \
- $"Move to folder:" 2 1 "" 2 45 24 28 \
- $"Public:" 3 1 $"no" 3 45 4 25 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- RULE_SUBJECT=$(cat $data | sed -n 1p)
- RULE_FOLDER=$(cat $data | sed -n 2p)
- RULE_PUBLIC=$(cat $data | sed -n 3p)
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Create an email rule" \
+ --form "\n" 9 75 4 \
+ $"When email arrives with subject containing:" 1 1 "" 1 45 24 28 \
+ $"Move to folder:" 2 1 "" 2 45 24 28 \
+ $"Public:" 3 1 $"no" 3 45 4 25 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ RULE_SUBJECT=$(cat $data | sed -n 1p)
+ RULE_FOLDER=$(cat $data | sed -n 2p)
+ RULE_PUBLIC=$(cat $data | sed -n 3p)
- if [ ${#RULE_PUBLIC} -lt 1 ]; then
- RULE_PUBLIC='no'
- fi
- if [[ $RULE_PUBLIC == $'y' || $RULE_PUBLIC == $'Y' || $RULE_PUBLIC == $'true' || $RULE_PUBLIC == $'True' || $RULE_PUBLIC == $'yes' || $RULE_PUBLIC == $'Yes' || $RULE_PUBLIC == $'YES' ]]; then
- RULE_PUBLIC='yes'
- else
- RULE_PUBLIC='no'
- fi
- if [ ${#RULE_SUBJECT} -lt 2 ]; then
- dialog --title $"Create an email rule" \
- --msgbox $"No subject text was given" 6 40
- return
- fi
- if [ ${#RULE_FOLDER} -lt 2 ]; then
- dialog --title $"Create an email rule" \
- --msgbox $"No folder name was given" 6 40
- return
- fi
+ if [ ${#RULE_PUBLIC} -lt 1 ]; then
+ RULE_PUBLIC='no'
+ fi
+ if [[ $RULE_PUBLIC == $'y' || $RULE_PUBLIC == $'Y' || $RULE_PUBLIC == $'true' || $RULE_PUBLIC == $'True' || $RULE_PUBLIC == $'yes' || $RULE_PUBLIC == $'Yes' || $RULE_PUBLIC == $'YES' ]]; then
+ RULE_PUBLIC='yes'
+ else
+ RULE_PUBLIC='no'
+ fi
+ if [ ${#RULE_SUBJECT} -lt 2 ]; then
+ dialog --title $"Create an email rule" \
+ --msgbox $"No subject text was given" 6 40
+ return
+ fi
+ if [ ${#RULE_FOLDER} -lt 2 ]; then
+ dialog --title $"Create an email rule" \
+ --msgbox $"No folder name was given" 6 40
+ return
+ fi
- ${PROJECT_NAME}-addemail -u $USER -s "$RULE_SUBJECT" \
- -g "$RULE_FOLDER" --public $RULE_PUBLIC
- dialog --title $"Create an email rule" \
- --msgbox $"Email rule for subject '$RULE_SUBJECT' was added" 6 40
+ ${PROJECT_NAME}-addemail -u $USER -s "$RULE_SUBJECT" \
+ -g "$RULE_FOLDER" --public $RULE_PUBLIC
+ dialog --title $"Create an email rule" \
+ --msgbox $"Email rule for subject '$RULE_SUBJECT' was added" 6 40
}
function block_unblock_email {
- blockstr=$"Block or unblock emails from a given address"
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title "$blockstr" \
- --form "\n" 8 65 3 \
- $"When email arrives from address:" 1 1 "" 1 35 24 100 \
- $"Block it:" 2 1 "yes" 2 35 4 4 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- BLOCK_EMAIL=$(cat $data | sed -n 1p)
- BLOCK=$(cat $data | sed -n 2p)
- if [ ${#BLOCK_EMAIL} -lt 2 ]; then
- dialog --title "$blockstr" \
- --msgbox $"No email address was given" 6 40
- return
- fi
- if [[ "$BLOCK_EMAIL" != *"@"* || "$BLOCK_EMAIL" != *"."* ]]; then
- dialog --title "$blockstr" \
- --msgbox $"Unrecognised email address" 6 40
- return
- fi
- if [[ $BLOCK == "y"* || $BLOCK == "Y"* ]]; then
- ${PROJECT_NAME}-ignore -u $USER -e "$BLOCK_EMAIL"
- dialog --title $"Block an email" \
- --msgbox "Email from $BLOCK_EMAIL is now blocked" 6 75
- else
- ${PROJECT_NAME}-unignore -u $USER -e "$BLOCK_EMAIL"
- dialog --title $"Unblock an email" \
- --msgbox "Email from $BLOCK_EMAIL is now unblocked" 6 75
- fi
+ blockstr=$"Block or unblock emails from a given address"
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title "$blockstr" \
+ --form "\n" 8 65 3 \
+ $"When email arrives from address:" 1 1 "" 1 35 24 100 \
+ $"Block it:" 2 1 "yes" 2 35 4 4 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ BLOCK_EMAIL=$(cat $data | sed -n 1p)
+ BLOCK=$(cat $data | sed -n 2p)
+ if [ ${#BLOCK_EMAIL} -lt 2 ]; then
+ dialog --title "$blockstr" \
+ --msgbox $"No email address was given" 6 40
+ return
+ fi
+ if [[ "$BLOCK_EMAIL" != *"@"* || "$BLOCK_EMAIL" != *"."* ]]; then
+ dialog --title "$blockstr" \
+ --msgbox $"Unrecognised email address" 6 40
+ return
+ fi
+ if [[ $BLOCK == "y"* || $BLOCK == "Y"* ]]; then
+ ${PROJECT_NAME}-ignore -u $USER -e "$BLOCK_EMAIL"
+ dialog --title $"Block an email" \
+ --msgbox "Email from $BLOCK_EMAIL is now blocked" 6 75
+ else
+ ${PROJECT_NAME}-unignore -u $USER -e "$BLOCK_EMAIL"
+ dialog --title $"Unblock an email" \
+ --msgbox "Email from $BLOCK_EMAIL is now unblocked" 6 75
+ fi
}
function block_unblock_subject {
- blockstr=$"Block or unblock emails with text in the subject line"
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title "$blockstr" \
- --form "\n" 8 70 3 \
- $"When email arrives with subject text:" 1 1 "" 1 40 24 28 \
- $"Block it:" 2 1 "yes" 2 40 4 4 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- BLOCK_SUBJECT=$(cat $data | sed -n 1p)
- BLOCK=$(cat $data | sed -n 2p)
- if [ ${#BLOCK_SUBJECT} -lt 2 ]; then
- dialog --title "$blockstr" \
- --msgbox $"No subject was given" 6 40
- return
- fi
- if [[ $BLOCK == "y"* || $BLOCK == "Y"* ]]; then
- ${PROJECT_NAME}-ignore -u $USER -t "$BLOCK_SUBJECT"
- dialog --title $"Block an email" \
- --msgbox $"Email with subject $BLOCK_SUBJECT is now blocked" 6 40
- else
- ${PROJECT_NAME}-unignore -u $USER -t "$BLOCK_SUBJECT"
- dialog --title $"Unblock an email" \
- --msgbox $"Email with subject $BLOCK_SUBJECT is now unblocked" 6 40
- fi
+ blockstr=$"Block or unblock emails with text in the subject line"
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title "$blockstr" \
+ --form "\n" 8 70 3 \
+ $"When email arrives with subject text:" 1 1 "" 1 40 24 28 \
+ $"Block it:" 2 1 "yes" 2 40 4 4 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ BLOCK_SUBJECT=$(cat $data | sed -n 1p)
+ BLOCK=$(cat $data | sed -n 2p)
+ if [ ${#BLOCK_SUBJECT} -lt 2 ]; then
+ dialog --title "$blockstr" \
+ --msgbox $"No subject was given" 6 40
+ return
+ fi
+ if [[ $BLOCK == "y"* || $BLOCK == "Y"* ]]; then
+ ${PROJECT_NAME}-ignore -u $USER -t "$BLOCK_SUBJECT"
+ dialog --title $"Block an email" \
+ --msgbox $"Email with subject $BLOCK_SUBJECT is now blocked" 6 40
+ else
+ ${PROJECT_NAME}-unignore -u $USER -t "$BLOCK_SUBJECT"
+ dialog --title $"Unblock an email" \
+ --msgbox $"Email with subject $BLOCK_SUBJECT is now unblocked" 6 40
+ fi
}
function show_gpg_key {
- GPG_FINGERPRINT=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "key fingerprint" | head -n 1 | awk -F '= ' '{print $2}')
- GPG_DATE=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "pub" | head -n 1 | awk -F '/' '{print $2}' | awk -F ' ' '{print $2}')
- dialog --title $"My PGP/GPG Key" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"Email Address: $MY_EMAIL_ADDRESS\n\nKey ID: $GPG_ID\n\nFingerprint: $GPG_FINGERPRINT\n\nCreated: $GPG_DATE" 12 70
+ GPG_FINGERPRINT=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "key fingerprint" | head -n 1 | awk -F '= ' '{print $2}')
+ GPG_DATE=$(gpg --fingerprint $MY_EMAIL_ADDRESS | grep -i "pub" | head -n 1 | awk -F '/' '{print $2}' | awk -F ' ' '{print $2}')
+ dialog --title $"My PGP/GPG Key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"Email Address: $MY_EMAIL_ADDRESS\n\nKey ID: $GPG_ID\n\nFingerprint: $GPG_FINGERPRINT\n\nCreated: $GPG_DATE" 12 70
+}
+
+function show_full_gpg_key {
+ clear
+ echo ''
+ echo ''
+ echo ''
+ gpg --armor --export $GPG_ID
+ gpg --armor --export-secret-key $GPG_ID
+ any_key
}
function publish_gpg_key {
- gpg --send-key $GPG_ID
- dialog --title $"Publish your PGP/GPG key" \
- --msgbox $"Your key has now been published" 6 40
+ gpg --send-key $GPG_ID
+ if [ $GPG_BACKUP_ID ]; then
+ gpg --send-key $GPG_BACKUP_ID
+ fi
+ dialog --title $"Publish your PGP/GPG key" \
+ --msgbox $"Your key has now been published" 6 40
}
function refresh_gpg_keys {
- gpg --refresh-keys
- dialog --title $"Refresh PGP/GPG keys" \
- --msgbox $"Your keys have been refreshed" 6 40
+ gpg --refresh-keys
+ dialog --title $"Refresh PGP/GPG keys" \
+ --msgbox $"Your keys have been refreshed" 6 40
}
function add_gpg_key {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Add someone's PGP/GPG key" \
- --backtitle $"Freedombone User Control Panel" \
- --inputbox $"Enter their email address or Key ID below" 8 60 2>$data
- sel=$?
- case $sel in
- 0)
- ADD_EMAIL_ADDRESS=$(<$data)
- if [ ${#ADD_EMAIL_ADDRESS} -gt 2 ]; then
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Add someone's PGP/GPG key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --inputbox $"Enter their email address or Key ID below" 8 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ ADD_EMAIL_ADDRESS=$(<$data)
+ if [ ${#ADD_EMAIL_ADDRESS} -gt 2 ]; then
- address_is_valid=
+ address_is_valid=
- if [[ $ADD_EMAIL_ADDRESS == *"@"* && $ADD_EMAIL_ADDRESS == *"."* ]]; then
- address_is_valid=1
- else
- if [[ $ADD_EMAIL_ADDRESS == "0x"* ]]; then
- address_is_valid=1
- fi
- fi
+ if [[ $ADD_EMAIL_ADDRESS == *"@"* && $ADD_EMAIL_ADDRESS == *"."* ]]; then
+ address_is_valid=1
+ else
+ if [[ $ADD_EMAIL_ADDRESS == "0x"* ]]; then
+ address_is_valid=1
+ fi
+ fi
- if [ $address_is_valid ]; then
- clear
- gpg --search-keys "$ADD_EMAIL_ADDRESS"
- gpg_set_trust "$ADD_EMAIL_ADDRESS"
- else
- dialog --title $"Unrecognised email address" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"This doesn't look like an email address or key ID" 6 50
- fi
- fi
- ;;
- esac
+ if [ $address_is_valid ]; then
+ clear
+ gpg --search-keys "$ADD_EMAIL_ADDRESS"
+ gpg_set_trust "$ADD_EMAIL_ADDRESS"
+ else
+ dialog --title $"Unrecognised email address" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"This doesn't look like an email address or key ID" 6 50
+ fi
+ fi
+ ;;
+ esac
}
function remove_gpg_key {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Remove someone's PGP/GPG key" \
- --backtitle $"Freedombone User Control Panel" \
- --inputbox $"Enter their email address below" 8 60 2>$data
- sel=$?
- case $sel in
- 0)
- REMOVE_EMAIL_ADDRESS=$(<$data)
- if [ ${#REMOVE_EMAIL_ADDRESS} -gt 2 ]; then
- if [[ $REMOVE_EMAIL_ADDRESS == *"@"* && $REMOVE_EMAIL_ADDRESS == *"."* ]]; then
- if [[ $REMOVE_EMAIL_ADDRESS != $MY_EMAIL_ADDRESS ]]; then
- clear
- gpg --delete-key $REMOVE_EMAIL_ADDRESS
- else
- dialog --title $"Remove someone's PGP/GPG key" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"It's not a good idea to remove your own encryption key" 6 65
- fi
- else
- dialog --title $"Unrecognised email address" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"This doesn't look like an email address" 6 50
- fi
- fi
- ;;
- esac
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Remove someone's PGP/GPG key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --inputbox $"Enter their email address below" 8 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ REMOVE_EMAIL_ADDRESS=$(<$data)
+ if [ ${#REMOVE_EMAIL_ADDRESS} -gt 2 ]; then
+ if [[ $REMOVE_EMAIL_ADDRESS == *"@"* && $REMOVE_EMAIL_ADDRESS == *"."* ]]; then
+ if [[ $REMOVE_EMAIL_ADDRESS != $MY_EMAIL_ADDRESS ]]; then
+ clear
+ gpg --delete-key $REMOVE_EMAIL_ADDRESS
+ else
+ dialog --title $"Remove someone's PGP/GPG key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"It's not a good idea to remove your own encryption key" 6 65
+ fi
+ else
+ dialog --title $"Unrecognised email address" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"This doesn't look like an email address" 6 50
+ fi
+ fi
+ ;;
+ esac
}
function add_ssh_key {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Add an ssh key for logging in" \
- --backtitle $"Freedombone User Control Panel" \
- --inputbox $"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." 15 60 2>$data
- sel=$?
- case $sel in
- 0)
- SSH_PUBLIC_KEY=$(<$data)
- if [ ${#SSH_PUBLIC_KEY} -gt 20 ]; then
- if [[ "$SSH_PUBLIC_KEY" == "ssh-"* ]]; then
- if [ ! -d /home/$USER/.ssh ]; then
- mkdir /home/$USER/.ssh
- fi
- if [ ! -f /home/$USER/.ssh/authorized_keys ]; then
- touch /home/$USER/.ssh/authorized_keys
- fi
- if ! grep -q "$SSH_PUBLIC_KEY" /home/$USER/.ssh/authorized_keys; then
- echo "$SSH_PUBLIC_KEY" >> /home/$USER/.ssh/authorized_keys
- dialog --title $"New ssh key added" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"Your ssh key has now been added" 6 50
- else
- dialog --title $"ssh key already added" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"That ssh key has already been added" 6 50
- fi
- else
- dialog --title $"Unrecognised ssh public key" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"This doesn't look like an ssh key" 6 50
- fi
- fi
- ;;
- esac
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Add an ssh key for logging in" \
+ --backtitle $"Freedombone User Control Panel" \
+ --inputbox $"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." 15 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ SSH_PUBLIC_KEY=$(<$data)
+ if [ ${#SSH_PUBLIC_KEY} -gt 20 ]; then
+ if [[ "$SSH_PUBLIC_KEY" == "ssh-"* ]]; then
+ if [ ! -d /home/$USER/.ssh ]; then
+ mkdir /home/$USER/.ssh
+ fi
+ if [ ! -f /home/$USER/.ssh/authorized_keys ]; then
+ touch /home/$USER/.ssh/authorized_keys
+ fi
+ if ! grep -q "$SSH_PUBLIC_KEY" /home/$USER/.ssh/authorized_keys; then
+ echo "$SSH_PUBLIC_KEY" >> /home/$USER/.ssh/authorized_keys
+ dialog --title $"New ssh key added" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"Your ssh key has now been added" 6 50
+ else
+ dialog --title $"ssh key already added" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"That ssh key has already been added" 6 50
+ fi
+ else
+ dialog --title $"Unrecognised ssh public key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"This doesn't look like an ssh key" 6 50
+ fi
+ fi
+ ;;
+ esac
}
function remove_ssh_key {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Remove an ssh key for logging in" \
- --backtitle $"Freedombone User Control Panel" \
- --inputbox $"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." 15 60 2>$data
- sel=$?
- case $sel in
- 0)
- SSH_PUBLIC_KEY=$(<$data)
- if [ ${#SSH_PUBLIC_KEY} -gt 5 ]; then
- if [ -f /home/$USER/.ssh/authorized_keys ]; then
- sed -i "s|.*${SSH_PUBLIC_KEY}.*||g" /home/$USER/.ssh/authorized_keys
- dialog --title $"Remove an ssh public key" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"The ssh key has been removed" 6 50
- fi
- fi
- ;;
- esac
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Remove an ssh key for logging in" \
+ --backtitle $"Freedombone User Control Panel" \
+ --inputbox $"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." 15 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ SSH_PUBLIC_KEY=$(<$data)
+ if [ ${#SSH_PUBLIC_KEY} -gt 5 ]; then
+ if [ -f /home/$USER/.ssh/authorized_keys ]; then
+ sed -i "s|.*${SSH_PUBLIC_KEY}.*||g" /home/$USER/.ssh/authorized_keys
+ dialog --title $"Remove an ssh public key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"The ssh key has been removed" 6 50
+ fi
+ fi
+ ;;
+ esac
}
function smtp_proxy {
- MUTTRC_FILE=/home/$USER/.muttrc
- if [ ! -f $MUTTRC_FILE ]; then
- return
- fi
- SMTP_PROXY_ENABLE=$'no'
- SMTP_PROXY_PROTOCOL='smtps'
- SMTP_PROXY_SERVER='mail.myispdomain'
- SMTP_PROXY_PORT=465
- SMTP_PROXY_USERNAME=''
- SMTP_PROXY_PASSWORD=''
+ MUTTRC_FILE=/home/$USER/.muttrc
+ if [ ! -f $MUTTRC_FILE ]; then
+ return
+ fi
+ SMTP_PROXY_ENABLE=$'no'
+ SMTP_PROXY_PROTOCOL='smtps'
+ SMTP_PROXY_SERVER='mail.myispdomain'
+ SMTP_PROXY_PORT=465
+ SMTP_PROXY_USERNAME=''
+ SMTP_PROXY_PASSWORD=''
- if grep -q "set smtp_url" $MUTTRC_FILE; then
- if grep -q "#set smtp_url" $MUTTRC_FILE; then
- SMTP_PROXY_ENABLE=$'no'
- else
- SMTP_PROXY_ENABLE=$'yes'
- fi
- SMTP_PROXY_PROTOCOL=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F ':' '{print $1}')
- SMTP_PROXY_SERVER=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk -F ':' '{print $2}' | awk -F '@' '{print $2}')
- SMTP_PROXY_PORT=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')
- SMTP_PROXY_USERNAME=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk -F ':' '{print $1}')
- SMTP_PROXY_PASSWORD=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk -F ':' '{print $2}' | awk -F '@' '{print $1}')
- fi
+ if grep -q "set smtp_url" $MUTTRC_FILE; then
+ if grep -q "#set smtp_url" $MUTTRC_FILE; then
+ SMTP_PROXY_ENABLE=$'no'
+ else
+ SMTP_PROXY_ENABLE=$'yes'
+ fi
+ SMTP_PROXY_PROTOCOL=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F ':' '{print $1}')
+ SMTP_PROXY_SERVER=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk -F ':' '{print $2}' | awk -F '@' '{print $2}')
+ SMTP_PROXY_PORT=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')
+ SMTP_PROXY_USERNAME=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk -F ':' '{print $1}')
+ SMTP_PROXY_PASSWORD=$(cat $MUTTRC_FILE | grep "set smtp_url" | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk -F ':' '{print $2}' | awk -F '@' '{print $1}')
+ fi
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Control Panel" \
- --title $"SMTP Proxy for $USER" \
- --form $"You may need to proxy outgoing email via your ISP's mail server. If so enter the details below." 14 75 6 \
- $"Enable proxy:" 1 1 "$SMTP_PROXY_ENABLE" 1 24 5 5 \
- $"Protocol (smtp/smtps):" 2 1 "$SMTP_PROXY_PROTOCOL" 2 24 5 5 \
- $"ISP mail server:" 3 1 "$SMTP_PROXY_SERVER" 3 24 40 10000 \
- $"Port:" 4 1 "$SMTP_PROXY_PORT" 4 24 5 5 \
- $"Username:" 5 1 "$SMTP_PROXY_USERNAME" 5 24 40 10000 \
- $"Password:" 6 1 "$SMTP_PROXY_PASSWORD" 6 24 40 10000 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- SMTP_PROXY_ENABLE=$(cat $data | sed -n 1p)
- SMTP_PROXY_PROTOCOL=$(cat $data | sed -n 2p)
- SMTP_PROXY_SERVER=$(cat $data | sed -n 3p)
- SMTP_PROXY_PORT=$(cat $data | sed -n 4p)
- SMTP_PROXY_USERNAME=$(cat $data | sed -n 5p)
- SMTP_PROXY_PASSWORD=$(cat $data | sed -n 6p)
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"SMTP Proxy for $USER" \
+ --form $"You may need to proxy outgoing email via your ISP's mail server. If so enter the details below." 14 75 6 \
+ $"Enable proxy:" 1 1 "$SMTP_PROXY_ENABLE" 1 24 5 5 \
+ $"Protocol (smtp/smtps):" 2 1 "$SMTP_PROXY_PROTOCOL" 2 24 5 5 \
+ $"ISP mail server:" 3 1 "$SMTP_PROXY_SERVER" 3 24 40 10000 \
+ $"Port:" 4 1 "$SMTP_PROXY_PORT" 4 24 5 5 \
+ $"Username:" 5 1 "$SMTP_PROXY_USERNAME" 5 24 40 10000 \
+ $"Password:" 6 1 "$SMTP_PROXY_PASSWORD" 6 24 40 10000 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ SMTP_PROXY_ENABLE=$(cat $data | sed -n 1p)
+ SMTP_PROXY_PROTOCOL=$(cat $data | sed -n 2p)
+ SMTP_PROXY_SERVER=$(cat $data | sed -n 3p)
+ SMTP_PROXY_PORT=$(cat $data | sed -n 4p)
+ SMTP_PROXY_USERNAME=$(cat $data | sed -n 5p)
+ SMTP_PROXY_PASSWORD=$(cat $data | sed -n 6p)
- # change muttrc
- if [ $SMTP_PROXY_ENABLE != $'no' ]; then
- if ! grep -q "set smtp_url" $MUTTRC_FILE; then
- echo "set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"" >> $MUTTRC_FILE
- else
- sed -i "s|set smtp_url=.*|set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"|g" $MUTTRC_FILE
- fi
- sed -i 's|#set smtp_url|set smtp_url|g' $MUTTRC_FILE
- else
- if grep "set smtp_url" $MUTTRC_FILE; then
- sed -i 's|set smtp_url|#set smtp_url|g' $MUTTRC_FILE
- fi
- fi
-}
-
-function syncthing_create_ids_file {
- if [ ! -f ~/.syncthing-server-id ]; then
- return
- fi
-
- SYNCTHING_ID=$(cat ~/.syncthing-server-id)
- if [ ! -f $SYNCTHING_CONFIG_FILE ]; then
- echo $'# Your syncthing configuration file' > $SYNCTHING_CONFIG_FILE
- echo '#' >> $SYNCTHING_CONFIG_FILE
- echo $"# The ${PROJECT_NAME} syncthing ID is: $SYNCTHING_ID" >> $SYNCTHING_CONFIG_FILE
- echo '#' >> $SYNCTHING_CONFIG_FILE
- echo '# Paste the IDs of your devices below' >> $SYNCTHING_CONFIG_FILE
- echo '#' >> $SYNCTHING_CONFIG_FILE
- fi
-}
-
-function syncthing_manual_edit {
- if [ ! -f ~/.syncthing-server-id ]; then
- return
- fi
- syncthing_create_ids_file
- editor $SYNCTHING_CONFIG_FILE
-
- # force an update of the configuration
- touch ~/.syncthing-update
-}
-
-function syncthing_show_id {
- if [ ! -f ~/.syncthing-server-id ]; then
- return
- fi
-
- SYNCTHING_ID=$(cat ~/.syncthing-server-id)
- dialog --title $"Device ID for ${PROJECT_NAME}" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"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" 12 78
-}
-
-function syncthing_add_id {
- if [ ! -f ~/.syncthing-server-id ]; then
- return
- fi
-
- syncthing_create_ids_file
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Add a Syncthing device ID" \
- --form $"Paste the device ID for your laptop/desktop/netbook/phone/tablet below" 9 80 2 \
- $"Device ID:" 1 1 "" 1 26 80 80 \
- $"Description (optional):" 2 1 "" 2 26 80 80 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- SYNCTHING_DEVICE_ID=$(cat $data | sed -n 1p)
- SYNCTHING_DESCRIPTION=$(cat $data | sed -n 2p)
-
- if [ ${#SYNCTHING_DEVICE_ID} -lt 10 ]; then
- return
- fi
-
- if [[ $SYNCTHING_DEVICE_ID == *"#"* || $SYNCTHING_DEVICE_ID == *"*"* || $SYNCTHING_DEVICE_ID == *'/'* || $SYNCTHING_DEVICE_ID != *"-"* ]]; then
- dialog --title $"Add a Syncthing device ID" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"That doesn't look like a device ID" 6 50
- return
- fi
-
- if grep -q "$SYNCTHING_DEVICE_ID" $SYNCTHING_CONFIG_FILE; then
- dialog --title $"Add a Syncthing device ID" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"That ID has already been added" 6 50
- return
- fi
-
- if [ ${#SYNCTHING_DESCRIPTION} -gt 0 ]; then
- echo "# $SYNCTHING_DESCRIPTION" >> $SYNCTHING_CONFIG_FILE
- fi
- echo "$SYNCTHING_DEVICE_ID" >> $SYNCTHING_CONFIG_FILE
-
- # force an update of the configuration
- touch ~/.syncthing-update
-
- dialog --title $"Add a Syncthing device ID" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"The ID was added" 6 50
-}
-
-function syncthing_remove_id {
- if [ ! -f ~/.syncthing-server-id ]; then
- return
- fi
-
- syncthing_create_ids_file
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Remove a Syncthing device ID" \
- --form $"Paste the device ID which is to be removed below" 8 80 1 \
- $"Device ID:" 1 1 "" 1 14 80 80 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- SYNCTHING_DEVICE_ID=$(cat $data | sed -n 1p)
-
- if [ ${#SYNCTHING_DEVICE_ID} -lt 10 ]; then
- return
- fi
-
- if [[ $SYNCTHING_DEVICE_ID == *"#"* || $SYNCTHING_DEVICE_ID == *"*"* || $SYNCTHING_DEVICE_ID == *'/'* || $SYNCTHING_DEVICE_ID != *"-"* ]]; then
- dialog --title $"Remove a Syncthing device ID" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"That doesn't look like a device ID" 6 50
- return
- fi
-
- if ! grep -q "$SYNCTHING_DEVICE_ID" $SYNCTHING_CONFIG_FILE; then
- dialog --title $"Remove a Syncthing device ID" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"That ID wasn't registered anyway" 6 50
- return
- fi
-
- sed -i "/$SYNCTHING_DEVICE_ID/d" $SYNCTHING_CONFIG_FILE
-
- # force an update of the configuration
- touch ~/.syncthing-update
-
- dialog --title $"Remove a Syncthing device ID" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"The ID was removed" 6 50
+ # change muttrc
+ if [ $SMTP_PROXY_ENABLE != $'no' ]; then
+ if ! grep -q "set smtp_url" $MUTTRC_FILE; then
+ echo "set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"" >> $MUTTRC_FILE
+ else
+ sed -i "s|set smtp_url=.*|set smtp_url=\"${SMTP_PROXY_PROTOCOL}://${SMTP_PROXY_USERNAME}:${SMTP_PROXY_PASSWORD}@${SMTP_PROXY_SERVER}:${SMTP_PROXY_PORT}/\"|g" $MUTTRC_FILE
+ fi
+ sed -i 's|#set smtp_url|set smtp_url|g' $MUTTRC_FILE
+ else
+ if grep "set smtp_url" $MUTTRC_FILE; then
+ sed -i 's|set smtp_url|#set smtp_url|g' $MUTTRC_FILE
+ fi
+ fi
}
function sign_gpg_key {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Sign a PGP/GPG key or website domain" \
- --backtitle $"Freedombone User Control Panel" \
- --inputbox $"Enter the Key ID, address or domain to be signed.\n\nIf you are signing a website domain then include the https:// at the beginning.\n\nIf you are signing an ssh key then include ssh:// before the domain name." 14 75 2>$data
- sel=$?
- case $sel in
- 0)
- SIGN_ADDRESS=$(<$data)
- if [ ${#SIGN_ADDRESS} -gt 2 ]; then
- clear
- gpg --search "$SIGN_ADDRESS"
- fpr=$(gpg --with-colons --fingerprint "$SIGN_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}')
- if [ ${#fpr} -gt 2 ]; then
- gpg --sign-key $fpr
- if [ "$?" = "0" ]; then
- gpg --update-trustdb
- dialog --title $"Sign a PGP/GPG key" \
- --backtitle $"Freedombone User Control Panel" \
- --msgbox $"$SIGN_ADDRESS was signed" 6 50
- fi
- fi
- fi
- ;;
- esac
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Sign a PGP/GPG key or website domain" \
+ --backtitle $"Freedombone User Control Panel" \
+ --inputbox $"Enter the Key ID, address or domain to be signed.\n\nIf you are signing a website domain then include the https:// at the beginning.\n\nIf you are signing an ssh key then include ssh:// before the domain name." 14 75 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ SIGN_ADDRESS=$(<$data)
+ if [ ${#SIGN_ADDRESS} -gt 2 ]; then
+ clear
+ gpg --search "$SIGN_ADDRESS"
+ fpr=$(gpg --with-colons --fingerprint "$SIGN_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}')
+ if [ ${#fpr} -gt 2 ]; then
+ gpg --sign-key $fpr
+ if [ "$?" = "0" ]; then
+ gpg --update-trustdb
+ dialog --title $"Sign a PGP/GPG key" \
+ --backtitle $"Freedombone User Control Panel" \
+ --msgbox $"$SIGN_ADDRESS was signed" 6 50
+ fi
+ fi
+ fi
+ ;;
+ esac
}
function gpg_key_trust {
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --title $"Trust a PGP/GPG key or website domain" \
- --backtitle $"Freedombone User Control Panel" \
- --inputbox $"Enter the Key ID, address or domain to be trusted.\n\nIf you are trusting a website domain then include the https:// at the beginning.\n\nIf you are trusting an ssh key then include ssh:// before the domain name." 14 75 2>$data
- sel=$?
- case $sel in
- 0)
- TRUST_ADDRESS=$(<$data)
- if [ ${#TRUST_ADDRESS} -gt 2 ]; then
- clear
- gpg --search "$TRUST_ADDRESS"
- gpg_set_trust "$TRUST_ADDRESS"
- fi
- ;;
- esac
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Trust a PGP/GPG key or website domain" \
+ --backtitle $"Freedombone User Control Panel" \
+ --inputbox $"Enter the Key ID, address or domain to be trusted.\n\nIf you are trusting a website domain then include the https:// at the beginning.\n\nIf you are trusting an ssh key then include ssh:// before the domain name." 14 75 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ TRUST_ADDRESS=$(<$data)
+ if [ ${#TRUST_ADDRESS} -gt 2 ]; then
+ clear
+ gpg --search "$TRUST_ADDRESS"
+ gpg_set_trust "$TRUST_ADDRESS"
+ fi
+ ;;
+ esac
}
function menu_encryption_keys {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"My Encryption Keys" \
- --radiolist $"Choose an operation:" 18 70 10 \
- 1 $"Show your PGP/GPG key" off \
- 2 $"Publish your PGP/GPG key so that others can find it" off \
- 3 $"Add someone's PGP/GPG key" off \
- 4 $"Remove someone's PGP/GPG key" off \
- 5 $"Sign a PGP/GPG key or website domain" off \
- 6 $"Refresh your PGP/GPG keys" off \
- 7 $"Add an ssh key for logging in" off \
- 8 $"Remove an ssh key for logging in" off \
- 9 $"Set the trust level for a PGP/GPG key" off \
- 10 $"Back to main menu" on 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- case $(cat $data) in
- 1) show_gpg_key;;
- 2) publish_gpg_key;;
- 3) add_gpg_key;;
- 4) remove_gpg_key;;
- 5) sign_gpg_key;;
- 6) refresh_gpg_keys;;
- 7) add_ssh_key;;
- 8) remove_ssh_key;;
- 9) gpg_key_trust;;
- 10) break;;
- esac
- done
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"My Encryption Keys" \
+ --radiolist $"Choose an operation:" 19 70 11 \
+ 1 $"Show your PGP/GPG key" off \
+ 2 $"Show your full PGP/GPG key, including private key" off \
+ 3 $"Publish your PGP/GPG key so that others can find it" off \
+ 4 $"Add someone's PGP/GPG key" off \
+ 5 $"Remove someone's PGP/GPG key" off \
+ 6 $"Sign a PGP/GPG key or website domain" off \
+ 7 $"Refresh your PGP/GPG keys" off \
+ 8 $"Add an ssh key for logging in" off \
+ 9 $"Remove an ssh key for logging in" off \
+ 10 $"Set the trust level for a PGP/GPG key" off \
+ 11 $"Back to main menu" on 2> $data
+ sel=$?
+ case $sel in
+ 1) break;;
+ 255) break;;
+ esac
+ case $(cat $data) in
+ 1) show_gpg_key;;
+ 2) show_full_gpg_key;;
+ 3) publish_gpg_key;;
+ 4) add_gpg_key;;
+ 5) remove_gpg_key;;
+ 6) sign_gpg_key;;
+ 7) refresh_gpg_keys;;
+ 8) add_ssh_key;;
+ 9) remove_ssh_key;;
+ 10) gpg_key_trust;;
+ 11) break;;
+ esac
+ done
}
function menu_email {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"Change Email Filtering Rules" \
- --radiolist $"Choose an operation:" 14 70 7 \
- 1 $"Add yourself to a mailing list" off \
- 2 $"Remove yourself from a mailing list" off \
- 3 $"Add an email rule for an address" off \
- 4 $"Add an email rule for a subject" off \
- 5 $"Block or unblock an email address" off \
- 6 $"Block or unblock email with subject text" off \
- 7 $"Back to main menu" on 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- case $(cat $data) in
- 1) add_to_mailing_list;;
- 2) remove_user_from_mailing_list;;
- 3) email_rule_address;;
- 4) email_rule_subject;;
- 5) block_unblock_email;;
- 6) block_unblock_subject;;
- 7) break;;
- esac
- done
-}
-
-function menu_syncthing {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"File Synchronization" \
- --radiolist $"Choose an operation:" 12 70 6 \
- 1 $"Show device ID for ${PROJECT_NAME}" off \
- 2 $"Add an ID for another machine or device" off \
- 3 $"Remove an ID for another machine or device" off \
- 4 $"Manually edit device IDs" off \
- 5 $"Back to main menu" on 2> $data
- sel=$?
- case $sel in
- 1) break;;
- 255) break;;
- esac
- case $(cat $data) in
- 1) syncthing_show_id;;
- 2) syncthing_add_id;;
- 3) syncthing_remove_id;;
- 4) syncthing_manual_edit;;
- 5) break;;
- esac
- done
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"Change Email Filtering Rules" \
+ --radiolist $"Choose an operation:" 14 70 7 \
+ 1 $"Add yourself to a mailing list" off \
+ 2 $"Remove yourself from a mailing list" off \
+ 3 $"Add an email rule for an address" off \
+ 4 $"Add an email rule for a subject" off \
+ 5 $"Block or unblock an email address" off \
+ 6 $"Block or unblock email with subject text" off \
+ 7 $"Back to main menu" on 2> $data
+ sel=$?
+ case $sel in
+ 1) break;;
+ 255) break;;
+ esac
+ case $(cat $data) in
+ 1) add_to_mailing_list;;
+ 2) remove_user_from_mailing_list;;
+ 3) email_rule_address;;
+ 4) email_rule_subject;;
+ 5) block_unblock_email;;
+ 6) block_unblock_subject;;
+ 7) break;;
+ esac
+ done
}
function menu_admin {
- if [ ! -f /etc/sudoers ]; then
- clear
- exit 0
- fi
- sudo freedombone-controlpanel
+ if [ ! -f /etc/sudoers ]; then
+ clear
+ exit 0
+ fi
+ sudo ${PROJECT_NAME}-controlpanel
}
function sign_keys {
- if [ ! -f /home/$USER/.monkeysphere/server_keys ]; then
- return
- fi
+ if [ ! -f /home/$USER/.monkeysphere/server_keys ]; then
+ return
+ fi
- dialog --title $"Monkeysphere sign server keys" \
- --backtitle $"Freedombone Security Configuration" \
- --defaultno \
- --yesno $"\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?" 8 60
- sel=$?
- case $sel in
- 0) ${PROJECT_NAME}-sec --sign yes;;
- esac
+ dialog --title $"Monkeysphere sign server keys" \
+ --backtitle $"Freedombone Security Configuration" \
+ --defaultno \
+ --yesno $"\nMonkeysphere has been enabled and you will need to sign and trust the server keys. Do you want to do that now?" 8 60
+ sel=$?
+ case $sel in
+ 0) ${PROJECT_NAME}-sec --sign yes;;
+ esac
+}
+
+function menu_run_client_app {
+ detect_installable_apps
+
+ applist=""
+ appnames=()
+ n=1
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} != "0" ]]; then
+ if [[ $(function_exists run_client_${a}) == "1" ]]; then
+ applist="$applist $n $a off"
+ n=$[n+1]
+ appnames+=("$a")
+ fi
+ fi
+ app_index=$[app_index+1]
+ done
+ if [ $n -le 1 ]; then
+ return
+ fi
+ backstr=$'Exit'
+ applist="$applist $n $backstr on"
+ appnames+=("Exit")
+
+ choice=$(dialog --stdout --backtitle $"Freedombone" \
+ --title $"Run an App" \
+ --radiolist $'Choose:' \
+ 16 40 20 $applist)
+
+ if [ $? -eq 0 ]; then
+ app_index=$[choice-1]
+ chosen_app=${appnames[$app_index]}
+ if [[ $chosen_app != "Exit" ]]; then
+ run_client_${chosen_app}
+ fi
+ fi
}
function menu_top_level {
- while true
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone User Control Panel" \
- --title $"User Control Panel" \
- --radiolist $"Choose an operation:" 19 50 12 \
- 1 $"Use Email" off \
- 2 $"Change Email Filtering Rules" off \
- 3 $"Use Tox Chat" off \
- 4 $"Use XMPP Chat" off \
- 5 $"Use IRC" off \
- 6 $"Browse the Web" off \
- 7 $"File Synchronization" off \
- 8 $"My Encryption Keys" off \
- 9 $"Set an outgoing email proxy" off \
- 10 $"Administrator controls" off \
- 11 $"Exit to the command line" off \
- 12 $"Log out" on 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) mutt;;
- 2) menu_email;;
- 3) toxic --force-tcp --SOCKS5-proxy 127.0.0.1 9050;;
- 4) torify profanity;;
- 5) irssi;;
- 6) torify elinks;;
- 7) menu_syncthing;;
- 8) menu_encryption_keys;;
- 9) smtp_proxy;;
- 10) menu_admin;;
- 11) break;;
- 12) kill -HUP `pgrep -s 0 -o`;;
- esac
- done
+ while true
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone User Control Panel" \
+ --title $"User Control Panel" \
+ --radiolist $"Choose an operation:" 19 50 12 \
+ 1 $"Use Email" off \
+ 2 $"Change Email Filtering Rules" off \
+ 3 $"Run an App" off \
+ 4 $"Browse the Web" off \
+ 5 $"My Encryption Keys" off \
+ 6 $"Set an outgoing email proxy" off \
+ 7 $"Administrator controls" off \
+ 8 $"Exit to the command line" off \
+ 9 $"Log out" on 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) mutt;;
+ 2) menu_email;;
+ 3) menu_run_client_app;;
+ 4) torify elinks;;
+ 5) menu_encryption_keys;;
+ 6) smtp_proxy;;
+ 7) menu_admin;;
+ 8) break;;
+ 9) kill -HUP `pgrep -s 0 -o`;;
+ esac
+ done
}
sign_keys
diff --git a/src/freedombone-dhparam b/src/freedombone-dhparam
index b57e32b8..7fffda90 100755
--- a/src/freedombone-dhparam
+++ b/src/freedombone-dhparam
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -131,104 +131,104 @@ aDWQRvTrh5+SQAlDi0gcbNeImgAu1e44K8kZDab8Am5HlVjkR1Z36aqeMFDidlaU
'
function show_help {
- echo ''
- echo $"${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]"
- echo ''
- exit 0
+ echo ''
+ echo $"${PROJECT_NAME}-dhparam -h [hostname] -l [length in bits] --recalc [yes|no] --fast [yes|no]"
+ echo ''
+ exit 0
}
function calc_dh {
- if [[ $FAST == 'yes' ]]; then
- DHGROUP=$(( ( RANDOM % 4 ) + 14 ))
- if [[ ${DHGROUP} == 14 ]]; then
- echo "$BETTERCRYPTO_GROUP14" > ${1}
- else
- if [[ ${DHGROUP} == 15 ]]; then
- echo "$BETTERCRYPTO_GROUP15" > ${1}
- else
- if [[ ${DHGROUP} == 16 ]]; then
- echo "$BETTERCRYPTO_GROUP16" > ${1}
- else
- if [[ ${DHGROUP} == 17 ]]; then
- echo "$BETTERCRYPTO_GROUP17" > ${1}
- else
- echo "$BETTERCRYPTO_GROUP18" > ${1}
- fi
- fi
- fi
- fi
- else
- openssl dhparam -check -text $KEYLENGTH -out ${1}
- if [ ! "$?" = "0" ]; then
- exit 3674
- fi
- fi
- chmod 640 ${1}
+ if [[ $FAST == 'yes' ]]; then
+ DHGROUP=$(( ( RANDOM % 4 ) + 14 ))
+ if [[ ${DHGROUP} == 14 ]]; then
+ echo "$BETTERCRYPTO_GROUP14" > ${1}
+ else
+ if [[ ${DHGROUP} == 15 ]]; then
+ echo "$BETTERCRYPTO_GROUP15" > ${1}
+ else
+ if [[ ${DHGROUP} == 16 ]]; then
+ echo "$BETTERCRYPTO_GROUP16" > ${1}
+ else
+ if [[ ${DHGROUP} == 17 ]]; then
+ echo "$BETTERCRYPTO_GROUP17" > ${1}
+ else
+ echo "$BETTERCRYPTO_GROUP18" > ${1}
+ fi
+ fi
+ fi
+ fi
+ else
+ openssl dhparam -check -text $KEYLENGTH -out ${1}
+ if [ ! "$?" = "0" ]; then
+ exit 3674
+ fi
+ fi
+ chmod 640 ${1}
}
function regenerate_dh_keys {
- for file in /etc/ssl/mycerts/*
- do
- if [[ -f $file ]]; then
- filename=/etc/ssl/certs/$(echo $file | awk -F '/etc/ssl/mycerts/' '{print $2}' | awk -F '.crt' '{print $1}').dhparam
- if [ -f $filename ]; then
- calc_dh $filename
- echo $"Recalculated DH params for $filename"
- fi
- fi
- done
+ for file in /etc/ssl/mycerts/*
+ do
+ if [[ -f $file ]]; then
+ filename=/etc/ssl/certs/$(echo $file | awk -F '/etc/ssl/mycerts/' '{print $2}' | awk -F '.crt' '{print $1}').dhparam
+ if [ -f $filename ]; then
+ calc_dh $filename
+ echo $"Recalculated DH params for $filename"
+ fi
+ fi
+ done
}
while [[ $# > 1 ]]
do
- key="$1"
+ key="$1"
- case $key in
- --help)
- show_help
- ;;
- -h|--hostname)
- shift
- HOSTNAME="$1"
- ;;
- -l|--dhkey)
- shift
- KEYLENGTH=${1}
- ;;
- --recalc)
- shift
- RECALCULATE=${1}
- ;;
- --fast)
- shift
- if [[ ${1} == $"yes" || ${1} == $"y" ]]; then
- FAST='yes'
- fi
- ;;
- *)
- # unknown option
- ;;
- esac
- shift
+ case $key in
+ --help)
+ show_help
+ ;;
+ -h|--hostname)
+ shift
+ HOSTNAME="$1"
+ ;;
+ -l|--dhkey)
+ shift
+ KEYLENGTH=${1}
+ ;;
+ --recalc)
+ shift
+ RECALCULATE=${1}
+ ;;
+ --fast)
+ shift
+ if [[ ${1} == $"yes" || ${1} == $"y" ]]; then
+ FAST='yes'
+ fi
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
+ shift
done
if [[ $RECALCULATE == "yes" || $RECALCULATE == "y" ]]; then
- regenerate_dh_keys
- exit 0
+ regenerate_dh_keys
+ exit 0
fi
if [ ! $HOSTNAME ]; then
- echo $'No hostname specified'
- exit 5728
+ echo $'No hostname specified'
+ exit 5728
fi
if ! which openssl > /dev/null ;then
- echo $"$0: openssl is not installed, exiting" 1>&2
- exit 5689
+ echo $"$0: openssl is not installed, exiting" 1>&2
+ exit 5689
fi
if [ ! -d /etc/ssl/mycerts ]; then
- mkdir -p /etc/ssl/mycerts
+ mkdir -p /etc/ssl/mycerts
fi
calc_dh /etc/ssl/certs/$HOSTNAME.dhparam
diff --git a/src/freedombone-encrypt-mail b/src/freedombone-encrypt-mail
index 63486ffd..71a3782f 100755
--- a/src/freedombone-encrypt-mail
+++ b/src/freedombone-encrypt-mail
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2014-2016 Bob Mottram
+# Copyright (C) 2014-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,7 +30,16 @@
USERNAME=$1
-ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+PROJECT_NAME='freedombone'
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+ADMIN_USER=$(get_completion_param "Admin user")
if [ ! $USERNAME ]; then
USERNAME=$ADMIN_USER
diff --git a/src/freedombone-format b/src/freedombone-format
index 620b02c0..83be0787 100755
--- a/src/freedombone-format
+++ b/src/freedombone-format
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -38,7 +38,14 @@ if [ ! $1 ]; then
exit 1
fi
-USB_DRIVE=/dev/${1}1
+USB_DRIVE_SHORT=${1}
+if [[ "$1" == "/dev/"* ]]; then
+ USB_DRIVE=$1
+ USB_DRIVE_SHORT=$(echo "$USB_DRIVE" | awk -F '/' '{print $3}' | sed 's|1||g' | sed 's|2||g' | sed 's|3||g')
+else
+ USB_DRIVE=/dev/${1}1
+fi
+
LABEL="${PROJECT_NAME}"
echo $'Partitioning drive'
@@ -55,7 +62,7 @@ p
a
1
w
-" | fdisk /dev/${1};mkfs.ext4 -L "$LABEL" /dev/${1}1
+" | fdisk /dev/${USB_DRIVE_SHORT};mkfs.ext4 -L "$LABEL" /dev/${USB_DRIVE_SHORT}1
echo $"Formatting $USB_DRIVE as LUKS"
cryptsetup -y -v luksFormat ${USB_DRIVE}
diff --git a/src/freedombone-freedns b/src/freedombone-freedns
new file mode 100755
index 00000000..f22ff2c3
--- /dev/null
+++ b/src/freedombone-freedns
@@ -0,0 +1,69 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# freedns update command for use in cron or a daemon
+
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-freedns
+export TEXTDOMAINDIR="/usr/share/locale"
+
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
+FREEDNS_WGET='wget -q --read-timeout=0.0 --waitretry=5 --tries=4 https://freedns.afraid.org/dynamic/update.php?'
+
+if [ ! -f $CONFIGURATION_FILE ]; then
+ exit 0
+fi
+
+function item_in_array {
+ local e
+ for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
+ return 1
+}
+
+detected_codes=()
+codelines=($(grep "_CODE=" $CONFIGURATION_FILE | uniq))
+for line in "${codelines[@]}"
+do
+ code=$(echo "$line" | awk -F '=' '{print $2}')
+ item_in_array "$code" "${detected_codes[@]}"
+ if [[ $? != 0 ]]; then
+ detected_codes+=("$code")
+ fi
+done
+
+if [ ! -d $HOME/.freedns-update ]; then
+ mkdir $HOME/.freedns-update
+fi
+cd $HOME/.freedns-update
+for code in "${detected_codes[@]}"
+do
+ $FREEDNS_WGET${code}
+done
+
+exit 0
diff --git a/src/freedombone-ignore b/src/freedombone-ignore
index eaafc32f..8a24abc0 100755
--- a/src/freedombone-ignore
+++ b/src/freedombone-ignore
@@ -15,7 +15,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-image b/src/freedombone-image
index 2894cd6a..4c256e78 100755
--- a/src/freedombone-image
+++ b/src/freedombone-image
@@ -15,7 +15,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -35,7 +35,23 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-image
export TEXTDOMAINDIR="/usr/share/locale"
+USERHOME=$HOME
+
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+#get the project repo
PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+read_config_param PROJECT_REPO
# recommended RAM for virtual machines
VM_MEMORY='1G'
@@ -53,7 +69,7 @@ TEMPBUILD_DIR=~/.tmp_${PROJECT_NAME}_build
VMDEBOOTSTRAP_REPO=git://git.liw.fi/vmdebootstrap
VMDEBOOTSTRAP_VERSION=0.8
MAKEFILE=${PROJECT_NAME}-image-makefile
-IMAGE_SIZE=8G
+IMAGE_SIZE=7.8G
IMAGE_SIZE_SPECIFIED=
IMAGE_NAME='full'
@@ -76,14 +92,7 @@ CONFIG_FILENAME=
DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
# Minimum number of characters in a password
-MINIMUM_PASSWORD_LENGTH=10
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-else
- if [ -f /usr/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
- fi
-fi
+MINIMUM_PASSWORD_LENGTH=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
# Optional ssh public key to allow
SSH_PUBKEY="no"
@@ -121,217 +130,351 @@ WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
# Whether to install non-free wifi drivers for the mesh client
INSECURE='no'
-mesh_router_setup_script() {
- # create a setup script for a mesh router
- mesh_script_filename=$1
- echo "MY_USERNAME=${USERNAME}" > $mesh_script_filename
- echo "DEFAULT_DOMAIN_NAME=${USERNAME}" >> $mesh_script_filename
- echo 'SYSTEM_TYPE=mesh' >> $mesh_script_filename
- echo 'INSTALLING_ON_BBB=no' >> $mesh_script_filename
- echo 'USB_DRIVE=/dev/sda1' >> $mesh_script_filename
- echo 'DDNS_PROVIDER=' >> $mesh_script_filename
- echo 'DDNS_USERNAME=' >> $mesh_script_filename
- echo 'DDNS_PASSWORD=' >> $mesh_script_filename
- echo 'DEFAULT_LANGUAGE=en_GB.UTF-8' >> $mesh_script_filename
- echo 'MY_EMAIL_ADDRESS=' >> $mesh_script_filename
- echo 'ENABLE_CJDNS=no' >> $mesh_script_filename
- echo 'ENABLE_BATMAN=yes' >> $mesh_script_filename
- echo 'ENABLE_BABEL=no' >> $mesh_script_filename
- echo 'DEBIAN_REPO=' >> $mesh_script_filename
- echo 'NAMESERVER1=' >> $mesh_script_filename
- echo 'NAMESERVER2=' >> $mesh_script_filename
- echo 'BATMAN_CELLID=any' >> $mesh_script_filename
- echo 'WIFI_CHANNEL=9' >> $mesh_script_filename
+# for mesh installs whether to delete all data and generate
+# a new identity at every shutdown/boot
+AMNESIC='no'
+
+# Versions used for Arch/Parabola setup
+MBR_VERSION='1.1.11'
+
+# version of cliapp to use with parabola
+CLIAPP_COMMIT='cb17626e6441a5bf43a1d3f17a769f8e44ff4977'
+
+# version of mbr to use with parabola
+MBR_COMMIT='fb7ac88f251a1529b8aa759abc49acb2e99094b2'
+
+# defining repo variables here ensures that they will be mirrored
+MULTIPATH_TOOLS_REPO="https://aur.archlinux.org/multipath-tools.git"
+MBR_REPO="https://aur.archlinux.org/mbr.git"
+CLIAPP_REPO="git://git.liw.fi/cliapp"
+
+function image_setup {
+ setup_type=$1
+
+ case $setup_type in
+ debian|ubuntu|trisquel|mint)
+ sudo apt-get -yq install build-essential libc6-dev-i386 gcc-multilib g++-multilib
+ sudo apt-get -yq install git python-docutils mktorrent vmdebootstrap xz-utils
+ sudo apt-get -yq install dosfstools btrfs-tools extlinux python-distro-info mbr
+ sudo apt-get -yq install qemu-user-static binfmt-support u-boot-tools qemu
+ ;;
+ parabola|arch)
+ sudo pacman -S --noconfirm libc++ git gcc gcc-libs python-docutils mktorrent patch
+ sudo pacman -S --noconfirm debootstrap xz dosfstools btrfs-progs syslinux python-pip
+ sudo pacman -S --noconfirm qemu-static binfmt-qemu-static uboot-tools qemu parted
+ sudo pacman -S --noconfirm dpkg-devtools bin86 arch-install-scripts qemu-arch-extra
+ sudo pacman -S --noconfirm syncthing
+ mkdir $USERHOME/develop
+ if [ -d $USERHOME/develop/python-cliapp ]; then
+ sudo rm -rf $USERHOME/develop/python-cliapp
+ fi
+ git_clone $CLIAPP_REPO $USERHOME/develop/python-cliapp
+ if [ ! "$?" = "0" ]; then
+ echo $"Failed to clone python-cliapp"
+ return
+ fi
+ if [ ! -d $USERHOME/develop/python-cliapp ]; then
+ echo $"Couldn't clone python-cliapp"
+ return
+ fi
+ sudo pacman -S --noconfirm python2-coverage python2-pytest-cov python2-sphinx
+ sudo pacman -S --noconfirm autopep8 python2-pylint python2-yaml python2-xdg python2-pip
+ cd $USERHOME/develop/python-cliapp
+ git checkout $CLIAPP_COMMIT -b $CLIAPP_COMMIT
+ sudo python2 setup.py install
+ sudo pip2 install distro-info logging
+ if [ -d $USERHOME/develop/mbr ]; then
+ sudo rm -rf $USERHOME/develop/mbr
+ fi
+ git_clone $MBR_REPO $USERHOME/develop/mbr
+ if [ ! "$?" = "0" ]; then
+ echo $"Failed to clone mbr"
+ return
+ fi
+ if [ ! -d $USERHOME/develop/mbr ]; then
+ echo $"Couldn't clone mbr"
+ return
+ fi
+ cd $USERHOME/develop/mbr
+ git checkout $MBR_COMMIT -b $MBR_COMMIT
+ makepkg --force --noconfirm
+ if [ ! -f mbr-${MBR_VERSION}.tar.gz ]; then
+ echo $"mbr tarball was not found for version ${MBR_VERSION}"
+ return
+ fi
+ tar -xzvf mbr-${MBR_VERSION}.tar.gz
+ if [ ! -d $USERHOME/develop/mbr/mbr-${MBR_VERSION} ]; then
+ echo $"mbr tarball could not be extracted"
+ return
+ fi
+ cd $USERHOME/develop/mbr/mbr-${MBR_VERSION}
+ cp ../*.patch .
+ patch -p0 < *.patch
+ ./configure
+ make
+ sudo make install
+ if [ ! -f /usr/local/sbin/install-mbr ]; then
+ echo $'Failed to install mbr'
+ return
+ fi
+ sudo cp /usr/local/sbin/install-mbr /sbin
+ if [ -d $USERHOME/develop/multipath-tools ]; then
+ sudo rm -rf $USERHOME/develop/multipath-tools
+ fi
+ git_clone $MULTIPATH_TOOLS_REPO $USERHOME/develop/multipath-tools
+ if [ ! "$?" = "0" ]; then
+ echo $"Failed to clone multipath-tools"
+ return
+ fi
+ if [ ! -d $USERHOME/develop/multipath-tools ]; then
+ echo $"Couldn't clone multipath-tools"
+ return
+ fi
+ sudo pacman -S --noconfirm device-mapper libaio liburcu fakeroot
+ cd $USERHOME/develop/multipath-tools
+ makepkg --force --noconfirm
+ makepkg -i --force --noconfirm
+ sudo wget https://raw.githubusercontent.com/bashrc/freedombone/stockholm/image_build/debootstrap/scripts/${DEBIAN_VERSION} -O /usr/share/debootstrap/scripts/debscript
+ sudo cp -f /usr/share/debootstrap/scripts/debscript /usr/share/debootstrap/scripts/${DEBIAN_VERSION}
+ if [ ! -f /usr/share/debootstrap/scripts/${DEBIAN_VERSION} ]; then
+ echo $"No debian debootstrap script was found for $DEBIAN_VERSION"
+ return
+ fi
+ debian_script_hash=$(sha256sum /usr/share/debootstrap/scripts/${DEBIAN_VERSION} | awk -F ' ' '{print $1}')
+ expected_debian_script_hash='94e01603091748e8a6a9d2c3beefec29f2a174d989500f81be4ab767830f4489'
+ if [[ "$debian_script_hash" != "$expected_debian_script_hash" ]]; then
+ echo $"Invalid hash for debootstrap ${DEBIAN_VERSION} script"
+ return
+ fi
+ sudo chmod +x /usr/share/debootstrap/scripts/${DEBIAN_VERSION}
+ ;;
+ *)
+ echo $'Unkown operating system'
+ return
+ ;;
+ esac
+
+ echo $'Setup complete'
+}
+
+function mesh_router_setup_script {
+ # create a setup script for a mesh router
+ mesh_script_filename=$1
+ echo "MY_USERNAME=${USERNAME}" > $mesh_script_filename
+ echo "DEFAULT_DOMAIN_NAME=${USERNAME}" >> $mesh_script_filename
+ echo 'SYSTEM_TYPE=mesh' >> $mesh_script_filename
+ echo 'INSTALLING_ON_BBB=no' >> $mesh_script_filename
+ echo 'USB_DRIVE=/dev/sda1' >> $mesh_script_filename
+ echo 'DDNS_PROVIDER=' >> $mesh_script_filename
+ echo 'DDNS_USERNAME=' >> $mesh_script_filename
+ echo 'DDNS_PASSWORD=' >> $mesh_script_filename
+ echo 'DEFAULT_LANGUAGE=en_GB.UTF-8' >> $mesh_script_filename
+ echo 'MY_EMAIL_ADDRESS=' >> $mesh_script_filename
+ echo 'ENABLE_BATMAN=yes' >> $mesh_script_filename
+ echo 'DEBIAN_REPO=' >> $mesh_script_filename
+ echo 'NAMESERVER1=' >> $mesh_script_filename
+ echo 'NAMESERVER2=' >> $mesh_script_filename
+ echo 'BATMAN_CELLID=any' >> $mesh_script_filename
+ echo 'WIFI_CHANNEL=9' >> $mesh_script_filename
}
while [[ $# > 1 ]]
do
- key="$1"
+ key="$1"
- case $key in
- -h|--help)
- show_help
- ;;
- -c|--config)
- shift
- CONFIG_FILENAME="$1"
- if [ ! -f $CONFIG_FILENAME ]; then
- echo $"Config file $CONFIG_FILENAME not found"
- exit 3
- fi
- DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
- ;;
- -t|--target|--board)
- shift
- IMAGE_TYPE="$1"
- ;;
- -u|--user|--username)
- shift
- USERNAME="$1"
- ;;
- -p|--password)
- shift
- PASSWORD="$1"
- if [ ${#PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
- echo $"Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters"
- exit 3628
- fi
- ;;
- --sshkey|--sshpubkey|--pubkey)
- shift
- SSH_PUBKEY="$1"
- ;;
- -s|--size)
- shift
- IMAGE_SIZE="$1"
- IMAGE_SIZE_SPECIFIED=1
- ;;
- # Box static IP address on the LAN
- --ip)
- shift
- BOX_IP_ADDRESS="$1"
- ;;
- # Router IP address on the LAN
- --iprouter)
- shift
- ROUTER_IP_ADDRESS="$1"
- ;;
- # nameserver 1
- --ns1|--nameserver1)
- shift
- NAMESERVER1="$1"
- ;;
- # nameserver 2
- --ns2|--nameserver2)
- shift
- NAMESERVER2="$1"
- ;;
- -i|--interactive)
- shift
- INTERACTIVE="$1"
- ;;
- -g|--generic)
- shift
- GENERIC_IMAGE="$1"
- ;;
- --minimal)
- shift
- MINIMAL_INSTALL="$1"
- ;;
- --ssh|--sshport)
- shift
- SSH_PORT="$1"
- ;;
- -v|--variant)
- shift
- VARIANT="$1"
- ;;
- -o|--onion)
- shift
- ONION_ONLY="$1"
- ;;
- -r|--repo|--repository)
- shift
- PROJECT_REPO="$1"
- ;;
- -m|--mirror)
- shift
- MIRROR="$1"
- ;;
- --debianonly|--basic|--minimal)
- shift
- DEBIAN_INSTALL_ONLY="$1"
- ;;
- --interface|--if)
- shift
- WIFI_INTERFACE="$1"
- ;;
- --ssid|--essid)
- shift
- WIFI_SSID="$1"
- ;;
- --wifitype)
- shift
- WIFI_TYPE="$1"
- ;;
- --wifipass|--passphrase)
- shift
- WIFI_PASSPHRASE="$1"
- ;;
- --hotspot)
- shift
- if [[ $"$1" == $'yes' || $"$1" == $'y' ]]; then
- WIFI_HOTSPOT='yes'
- fi
- ;;
- --networks)
- shift
- WIFI_NETWORKS_FILE="$1"
- ;;
- --insecure)
- shift
- INSECURE="$1"
- ;;
- *)
- # unknown option
- ;;
- esac
- shift
+ case $key in
+ -h|--help)
+ show_help
+ ;;
+ -c|--config)
+ shift
+ CONFIG_FILENAME="$1"
+ if [ ! -f $CONFIG_FILENAME ]; then
+ echo $"Config file $CONFIG_FILENAME not found"
+ exit 3
+ fi
+ DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
+ ;;
+ -t|--target|--board)
+ shift
+ IMAGE_TYPE="$1"
+ ;;
+ -u|--user|--username)
+ shift
+ USERNAME="$1"
+ ;;
+ -p|--password)
+ shift
+ PASSWORD="$1"
+ if [ ${#PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
+ echo $"Your password chould contain at least ${MINIMUM_PASSWORD_LENGTH} characters"
+ exit 3628
+ fi
+ ;;
+ --sshkey|--sshpubkey|--pubkey)
+ shift
+ SSH_PUBKEY="$1"
+ ;;
+ -s|--size)
+ shift
+ IMAGE_SIZE="$1"
+ IMAGE_SIZE_SPECIFIED=1
+ ;;
+ # Box static IP address on the LAN
+ --ip)
+ shift
+ BOX_IP_ADDRESS="$1"
+ ;;
+ # Router IP address on the LAN
+ --iprouter)
+ shift
+ ROUTER_IP_ADDRESS="$1"
+ ;;
+ # nameserver 1
+ --ns1|--nameserver1)
+ shift
+ NAMESERVER1="$1"
+ ;;
+ # nameserver 2
+ --ns2|--nameserver2)
+ shift
+ NAMESERVER2="$1"
+ ;;
+ -i|--interactive)
+ shift
+ INTERACTIVE="$1"
+ ;;
+ -g|--generic)
+ shift
+ GENERIC_IMAGE="$1"
+ ;;
+ --minimal)
+ shift
+ MINIMAL_INSTALL="$1"
+ ;;
+ --ssh|--sshport)
+ shift
+ SSH_PORT="$1"
+ ;;
+ -v|--variant)
+ shift
+ VARIANT="$1"
+ ;;
+ -o|--onion)
+ shift
+ ONION_ONLY="$1"
+ ;;
+ -a|--amnesic)
+ shift
+ AMNESIC="$1"
+ ;;
+ -r|--repo|--repository)
+ shift
+ PROJECT_REPO="$1"
+ ;;
+ -m|--mirror)
+ shift
+ MIRROR="$1"
+ ;;
+ --debianonly|--basic|--minimal)
+ shift
+ DEBIAN_INSTALL_ONLY="$1"
+ ;;
+ --interface|--if)
+ shift
+ WIFI_INTERFACE="$1"
+ ;;
+ --ssid|--essid)
+ shift
+ WIFI_SSID="$1"
+ ;;
+ --wifitype)
+ shift
+ WIFI_TYPE="$1"
+ ;;
+ --wifipass|--passphrase)
+ shift
+ WIFI_PASSPHRASE="$1"
+ ;;
+ --hotspot)
+ shift
+ if [[ $"$1" == $'yes' || $"$1" == $'y' ]]; then
+ WIFI_HOTSPOT='yes'
+ fi
+ ;;
+ --networks)
+ shift
+ WIFI_NETWORKS_FILE="$1"
+ ;;
+ --insecure)
+ shift
+ INSECURE="$1"
+ ;;
+ --setup)
+ shift
+ image_setup "$1"
+ exit 0
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
+ shift
done
if [[ $INTERACTIVE == "yes" || $INTERACTIVE == "y" || $INTERACTIVE == "Yes" ]]; then
- ${PROJECT_NAME}-config --minimal "$MINIMAL_INSTALL"
- if [ -f freedombone.cfg ]; then
- CONFIG_FILENAME=freedombone.cfg
- DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
- fi
+ ${PROJECT_NAME}-config --minimal "$MINIMAL_INSTALL"
+ if [ -f $HOME/${PROJECT_NAME}.cfg ]; then
+ CONFIG_FILENAME=$HOME/${PROJECT_NAME}.cfg
+ DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
+ fi
fi
if [[ $GENERIC_IMAGE == "yes" ]]; then
- USERNAME=$GENERIC_IMAGE_USERNAME
- PASSWORD=$GENERIC_IMAGE_PASSWORD
+ USERNAME=$GENERIC_IMAGE_USERNAME
+ PASSWORD=$GENERIC_IMAGE_PASSWORD
fi
if [ ! $PASSWORD ]; then
- # generate a random password
- PASSWORD="$(openssl rand -base64 30 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
+ # generate a random password
+ PASSWORD="$(openssl rand -base64 30 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
fi
# Move any existing images into a build subdirectory
image_types=( xz img sig vdi qcow2 )
for im in "${image_types[@]}"
do
- no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
- if (( no_of_files > 0 )); then
- if [ ! -d ${CURR_DIR}/build ]; then
- mkdir ${CURR_DIR}/build
- fi
- mv -f ${CURR_DIR}/${PROJECT_NAME}*.${im} ${CURR_DIR}/build
- fi
+ no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
+ if (( no_of_files > 0 )); then
+ if [ ! -d ${CURR_DIR}/build ]; then
+ mkdir ${CURR_DIR}/build
+ fi
+ mv -f ${CURR_DIR}/${PROJECT_NAME}*.${im} ${CURR_DIR}/build
+ fi
done
# Delete anything which didn't move
for im in "${image_types[@]}"
do
- no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
- if (( no_of_files > 0 )); then
- rm -f ${CURR_DIR}/${PROJECT_NAME}*.${im}
- fi
+ no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
+ if (( no_of_files > 0 )); then
+ rm -f ${CURR_DIR}/${PROJECT_NAME}*.${im}
+ fi
done
# Remove any existing login credentials file
if [ -f ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt ]; then
- rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
+ rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
fi
if [ -d $TEMPBUILD_DIR ]; then
- rm -rf $TEMPBUILD_DIR
+ rm -rf $TEMPBUILD_DIR
fi
mkdir -p $TEMPBUILD_DIR
if [ -f /usr/local/bin/$MAKEFILE ]; then
- cp /usr/local/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
+ cp /usr/local/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
else
- cp /usr/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
+ cp /usr/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
fi
cp -r /etc/${PROJECT_NAME}/* $TEMPBUILD_DIR
@@ -340,90 +483,100 @@ chown -R $CURR_USER:$CURR_USER $TEMPBUILD_DIR
cd $TEMPBUILD_DIR
if [[ $MINIMAL_INSTALL == "yes" ]]; then
- IMAGE_NAME=$'min'
+ IMAGE_NAME=$'min'
fi
if [[ $ONION_ONLY != "no" ]]; then
- IMAGE_NAME=$'onion'
+ IMAGE_NAME=$'onion'
fi
if [[ $VARIANT == 'mesh' ]]; then
- IMAGE_NAME=$'mesh'
- # typically not much disk space is needed for a mesh node
- if [ ! $IMAGE_SIZE_SPECIFIED ]; then
- IMAGE_SIZE=2G
- fi
+ IMAGE_NAME=$'mesh'
+ # typically not much disk space is needed for a mesh node
+ if [ ! $IMAGE_SIZE_SPECIFIED ]; then
+ IMAGE_SIZE=3G
+ fi
fi
if [[ $VARIANT == 'meshclient' || $VARIANT == 'meshusb' ]]; then
- IMAGE_NAME=$'meshclient'
+ IMAGE_NAME=$'meshclient'
+ if [[ $INSECURE != 'no' ]]; then
+ IMAGE_NAME=$'meshclient-insecure'
+ fi
+
+ if [ ! $IMAGE_SIZE_SPECIFIED ]; then
+ IMAGE_SIZE=7.8G
+ fi
fi
if [[ $VARIANT == 'usb' ]]; then
- IMAGE_NAME=$'usb'
+ IMAGE_NAME=$'usb'
+fi
+
+# append amnesic to the image name if needed
+if [[ $AMNESIC != 'no' ]]; then
+ IMAGE_NAME="${IMAGE_NAME}-amnesic"
fi
cd $TEMPBUILD_DIR
make $IMAGE_TYPE \
- USERNAME="$USERNAME" \
- PASSWORD="$PASSWORD" \
- ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
- BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
- NAMESERVER1="$NAMESERVER1" \
- NAMESERVER2="$NAMESERVER2" \
- PROJECT_NAME="$PROJECT_NAME" \
- CONFIG_FILENAME="$CONFIG_FILENAME" \
- IMAGE_SIZE="$IMAGE_SIZE" \
- SSH_PUBKEY="$SSH_PUBKEY" \
- GENERIC_IMAGE="$GENERIC_IMAGE" \
- MINIMAL_INSTALL="$MINIMAL_INSTALL" \
- SSH_PORT="$SSH_PORT" \
- ONION_ONLY="$ONION_ONLY" \
- IMAGE_NAME="$IMAGE_NAME" \
- PROJECT_REPO="$PROJECT_REPO" \
- MIRROR="$MIRROR" \
- BUILD_MIRROR="$MIRROR" \
- DEBIAN_INSTALL_ONLY="$DEBIAN_INSTALL_ONLY" \
- WIFI_INTERFACE="$WIFI_INTERFACE" \
- WIFI_SSID="$WIFI_SSID" \
- WIFI_TYPE="$WIFI_TYPE" \
- WIFI_PASSPHRASE="$WIFI_PASSPHRASE" \
- WIFI_HOTSPOT="$WIFI_HOTSPOT" \
- WIFI_NETWORKS_FILE="$WIFI_NETWORKS_FILE" \
- VARIANT="$VARIANT" \
- MINIMUM_PASSWORD_LENGTH="$MINIMUM_PASSWORD_LENGTH" \
- INSECURE="$INSECURE"
+ MYUSERNAME="$USERNAME" \
+ MYPASSWORD="$PASSWORD" \
+ ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
+ BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
+ NAMESERVER1="$NAMESERVER1" \
+ NAMESERVER2="$NAMESERVER2" \
+ PROJECT_NAME="$PROJECT_NAME" \
+ CONFIG_FILENAME="$CONFIG_FILENAME" \
+ IMAGE_SIZE="$IMAGE_SIZE" \
+ SSH_PUBKEY="$SSH_PUBKEY" \
+ GENERIC_IMAGE="$GENERIC_IMAGE" \
+ MINIMAL_INSTALL="$MINIMAL_INSTALL" \
+ SSH_PORT="$SSH_PORT" \
+ ONION_ONLY="$ONION_ONLY" \
+ IMAGE_NAME="$IMAGE_NAME" \
+ PROJECT_REPO="$PROJECT_REPO" \
+ MIRROR="$MIRROR" \
+ BUILD_MIRROR="$MIRROR" \
+ DEBIAN_INSTALL_ONLY="$DEBIAN_INSTALL_ONLY" \
+ WIFI_INTERFACE="$WIFI_INTERFACE" \
+ WIFI_SSID="$WIFI_SSID" \
+ WIFI_TYPE="$WIFI_TYPE" \
+ WIFI_PASSPHRASE="$WIFI_PASSPHRASE" \
+ WIFI_HOTSPOT="$WIFI_HOTSPOT" \
+ WIFI_NETWORKS_FILE="$WIFI_NETWORKS_FILE" \
+ VARIANT="$VARIANT" \
+ MINIMUM_PASSWORD_LENGTH="$MINIMUM_PASSWORD_LENGTH" \
+ INSECURE="$INSECURE" \
+ AMNESIC="$AMNESIC"
if [ ! "$?" = "0" ]; then
- echo $'Build failed'
- rm -rf $TEMPBUILD_DIR
- exit 1
+ echo $'Build failed'
+ rm -rf $TEMPBUILD_DIR
+ exit 1
fi
EXPECTED_EXTENSION='xz'
if [[ $IMAGE_TYPE == "qemu"* ]]; then
- EXPECTED_EXTENSION='qcow2'
-fi
-if [[ $IMAGE_TYPE == "virtualbox"* ]]; then
- EXPECTED_EXTENSION='vdi'
+ EXPECTED_EXTENSION='qcow2'
fi
shopt -s nullglob
imgfiles=(build/${PROJECT_NAME}*.${EXPECTED_EXTENSION})
if [ ${#imgfiles[@]} -eq 0 ]; then
- echo $'Image was not created'
- rm -rf $TEMPBUILD_DIR
- exit 2
+ echo $'Image was not created'
+ rm -rf $TEMPBUILD_DIR
+ exit 2
fi
# Move images from temporary directory to the current directory
for im in "${image_types[@]}"
do
- no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
- if (( no_of_files > 0 )); then
- mv build/${PROJECT_NAME}*.${im} ${CURR_DIR}/
- sudo chown ${CURR_USER}:${CURR_USER} ${CURR_DIR}/*.${im}
- fi
+ no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
+ if (( no_of_files > 0 )); then
+ mv build/${PROJECT_NAME}*.${im} ${CURR_DIR}/
+ sudo chown ${CURR_USER}:${CURR_USER} ${CURR_DIR}/*.${im}
+ fi
done
# Remove the temporary directory
@@ -432,38 +585,45 @@ rm -rf ${TEMPBUILD_DIR}
cd ${CURR_DIR}
clear
-echo $"
+if [[ $VARIANT != 'meshclient' && $VARIANT != 'meshusb' && $VARIANT != 'mesh' ]]; then
+ echo $"
Image was created.
You will be able to log into it with:
"
-if [[ $IMAGE_TYPE != "virtualbox"* && $IMAGE_TYPE != "qemu"* ]]; then
- echo $" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT
+ if [[ $IMAGE_TYPE != "qemu"* ]]; then
+ echo $" ssh $USERNAME@$DEFAULT_DOMAIN_NAME -p $SSH_PORT
Password: $PASSWORD
"
-else
- if [[ $IMAGE_TYPE != "qemu"* ]]; then
- echo $" Username: $USERNAME
+ else
+ if [[ $IMAGE_TYPE != "qemu"* ]]; then
+ echo $" Username: $USERNAME
Password: $PASSWORD
"
- else
- if [[ $IMAGE_TYPE != "qemu-x86_64"* && $IMAGE_TYPE != "qemu-amd64"* ]]; then
- echo "qemu-system-i386 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
- else
- echo "qemu-system-x86_64 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
- fi
- echo $"
+ else
+ if [[ $IMAGE_TYPE != "qemu-x86_64"* && $IMAGE_TYPE != "qemu-amd64"* ]]; then
+ echo "qemu-system-i386 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
+ else
+ echo "qemu-system-x86_64 -m ${VM_MEMORY} $(ls ${PROJECT_NAME}*.qcow2)"
+ fi
+ echo $"
Username: $USERNAME
Password: $PASSWORD
"
- fi
+ fi
+ fi
+else
+ echo $"
+Image was created.
+"
fi
+
ls -lh ${PROJECT_NAME}*.img ${PROJECT_NAME}*.sig ${PROJECT_NAME}*.xz ${PROJECT_NAME}*.vdi ${PROJECT_NAME}*.qcow2
# Remove the mesh script after use
if [[ $VARIANT == "mesh"* ]]; then
- rm -f $CONFIG_FILENAME
+ rm -f $CONFIG_FILENAME
fi
# record the default login credentials for later use
@@ -471,13 +631,17 @@ echo $"Username: $USERNAME
Password: $PASSWORD" > ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
chmod 600 ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
-if [[ $IMAGE_TYPE != "virtualbox"* && $IMAGE_TYPE != "qemu"* ]]; then
- echo ''
- echo $'You can copy the image to a microSD card with:'
- echo ''
- echo " unxz -k ${PROJECT_NAME}*.img.xz"
- echo " sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
- echo ''
+if [[ $IMAGE_TYPE != "qemu"* ]]; then
+ echo ''
+ if [[ $VARIANT != 'meshclient' && $VARIANT != 'meshusb' ]]; then
+ echo $'You can copy the image to a microSD card with:'
+ else
+ echo $'You can copy the image to a USB drive with:'
+ fi
+ echo ''
+ echo " unxz -k ${PROJECT_NAME}*.img.xz"
+ echo " sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
+ echo ''
fi
exit 0
diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise
index 32486050..5e97449f 100755
--- a/src/freedombone-image-customise
+++ b/src/freedombone-image-customise
@@ -95,48 +95,76 @@ WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
INSECURE='no'
# optional desktop background image for mesh
-MESH_DESKTOP_BACKGROUND_IMAGE=/usr/local/share/${PROJECT_NAME}_mesh_background.png
+MESH_DESKTOP_BACKGROUND_IMAGE=/usr/local/share/${PROJECT_NAME}_mesh_initial_background.png
# The browser application to use
-BROWSER=iceweasel
+BROWSER=midori
MESH_INSTALL_DIR=/var/lib
+# for mesh installs whether to delete all data and generate
+# a new identity at every shutdown/boot
+AMNESIC='no'
+
+# defines the initial keyboard layout
+KEYBOARD_MAP='gb'
+
+# Strings used for setting the username
+MESH_TITLE=$"Freedombone Mesh"
+MESH_SET_USERNAME=$"Welcome to the Freedombone mesh.\n\nThe first thing you will need to do is set a username so that other peers can find you."
+
+# Whether to enable zeronet on the mesh
+ENABLE_ZERONET=
+
+MESH_TEXT_EDITOR='pluma'
+
+PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
+
+function configure_backports {
+ echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> $rootdir/etc/apt/sources.list
+}
+
+function configure_contrib_repo {
+ if ! grep -q "contrib" $rootdir/etc/apt/sources.list; then
+ chroot "$rootdir" /bin/sed -i "s| main| main contrib|g" /etc/apt/sources.list
+ fi
+}
+
enable_eatmydata_override() {
- chroot $rootdir apt-get install --no-install-recommends -y eatmydata
- if [ -x $rootdir/usr/bin/eatmydata ] && \
- [ ! -f $rootdir/etc/apt/apt.conf.d/95debian-edu-install-dpkg-eatmydata ]; then
- echo $"info: Adding apt config to call dpkg via eatmydata"
- printf "#!/bin/sh\nexec eatmydata dpkg \"\$@\"\n" \
- > $rootdir/var/tmp/dpkg-eatmydata
- chmod 755 $rootdir/var/tmp/dpkg-eatmydata
- cat > $rootdir/etc/apt/apt.conf.d/95debian-edu-install-dpkg-eatmydata < $rootdir/var/tmp/dpkg-eatmydata
+ chmod 755 $rootdir/var/tmp/dpkg-eatmydata
+ cat > $rootdir/etc/apt/apt.conf.d/95debian-edu-install-dpkg-eatmydata < etc/apt/sources.list
+ cat < etc/apt/sources.list
deb $NEW_MIRROR $SUITE $COMPONENTS
deb-src $NEW_MIRROR $SUITE $COMPONENTS
@@ -146,12 +174,12 @@ EOF
}
configure_networking() {
- if [[ $DEBIAN_INSTALL_ONLY != "no" ]]; then
- return
- fi
+ if [[ $DEBIAN_INSTALL_ONLY != "no" ]]; then
+ return
+ fi
- if [[ $GENERIC_IMAGE == "no" ]]; then
- echo "# This file describes the network interfaces available on your system
+ if [[ $GENERIC_IMAGE == "no" ]]; then
+ echo "# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
@@ -161,290 +189,315 @@ iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
- address $BOX_IP_ADDRESS
- netmask 255.255.255.0
- gateway $ROUTER_IP_ADDRESS
- dns-nameservers $NAMESERVER1 $NAMESERVER2
- # Example to keep MAC address between reboots
- #hwaddress ether B5:A2:BE:3F:1A:FE
+ address $BOX_IP_ADDRESS
+ netmask 255.255.255.0
+ gateway $ROUTER_IP_ADDRESS
+ dns-nameservers $NAMESERVER1 $NAMESERVER2
+ # Example to keep MAC address between reboots
+ #hwaddress ether B5:A2:BE:3F:1A:FE
- # The secondary network interface
- #auto eth1
- #iface eth1 inet dhcp
+ # The secondary network interface
+ #auto eth1
+ #iface eth1 inet dhcp
- # WiFi Example
- #auto wlan0
- #iface wlan0 inet dhcp
- # wpa-ssid \"essid\"
- # wpa-psk \"password\"
+ # WiFi Example
+ #auto wlan0
+ #iface wlan0 inet dhcp
+ # wpa-ssid \"essid\"
+ # wpa-psk \"password\"
- # Ethernet/RNDIS gadget (g_ether)
- # ... or on host side, usbnet and random hwaddr
- # Note on some boards, usb0 is automaticly setup with an init script
- #iface usb0 inet static
- # address 192.168.7.2
- # netmask 255.255.255.0
- # network 192.168.7.0
- # gateway 192.168.7.1" > $rootdir/etc/network/interfaces
+ # Ethernet/RNDIS gadget (g_ether)
+ # ... or on host side, usbnet and random hwaddr
+ # Note on some boards, usb0 is automaticly setup with an init script
+ #iface usb0 inet static
+ # address 192.168.7.2
+ # netmask 255.255.255.0
+ # network 192.168.7.0
+ # gateway 192.168.7.1" > $rootdir/etc/network/interfaces
- hexarray=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )
- a=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
- b=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
- c=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
- d=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
- e=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
- sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" \
- $rootdir/etc/network/interfaces
- fi
+ hexarray=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )
+ a=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+ b=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+ c=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+ d=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+ e=${hexarray[$RANDOM%16]}${hexarray[$RANDOM%16]}
+ sed -i "s|#hwaddress ether.*|hwaddress ether de:$a:$b:$c:$d:$e|g" \
+ $rootdir/etc/network/interfaces
+ fi
- sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $rootdir/etc/resolv.conf
- sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $rootdir/etc/resolv.conf
+ sed -i "s/nameserver.*/nameserver $NAMESERVER1/g" $rootdir/etc/resolv.conf
+ sed -i "/nameserver $NAMESERVER1/a\nameserver $NAMESERVER2" $rootdir/etc/resolv.conf
- if [[ $VARIANT != "meshclient" && $VARIANT != "meshusb" ]]; then
- # change the motd to show further install instructions
- echo $"
+ if [[ $VARIANT != "meshclient" && $VARIANT != "meshusb" ]]; then
+ # change the motd to show further install instructions
+ echo $"
.---. . .
| | |
|--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
| | (.-' (.-' ( | ( )| | | | )( )| | (.-'
' ' --' --' -' - -' ' ' -' -' -' ' - --'
- Initial base install
+ Initial base install
Your system is not yet installed. To complete the process run the
following commands, then enter your details.
- sudo su
- ${PROJECT_NAME} menuconfig
+ sudo su
+ ${PROJECT_NAME} menuconfig
" > $rootdir/etc/motd
- else
- echo $"
+ else
+ echo $"
.---. . .
| | |
|--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
| | (.-' (.-' ( | ( )| | | | )( )| | (.-'
' ' --' --' -' - -' ' ' -' -' -' ' - --'
- Freedom in the Mesh
+ Freedom in the Mesh
" > $rootdir/etc/motd
- fi
+ fi
}
configure_ssh() {
- sed -i "s/Port .*/Port ${SSH_PORT}/g" $rootdir/etc/ssh/sshd_config
+ if [[ $VARIANT == "mesh" || $VARIANT == "meshclient" || $VARIANT == "meshusb" ]]; then
+ return
+ fi
- if [[ "$SSH_PUBKEY" != "no" ]]; then
- if [ ! -d $rootdir/home/$MY_USERNAME/.ssh ]; then
- mkdir $rootdir/home/$MY_USERNAME/.ssh
- fi
- echo "$SSH_PUBKEY" > $rootdir/home/$MY_USERNAME/.ssh/authorized_keys
- chroot $rootdir chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
- sed -i 's|PasswordAuthentication.*|PasswordAuthentication no|g' $rootdir/etc/ssh/sshd_config
- echo $"Using ssh public key:"
- echo $SSH_PUBKEY
- echo $'Password ssh authentication turned off'
- fi
-}
+ sed -i "s/Port .*/Port ${SSH_PORT}/g" $rootdir/etc/ssh/sshd_config
-admin_user_sudo() {
- echo "$MY_USERNAME ALL=(ALL) ALL" >> $rootdir/etc/sudoers
+ if [[ "$SSH_PUBKEY" != "no" ]]; then
+ if [ ! -d $rootdir/home/$MY_USERNAME/.ssh ]; then
+ mkdir $rootdir/home/$MY_USERNAME/.ssh
+ fi
+ echo "$SSH_PUBKEY" > $rootdir/home/$MY_USERNAME/.ssh/authorized_keys
+ chroot $rootdir /bin/chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
+ sed -i 's|PasswordAuthentication.*|PasswordAuthentication no|g' $rootdir/etc/ssh/sshd_config
+ echo $"Using ssh public key:"
+ echo $SSH_PUBKEY
+ echo $'Password ssh authentication turned off'
+ fi
}
create_generic_image() {
- if [[ $DEBIAN_INSTALL_ONLY != "no" ]]; then
- return
- fi
- if [[ $GENERIC_IMAGE == "no" ]]; then
- return
- fi
- if [ $CONFIG_FILENAME ]; then
- if [[ "$CONFIG_FILENAME" == *"mesh.cfg"* ]]; then
- VARIANT="mesh"
- fi
- fi
+ if [[ $DEBIAN_INSTALL_ONLY != "no" ]]; then
+ return
+ fi
+ if [[ $GENERIC_IMAGE == "no" ]]; then
+ return
+ fi
+ if [ $CONFIG_FILENAME ]; then
+ if [[ "$CONFIG_FILENAME" == *"mesh.cfg"* ]]; then
+ VARIANT="mesh"
+ fi
+ fi
- # Don't install any configuration. This will be a base system
- if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" ]]; then
- CONFIG_FILENAME=
- else
- touch $rootdir/root/.initial_mesh_setup
- fi
+ # Don't install any configuration. This will be a base system
+ if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" ]]; then
+ CONFIG_FILENAME=
+ else
+ touch $rootdir/root/.initial_mesh_setup
+ fi
- # Stick with the existing login for mesh clients
- if [[ $VARIANT == "meshclient" || $VARIANT == "meshusb" ]]; then
- return
- fi
+ # Stick with the existing login for mesh clients
+ if [[ $VARIANT == "meshclient" || $VARIANT == "meshusb" ]]; then
+ return
+ fi
- # The presence of this file indicates that the initial
- # setup has not yet been completed
- touch $rootdir/home/$MY_USERNAME/.initial_setup
- chroot $rootdir chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.initial_setup
- touch $rootdir/root/.initial_setup
+ # The presence of this file indicates that the initial
+ # setup has not yet been completed
+ touch $rootdir/home/$MY_USERNAME/.initial_setup
+ chroot $rootdir /bin/chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.initial_setup
+ touch $rootdir/root/.initial_setup
- cat >> $rootdir/home/$MY_USERNAME/.bashrc <> $rootdir/home/$MY_USERNAME/.bashrc <> $rootdir/root/.bashrc
- echo 'if [ -f ~/.initial_setup ]; then' >> $rootdir/root/.bashrc
- echo ' if [ -f ~/login.txt ]; then' >> $rootdir/root/.bashrc
- echo ' NEW_USER_PASSWORD=$(printf `cat ~/login.txt`)' >> $rootdir/root/.bashrc
- echo ' else' >> $rootdir/root/.bashrc
- echo ' ENTROPY=$(cat /proc/sys/kernel/random/entropy_avail)' >> $rootdir/root/.bashrc
- echo ' if [ $ENTROPY -lt 500 ]; then' >> $rootdir/root/.bashrc
- ENTROPY_MESSAGE1=$'Initial setup process'
- ENTROPY_MESSAGE2=$'Password Generation'
- ENTROPY_MESSAGE3=$'WARNING: The entropy available on this system is too low to generate a password.\n\nThe installation process cannot continue.'
- echo " dialog --backtitle \"${ENTROPY_MESSAGE1}\" --title \"${ENTROPY_MESSAGE2}\" --msgbox \"${ENTROPY_MESSAGE3}\" 8 50" >> $rootdir/root/.bashrc
- echo ' exit' >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo -n ' NEW_USER_PASSWORD="$(openssl rand -base64 30 | cut -c1-' >> $rootdir/root/.bashrc
- echo "${MINIMUM_PASSWORD_LENGTH})\"" >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo ' echo "${NEW_USER_PASSWORD}" > ~/login.txt' >> $rootdir/root/.bashrc
+ echo "MY_USERNAME=${MY_USERNAME}" >> $rootdir/root/.bashrc
+ echo "SSH_PORT=${SSH_PORT}" >> $rootdir/root/.bashrc
+ echo '# initial setup of the system' >> $rootdir/root/.bashrc
+ echo 'if [ -f ~/.initial_setup ]; then' >> $rootdir/root/.bashrc
+ echo ' if [ -f ~/login.txt ]; then' >> $rootdir/root/.bashrc
+ echo ' NEW_USER_PASSWORD=$(printf `cat ~/login.txt`)' >> $rootdir/root/.bashrc
+ echo ' else' >> $rootdir/root/.bashrc
+ echo ' ENTROPY=$(cat /proc/sys/kernel/random/entropy_avail)' >> $rootdir/root/.bashrc
+ echo ' if [ $ENTROPY -lt 500 ]; then' >> $rootdir/root/.bashrc
+ ENTROPY_MESSAGE1=$'Initial setup process'
+ ENTROPY_MESSAGE2=$'Password Generation'
+ ENTROPY_MESSAGE3=$'WARNING: The entropy available on this system is too low to generate a password.\n\nThe installation process cannot continue.'
+ echo " dialog --backtitle \"${ENTROPY_MESSAGE1}\" --title \"${ENTROPY_MESSAGE2}\" --msgbox \"${ENTROPY_MESSAGE3}\" 8 50" >> $rootdir/root/.bashrc
+ echo ' exit' >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo -n ' NEW_USER_PASSWORD="$(openssl rand -base64 30 | cut -c1-' >> $rootdir/root/.bashrc
+ echo "${DEFAULT_PASSWORD_LENGTH})\"" >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo ' echo "${NEW_USER_PASSWORD}" > ~/login.txt' >> $rootdir/root/.bashrc
- echo ' clear' >> $rootdir/root/.bashrc
- echo ' echo ""' >> $rootdir/root/.bashrc
- NEW_LOGIN_PASSWORD_MESSAGE1=$'Your new login password is:'
- NEW_LOGIN_PASSWORD_MESSAGE2=$'Use it whenever you wish to ssh into this system.'
- NEW_LOGIN_PASSWORD_MESSAGE3=$'IMPORTANT: Please take a moment to enter the above password into a\npassword manager or write it down somewhere.'
- PRESS_KEY_MESSAGE=$'Press any key to continue...'
- echo " echo \"${NEW_LOGIN_PASSWORD_MESSAGE1}\"" >> $rootdir/root/.bashrc
- echo ' echo ""' >> $rootdir/root/.bashrc
- echo ' toilet "${NEW_USER_PASSWORD}"' >> $rootdir/root/.bashrc
- echo ' echo ""' >> $rootdir/root/.bashrc
- echo ' echo " ${NEW_USER_PASSWORD}"' >> $rootdir/root/.bashrc
- echo ' echo ""' >> $rootdir/root/.bashrc
- echo " echo \"${NEW_LOGIN_PASSWORD_MESSAGE2}\"" >> $rootdir/root/.bashrc
- echo ' echo ""' >> $rootdir/root/.bashrc
- echo " echo \"${NEW_LOGIN_PASSWORD_MESSAGE3}\"" >> $rootdir/root/.bashrc
- echo ' echo ""' >> $rootdir/root/.bashrc
- echo " read -n1 -r -p \"${PRESS_KEY_MESSAGE}\" key" >> $rootdir/root/.bashrc
+ echo ' clear' >> $rootdir/root/.bashrc
+ echo ' echo ""' >> $rootdir/root/.bashrc
+ NEW_LOGIN_PASSWORD_MESSAGE1=$'Your new login password is:'
+ NEW_LOGIN_PASSWORD_MESSAGE2=$'Use it whenever you wish to ssh into this system.'
+ NEW_LOGIN_PASSWORD_MESSAGE3=$'IMPORTANT: Please take a moment to enter the above password into a\npassword manager or write it down somewhere.'
+ PRESS_KEY_MESSAGE=$'Press any key to continue...'
+ echo " echo \"${NEW_LOGIN_PASSWORD_MESSAGE1}\"" >> $rootdir/root/.bashrc
+ echo ' echo ""' >> $rootdir/root/.bashrc
+ echo ' echo " ${NEW_USER_PASSWORD}"' >> $rootdir/root/.bashrc
+ echo ' echo ""' >> $rootdir/root/.bashrc
+ echo " echo \"${NEW_LOGIN_PASSWORD_MESSAGE2}\"" >> $rootdir/root/.bashrc
+ echo ' echo ""' >> $rootdir/root/.bashrc
+ echo " echo \"${NEW_LOGIN_PASSWORD_MESSAGE3}\"" >> $rootdir/root/.bashrc
+ echo ' echo ""' >> $rootdir/root/.bashrc
+ echo " read -n1 -r -p \"${PRESS_KEY_MESSAGE}\" key" >> $rootdir/root/.bashrc
- # change the password for the admin user
- echo -n " echo \"${MY_USERNAME}:" >> $rootdir/root/.bashrc
- echo '$(printf `cat ~/login.txt`)"|chpasswd' >> $rootdir/root/.bashrc
+ # change the password for the admin user
+ echo -n " echo \"${MY_USERNAME}:" >> $rootdir/root/.bashrc
+ echo '$(printf `cat ~/login.txt`)"|chpasswd' >> $rootdir/root/.bashrc
- # update before continuing
- echo " cd /root/${PROJECT_NAME}" >> $rootdir/root/.bashrc
- echo " git stash" >> $rootdir/root/.bashrc
- echo " git pull" >> $rootdir/root/.bashrc
- echo " make install" >> $rootdir/root/.bashrc
+ # update before continuing
+ echo " cd /root/${PROJECT_NAME}" >> $rootdir/root/.bashrc
+ echo " git stash" >> $rootdir/root/.bashrc
+ echo " git pull" >> $rootdir/root/.bashrc
+ echo " make install" >> $rootdir/root/.bashrc
- if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
- if [[ $ONION_ONLY == "no" ]]; then
- if [[ $MINIMAL_INSTALL == "no" ]]; then
- echo " ${PROJECT_NAME} menuconfig-full" >> $rootdir/root/.bashrc
- else
- echo " ${PROJECT_NAME} menuconfig" >> $rootdir/root/.bashrc
- fi
- else
- echo " ${PROJECT_NAME} menuconfig-onion" >> $rootdir/root/.bashrc
- fi
- else
- echo " echo ''" >> $rootdir/root/.bashrc
- fi
- echo ' if [ "$?" = "0" ]; then' >> $rootdir/root/.bashrc
- echo " if [ -f ~/${PROJECT_NAME}-completed.txt ]; then" >> $rootdir/root/.bashrc
- # Remove the initial setup files
- echo ' rm /root/.initial_setup' >> $rootdir/root/.bashrc
- echo " rm /home/${MY_USERNAME}/.initial_setup" >> $rootdir/root/.bashrc
- echo " touch /root/.remove_${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
- echo ' shred -zu ~/login.txt' >> $rootdir/root/.bashrc
- END_MESSAGE1=$'Congratulations!'
- if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
- END_MESSAGE2=$'\nYour system has now installed\n\nThe onion ssh service is at $SSH_ONION_HOSTNAME\n\nPress any key to reboot and begin using it'
- echo ' SSH_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_ssh/hostname)' >> $rootdir/root/.bashrc
- else
- END_MESSAGE2=$'\nYour system has now installed\n\nPress any key to reboot and begin using it'
- fi
- echo " dialog --title '$END_MESSAGE1' --msgbox \"$END_MESSAGE2\" 9 50" >> $rootdir/root/.bashrc
- echo ' reboot' >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo ' else' >> $rootdir/root/.bashrc
- echo ' key=' >> $rootdir/root/.bashrc
- echo ' while [[ $key != "x" ]]; do' >> $rootdir/root/.bashrc
- INSTALL_FAIL_MESSAGE=$"Install failed. Press x to continue..."
- echo " read -n1 -r -p \"${INSTALL_FAIL_MESSAGE}\" key" >> $rootdir/root/.bashrc
- echo ' done' >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo ' exit' >> $rootdir/root/.bashrc
- echo 'else' >> $rootdir/root/.bashrc
- echo ' # Remove default account after install' >> $rootdir/root/.bashrc
- echo " if [ -f /root/.remove_${GENERIC_IMAGE_USERNAME} ]; then" >> $rootdir/root/.bashrc
- echo " if [ -d /home/${GENERIC_IMAGE_USERNAME} ]; then" >> $rootdir/root/.bashrc
- echo " userdel -r ${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
- echo " if [ -d /home/${GENERIC_IMAGE_USERNAME} ]; then" >> $rootdir/root/.bashrc
- echo " rm -rf /home/${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
- echo " rm /root/.remove_${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo ' fi' >> $rootdir/root/.bashrc
- echo 'fi' >> $rootdir/root/.bashrc
+ if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
+ if [[ $ONION_ONLY == "no" ]]; then
+ if [[ $MINIMAL_INSTALL == "no" ]]; then
+ echo " ${PROJECT_NAME} menuconfig-full" >> $rootdir/root/.bashrc
+ else
+ echo " ${PROJECT_NAME} menuconfig" >> $rootdir/root/.bashrc
+ fi
+ else
+ echo " ${PROJECT_NAME} menuconfig-onion" >> $rootdir/root/.bashrc
+ fi
+ else
+ echo " echo ''" >> $rootdir/root/.bashrc
+ fi
+ echo ' if [ "$?" = "0" ]; then' >> $rootdir/root/.bashrc
+ echo " if [ -f ~/${PROJECT_NAME}-completed.txt ]; then" >> $rootdir/root/.bashrc
+ # Remove the initial setup files
+ echo ' rm /root/.initial_setup' >> $rootdir/root/.bashrc
+ echo ' rm /home/fbone/.initial_setup' >> $rootdir/root/.bashrc
+ echo " touch /root/.remove_${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
+ echo ' shred -zu ~/login.txt' >> $rootdir/root/.bashrc
+ END_MESSAGE1=$'Congratulations!'
+ if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
+ END_MESSAGE2=$'\nYour system has now installed\n\nThe onion ssh service is at:\n\n ${SSH_ONION_HOSTNAME}\n\nTo copy the above address hold down the shift key and double left click on it, then right click and select "copy".\n\nPress any key to reboot and begin using the system'
+ echo ' SSH_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_ssh/hostname)' >> $rootdir/root/.bashrc
+
+ echo ' if [ ${#SSH_ONION_HOSTNAME} -lt 2 ]; then' >> $rootdir/root/.bashrc
+ echo ' exit 62392' >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ END_MESSAGE_HEIGHT=16
+ else
+ END_MESSAGE2=$'\nYour system has now installed\n\nPress any key to reboot and begin using it'
+ END_MESSAGE_HEIGHT=12
+ fi
+ echo " if [ -f /root/${PROJECT_NAME}-wifi.cfg ]; then" >> $rootdir/root/.bashrc
+ echo " echo '[Unit]' > /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'Description=WifiStartup (Start wifi networking)' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'After=syslog.target' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'After=network.target' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'After=remote-fs.target' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo '' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo '[Service]' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'Type=simple' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'User=root' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'Group=root' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'WorkingDirectory=/root' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'ExecStart=/usr/local/bin/freedombone-wifi --wait 5 2> /dev/null' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo '' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo '[Install]' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " echo 'WantedBy=multi-user.target' >> /etc/systemd/system/wifistart.service" >> $rootdir/root/.bashrc
+ echo " systemctl enable wifistart" >> $rootdir/root/.bashrc
+ echo " systemctl daemon-reload" >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo " dialog --title '$END_MESSAGE1' --msgbox \"$END_MESSAGE2\" ${END_MESSAGE_HEIGHT} 60" >> $rootdir/root/.bashrc
+ echo ' reboot' >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo ' else' >> $rootdir/root/.bashrc
+ echo ' key=' >> $rootdir/root/.bashrc
+ echo ' while [[ $key != "x" ]]; do' >> $rootdir/root/.bashrc
+ INSTALL_FAIL_MESSAGE=$"Install failed. Press x to continue..."
+ echo " read -n1 -r -p \"${INSTALL_FAIL_MESSAGE}\" key" >> $rootdir/root/.bashrc
+ echo ' done' >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo ' exit' >> $rootdir/root/.bashrc
+ echo 'else' >> $rootdir/root/.bashrc
+ echo ' # Remove default account after install' >> $rootdir/root/.bashrc
+ echo " if [ -f /root/.remove_${GENERIC_IMAGE_USERNAME} ]; then" >> $rootdir/root/.bashrc
+ echo " if [ -d /home/${GENERIC_IMAGE_USERNAME} ]; then" >> $rootdir/root/.bashrc
+ echo " userdel -r ${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
+ echo " if [ -d /home/${GENERIC_IMAGE_USERNAME} ]; then" >> $rootdir/root/.bashrc
+ echo " rm -rf /home/${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
+ echo " rm /root/.remove_${GENERIC_IMAGE_USERNAME}" >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo ' fi' >> $rootdir/root/.bashrc
+ echo 'fi' >> $rootdir/root/.bashrc
}
continue_installation() {
- # If a configuration file exists then run with it
- # otherwise the interactive installer can be used
- # This is equivalent to installing freedombox-setup on freedombox
- if [ $CONFIG_FILENAME ]; then
- if [ ${#CONFIG_FILENAME} -gt 2 ]; then
- cp $CONFIG_FILENAME $rootdir/root/$PROJECT_NAME.cfg
- cat $rootdir/root/$PROJECT_NAME.cfg
- chroot "$rootdir" su -c "$PROJECT_NAME -c /root/$PROJECT_NAME.cfg" - root
- fi
- fi
+ # If a configuration file exists then run with it
+ # otherwise the interactive installer can be used
+ # This is equivalent to installing freedombox-setup on freedombox
+ if [ $CONFIG_FILENAME ]; then
+ if [ ${#CONFIG_FILENAME} -gt 2 ]; then
+ cp $CONFIG_FILENAME $rootdir/root/$PROJECT_NAME.cfg
+ cat $rootdir/root/$PROJECT_NAME.cfg
+ chroot "$rootdir" su -c "$PROJECT_NAME -c /root/$PROJECT_NAME.cfg" - root
+ fi
+ fi
}
atheros_wifi() {
- firmware_filename="open-ath9k-htc-firmware_1.3-1_all.deb"
- firmware_hash='5fea58ffefdf0ef15b504db7fbe3bc078c03e0d927bba64085e4b6f2546102f5'
+ firmware_filename="open-ath9k-htc-firmware_1.3-1_all.deb"
+ firmware_hash='5fea58ffefdf0ef15b504db7fbe3bc078c03e0d927bba64085e4b6f2546102f5'
- firmware_url="http://us.archive.trisquel.info/trisquel/pool/main/o/open-ath9k-htc-firmware/$firmware_filename"
- firmware_tempfile="/tmp/$firmware_filename"
- wget "$firmware_url" -O "$rootdir$firmware_tempfile"
- downloaded_firmware_hash=$(sha256sum "$rootdir$firmware_tempfile" | awk -F ' ' '{print $1}')
- if [[ "$downloaded_firmware_hash" == "$firmware_hash" ]]; then
- chroot "$rootdir" dpkg -i "$firmware_tempfile"
- else
- echo 'WARNING: Atheros Wifi firmware hash does not match. The driver has not been installed.'
- fi
+ firmware_url="http://us.archive.trisquel.info/trisquel/pool/main/o/open-ath9k-htc-firmware/$firmware_filename"
+ firmware_tempfile="/tmp/$firmware_filename"
+ wget "$firmware_url" -O "$rootdir$firmware_tempfile"
+ downloaded_firmware_hash=$(sha256sum "$rootdir$firmware_tempfile" | awk -F ' ' '{print $1}')
+ if [[ "$downloaded_firmware_hash" == "$firmware_hash" ]]; then
+ chroot "$rootdir" dpkg -i "$firmware_tempfile"
+ else
+ echo 'WARNING: Atheros Wifi firmware hash does not match. The driver has not been installed.'
+ fi
}
configure_wifi() {
- if [[ $VARIANT == "mesh" || $VARIANT == "meshclient" || $VARIANT == "meshusb" ]]; then
- return
- fi
+ if [[ $VARIANT == "mesh"* ]]; then
+ return
+ fi
- if [ -f $WIFI_NETWORKS_FILE ]; then
- chroot "$rootdir" ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE --networks $WIFI_NETWORKS_FILE
- return
- fi
+ if [ -f $WIFI_NETWORKS_FILE ]; then
+ chroot "$rootdir" ${PROJECT_NAME}-wifi --networks $WIFI_NETWORKS_FILE
+ return
+ fi
- if [[ $WIFI_TYPE != 'none' ]]; then
- if [ ${#WIFI_PASSPHRASE} -lt 2 ]; then
- return
- fi
- chroot "$rootdir" ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE -p $WIFI_PASSPHRASE --hotspot $WIFI_HOTSPOT
- else
- chroot "$rootdir" ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE --hotspot $WIFI_HOTSPOT
- fi
+ if [[ $WIFI_TYPE != 'none' ]]; then
+ if [ ${#WIFI_PASSPHRASE} -lt 2 ]; then
+ return
+ fi
+ chroot "$rootdir" ${PROJECT_NAME}-wifi -s $WIFI_SSID -t $WIFI_TYPE -p $WIFI_PASSPHRASE --hotspot $WIFI_HOTSPOT
+ else
+ chroot "$rootdir" ${PROJECT_NAME}-wifi -s $WIFI_SSID -t $WIFI_TYPE --hotspot $WIFI_HOTSPOT
+ fi
}
##############################################################################
@@ -491,837 +544,406 @@ ZERONET_ID_COMMIT=
# Directory where source code is downloaded and compiled
INSTALL_DIR=$HOME/build
-function mesh_avahi {
- chroot "$rootdir" apt-get -y install avahi-utils avahi-autoipd avahi-dnsconfd
-
- decarray=( 1 2 3 4 5 6 7 8 9 0 )
- PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
- sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" $rootdir/etc/avahi/avahi-daemon.conf
-
- if [ ! -d $rootdir/etc/avahi/services ]; then
- mkdir -p $rootdir/etc/avahi/services
- fi
-
- # remove an avahi service which isn't used
- if [ -f $rootdir/etc/avahi/services/udisks.service ]; then
- rm $rootdir/etc/avahi/services/udisks.service
- fi
-
- # Add an ssh service
- echo '' > $rootdir/etc/avahi/services/ssh.service
- echo '' >> $rootdir/etc/avahi/services/ssh.service
- echo '' >> $rootdir/etc/avahi/services/ssh.service
- echo ' %h SSH ' >> $rootdir/etc/avahi/services/ssh.service
- echo ' ' >> $rootdir/etc/avahi/services/ssh.service
- echo ' _ssh._tcp ' >> $rootdir/etc/avahi/services/ssh.service
- echo " $SSH_PORT " >> $rootdir/etc/avahi/services/ssh.service
- echo ' ' >> $rootdir/etc/avahi/services/ssh.service
- echo ' ' >> $rootdir/etc/avahi/services/ssh.service
-
- # keep the daemon running
- WATCHDOG_SCRIPT_NAME="keepon"
- echo '' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo '# keep avahi daemon running' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo 'AVAHI_RUNNING=$(pgrep avahi-daemon > /dev/null && echo Running)' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo 'if [ ! $AVAHI_RUNNING ]; then' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo ' systemctl start avahi-daemon' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo ' echo -n $CURRENT_DATE >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo ' echo " Avahi daemon restarted" >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo 'fi' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- chmod +x $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
-}
-
-function mesh_batman {
- chroot "$rootdir" apt-get -y install iproute bridge-utils libnetfilter-conntrack3 batctl
- chroot "$rootdir" apt-get -y install python-dev libevent-dev ebtables python-pip git
- chroot "$rootdir" apt-get -y install wireless-tools rfkill
-
- if ! grep -q "batman_adv" $rootdir/etc/modules; then
- echo 'batman_adv' >> $rootdir/etc/modules
- fi
-
- BATMAN_SCRIPT=$rootdir/var/lib/batman
-
- if [ -f /usr/local/bin/${PROJECT_NAME}-mesh-batman ]; then
- cp /usr/local/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
- else
- cp /usr/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
- fi
-
- BATMAN_DAEMON=$rootdir/etc/systemd/system/batman.service
- echo '[Unit]' > $BATMAN_DAEMON
- echo 'Description=B.A.T.M.A.N. Advanced' >> $BATMAN_DAEMON
- echo 'After=network.target' >> $BATMAN_DAEMON
- echo '' >> $BATMAN_DAEMON
- echo '[Service]' >> $BATMAN_DAEMON
- echo 'RemainAfterExit=yes' >> $BATMAN_DAEMON
- echo "ExecStart=/var/lib/batman start" >> $BATMAN_DAEMON
- echo "ExecStop=/var/lib/batman stop" >> $BATMAN_DAEMON
- echo 'Restart=on-failure' >> $BATMAN_DAEMON
- echo 'SuccessExitStatus=3 4' >> $BATMAN_DAEMON
- echo 'RestartForceExitStatus=3 4' >> $BATMAN_DAEMON
- echo '' >> $BATMAN_DAEMON
- echo '# Allow time for the server to start/stop' >> $BATMAN_DAEMON
- echo 'TimeoutSec=300' >> $BATMAN_DAEMON
- echo '' >> $BATMAN_DAEMON
- echo '[Install]' >> $BATMAN_DAEMON
- echo 'WantedBy=multi-user.target' >> $BATMAN_DAEMON
- chroot "$rootdir" systemctl enable batman
-}
-
-function mesh_firewall {
- FIREWALL_FILENAME=${rootdir}/etc/systemd/system/meshfirewall.service
- MESH_FIREWALL_SCRIPT=${rootdir}/usr/bin/mesh-firewall
-
- echo '#!/bin/bash' > $MESH_FIREWALL_SCRIPT
- echo 'iptables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -F' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -F' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -t nat -F' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -t nat -F' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -X' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -X' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -i lo -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Make sure incoming tcp connections are SYN packets' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Drop packets with incoming fragments' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -f -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Drop bogons' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Incoming malformed NULL packets:' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -p tcp --dport $TOX_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- chmod +x $MESH_FIREWALL_SCRIPT
-
- echo '[Unit]' > $FIREWALL_FILENAME
- echo 'Description=Mesh Firewall' >> $FIREWALL_FILENAME
- echo '' >> $FIREWALL_FILENAME
- echo '[Service]' >> $FIREWALL_FILENAME
- echo 'Type=oneshot' >> $FIREWALL_FILENAME
- echo 'ExecStart=/usr/bin/mesh-firewall' >> $FIREWALL_FILENAME
- echo 'RemainAfterExit=no' >> $FIREWALL_FILENAME
- echo '' >> $FIREWALL_FILENAME
- echo 'TimeoutSec=30' >> $FIREWALL_FILENAME
- echo '' >> $FIREWALL_FILENAME
- echo '[Install]' >> $FIREWALL_FILENAME
- echo 'WantedBy=multi-user.target' >> $FIREWALL_FILENAME
- chroot "$rootdir" systemctl enable meshfirewall
-}
-
-function mesh_tox_node {
- # obtain commits from the main file
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXCORE_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- TOXCORE_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
- if [ ${#TOXCORE_COMMIT_MAIN} -gt 10 ]; then
- TOXCORE_COMMIT=$TOXCORE_COMMIT_MAIN
- fi
- if [ ! $TOXCORE_COMMIT ]; then
- echo $'No Tox commit was specified'
- exit 76325
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOX_PORT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOX_PORT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- fi
- if [ ${#TOX_PORT_MAIN} -gt 2 ]; then
- TOX_PORT=$TOX_PORT_MAIN
- fi
- if [ ! $TOX_PORT ]; then
- echo $'No Tox port was specified'
- exit 32856
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXCORE_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- TOXCORE_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#TOXCORE_REPO_MAIN} -gt 10 ]; then
- TOXCORE_REPO=$TOXCORE_REPO_MAIN
- fi
- if [ ! $TOXCORE_REPO ]; then
- echo $'No Tox repo was specified'
- exit 16865
- fi
-
- chroot "$rootdir" apt-get -y install build-essential libtool autotools-dev
- chroot "$rootdir" apt-get -y install automake checkinstall check git yasm
- chroot "$rootdir" apt-get -y install libsodium13 libsodium-dev libcap2-bin
- chroot "$rootdir" apt-get -y install libconfig9 libconfig-dev
-
-
- TEMP_SCRIPT_NAME=fbtmp37272.sh
- TEMP_SCRIPT=/tmp/$TEMP_SCRIPT_NAME
- echo '#!/bin/bash' > $TEMP_SCRIPT
- echo "mkdir -p $INSTALL_DIR" >> $TEMP_SCRIPT
- echo "git clone $TOXCORE_REPO $INSTALL_DIR/toxcore" >> $TEMP_SCRIPT
- echo "cd $INSTALL_DIR/toxcore" >> $TEMP_SCRIPT
- echo "git checkout $TOXCORE_COMMIT -b $TOXCORE_COMMIT" >> $TEMP_SCRIPT
- echo 'autoreconf -i' >> $TEMP_SCRIPT
- echo './configure --enable-daemon --disable-av' >> $TEMP_SCRIPT
- echo 'make' >> $TEMP_SCRIPT
- echo 'if [ ! "$?" = "0" ]; then' >> $TEMP_SCRIPT
- echo ' exit 1' >> $TEMP_SCRIPT
- echo 'fi' >> $TEMP_SCRIPT
- echo 'make install' >> $TEMP_SCRIPT
- echo 'cp /usr/local/lib/libtoxcore* /usr/lib/' >> $TEMP_SCRIPT
- echo "cp $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service /etc/systemd/system/" >> $TEMP_SCRIPT
- echo "sed -i 's|ExecStart=.*|ExecStart=/usr/local/bin/tox-bootstrapd --config /etc/tox-bootstrapd.conf|g' /etc/systemd/system/tox-bootstrapd.service" >> $TEMP_SCRIPT
- echo 'systemctl enable tox-bootstrapd.service' >> $TEMP_SCRIPT
- echo 'exit 0' >> $TEMP_SCRIPT
- chmod +x $TEMP_SCRIPT
- cp $TEMP_SCRIPT $rootdir/root/
-
- SECONDS=0
- chroot "$rootdir" /root/$TEMP_SCRIPT_NAME
- if [ ! "$?" = "0" ]; then
- duration=$SECONDS
- echo $"Toxcore compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
- echo $'Unable to make toxcore'
- rm $TEMP_SCRIPT
- exit 73835
- fi
- duration=$SECONDS
- echo $"Toxcore compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
- rm $TEMP_SCRIPT
-
- if [ ! -f $rootdir/usr/local/bin/tox-bootstrapd ]; then
- echo $"File not found /usr/local/bin/tox-bootstrapd"
- exit 37825
- fi
-
- chroot "$rootdir" useradd --home-dir /var/lib/tox-bootstrapd --create-home --system --shell /sbin/nologin --comment $"Account to run Tox's DHT bootstrap daemon" --user-group tox-bootstrapd
- chroot "$rootdir" chmod 700 /var/lib/tox-bootstrapd
-
- # remove Maildir
- if [ -d $rootdir/var/lib/tox-bootstrapd/Maildir ]; then
- rm -rf $rootdir/var/lib/tox-bootstrapd/Maildir
- fi
-
- # create configuration file
- TOX_BOOTSTRAP_CONFIG=$rootdir/etc/tox-bootstrapd.conf
- echo "port = $TOX_PORT" > $TOX_BOOTSTRAP_CONFIG
- echo 'keys_file_path = "/var/lib/tox-bootstrapd/keys"' >> $TOX_BOOTSTRAP_CONFIG
- echo 'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_ipv6 = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_ipv4_fallback = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_lan_discovery = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_tcp_relay = true' >> $TOX_BOOTSTRAP_CONFIG
- echo "tcp_relay_ports = [443, 3389, $TOX_PORT]" >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_motd = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'motd = "tox-bootstrapd"' >> $TOX_BOOTSTRAP_CONFIG
-
- if [ $TOX_NODES ]; then
- echo 'bootstrap_nodes = (' >> $TOX_BOOTSTRAP_CONFIG
- toxcount=0
- while [ "x${TOX_NODES[toxcount]}" != "x" ]
- do
- toxval_ipv4=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $1}')
- toxval_ipv6=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $2}')
- toxval_port=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $3}')
- toxval_pubkey=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $4}')
- toxval_maintainer=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $5}')
- echo "{ // $toxval_maintainer" >> $TOX_BOOTSTRAP_CONFIG
- if [[ $toxval_ipv6 != 'NONE' ]]; then
- echo " address = \"$toxval_ipv6\"" >> $TOX_BOOTSTRAP_CONFIG
- else
- echo " address = \"$toxval_ipv4\"" >> $TOX_BOOTSTRAP_CONFIG
- fi
- echo " port = $toxval_port" >> $TOX_BOOTSTRAP_CONFIG
- echo " public_key = \"$toxval_pubkey\"" >> $TOX_BOOTSTRAP_CONFIG
- toxcount=$(( $toxcount + 1 ))
- if [ "x${TOX_NODES[toxcount]}" != "x" ]; then
- echo "}," >> $TOX_BOOTSTRAP_CONFIG
- else
- echo "}" >> $TOX_BOOTSTRAP_CONFIG
- fi
- done
- echo ')' >> $TOX_BOOTSTRAP_CONFIG
- fi
-}
-
-function mesh_tox_avahi {
- if [ ! -d $rootdir/etc/avahi ]; then
- echo $'tox_avahi: avahi is not installed'
- exit 87359
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXID_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- TOXID_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#TOXID_REPO_MAIN} -gt 5 ]; then
- TOXID_REPO=$TOXID_REPO_MAIN
- fi
- if [ ! $TOXID_REPO ]; then
- echo $'No ToxID repo was specified'
- exit 78252
- fi
-
- TEMP_SCRIPT_NAME=fbtmp5328252.sh
- TEMP_SCRIPT=/tmp/$TEMP_SCRIPT_NAME
- echo '#!/bin/bash' > $TEMP_SCRIPT
- echo "mkdir -p $INSTALL_DIR" >> $TEMP_SCRIPT
- echo "git clone $TOXID_REPO $INSTALL_DIR/toxid" >> $TEMP_SCRIPT
- echo "if [ ! -d $INSTALL_DIR/toxid ]; then" >> $TEMP_SCRIPT
- echo ' exit 1' >> $TEMP_SCRIPT
- echo 'fi' >> $TEMP_SCRIPT
- echo "cd $INSTALL_DIR/toxid" >> $TEMP_SCRIPT
- echo "make" >> $TEMP_SCRIPT
- echo 'if [ ! "$?" = "0" ]; then' >> $TEMP_SCRIPT
- echo ' exit 2' >> $TEMP_SCRIPT
- echo 'fi' >> $TEMP_SCRIPT
- echo 'make install' >> $TEMP_SCRIPT
- echo 'if [ ! -f /usr/local/bin/toxavahi ]; then' >> $TEMP_SCRIPT
- echo ' exit 3' >> $TEMP_SCRIPT
- echo 'fi' >> $TEMP_SCRIPT
- echo 'toxavahi' >> $TEMP_SCRIPT
- echo 'echo "* * * * * root /usr/local/bin/toxavahi > /dev/null" >> /etc/crontab' >> $TEMP_SCRIPT
- echo 'systemctl restart avahi-daemon' >> $TEMP_SCRIPT
- echo 'exit 0' >> $TEMP_SCRIPT
- chmod +x $TEMP_SCRIPT
- cp $TEMP_SCRIPT $rootdir/root/
-
- chroot "$rootdir" /root/$TEMP_SCRIPT_NAME
- if [ ! "$?" = "0" ]; then
- echo $"Unable to install toxid, returned $?"
- rm $TEMP_SCRIPT
- exit 62835
- fi
- rm $TEMP_SCRIPT
-}
-
-function mesh_tox_client {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- fi
-
- # obtain commits from the main file
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- TOXIC_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
- if [ ${#TOXIC_COMMIT_MAIN} -gt 10 ]; then
- TOXIC_COMMIT=$TOXIC_COMMIT_MAIN
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- TOXIC_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#TOXIC_REPO_MAIN} -gt 5 ]; then
- TOXIC_REPO=$TOXIC_REPO_MAIN
- fi
-
- chroot "$rootdir" apt-get -y install libncursesw5-dev libconfig-dev libqrencode-dev
- chroot "$rootdir" apt-get -y install libcurl4-openssl-dev libvpx-dev libopenal-dev
-
- TEMP_SCRIPT_NAME=fbtmp728353.sh
- TEMP_SCRIPT=/tmp/$TEMP_SCRIPT_NAME
- echo '#!/bin/bash' > $TEMP_SCRIPT
- echo "mkdir -p $INSTALL_DIR" >> $TEMP_SCRIPT
- echo "git clone $TOXIC_REPO $INSTALL_DIR/toxic" >> $TEMP_SCRIPT
- echo "cd $INSTALL_DIR/toxic" >> $TEMP_SCRIPT
- echo "git checkout $TOXIC_COMMIT -b $TOXIC_COMMIT" >> $TEMP_SCRIPT
- echo 'make' >> $TEMP_SCRIPT
- echo 'if [ ! "$?" = "0" ]; then' >> $TEMP_SCRIPT
- echo ' exit 1' >> $TEMP_SCRIPT
- echo 'fi' >> $TEMP_SCRIPT
- echo 'make install' >> $TEMP_SCRIPT
- echo 'exit 0' >> $TEMP_SCRIPT
- chmod +x $TEMP_SCRIPT
- cp $TEMP_SCRIPT $rootdir/root/
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- fi
-
- SECONDS=0
- chroot "$rootdir" /root/$TEMP_SCRIPT_NAME
- if [ ! "$?" = "0" ]; then
- duration=$SECONDS
- echo $"Toxic client compile failed at $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
- echo $'Unable to make tox client'
- rm $TEMP_SCRIPT
- exit 74872
- fi
- rm $TEMP_SCRIPT
- if [ ! -f $rootdir$TOXIC_FILE ]; then
- echo $"Tox client was not installed to $TOXIC_FILE"
- exit 63278
- fi
- duration=$SECONDS
- echo $"Toxic client compile $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
-}
-
-function mesh_zeronet {
- # obtain commits from the main file
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- ZERONET_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
- if [ ${#ZERONET_COMMIT_MAIN} -gt 10 ]; then
- ZERONET_COMMIT=$ZERONET_COMMIT_MAIN
- fi
- if [ ! $ZERONET_COMMIT ]; then
- echo $'No Tox commit was specified'
- exit 37046
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- ZERONET_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#ZERONET_REPO_MAIN} -gt 5 ]; then
- ZERONET_REPO=$ZERONET_REPO_MAIN
- fi
- if [ ! $ZERONET_REPO ]; then
- echo $'No Tox commit was specified'
- exit 37046
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_PORT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- else
- ZERONET_PORT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- fi
- if [ ${#ZERONET_PORT_MAIN} -gt 1 ]; then
- ZERONET_PORT=$ZERONET_PORT_MAIN
- fi
- if [ ! $ZERONET_PORT ]; then
- echo $'No zeronet port was specified'
- exit 67433
- fi
-
- chroot "$rootdir" apt-get -y install python python-msgpack python-gevent
- chroot "$rootdir" apt-get -y install python-pip bittornado
- chroot "$rootdir" pip install msgpack-python --upgrade
-
- chroot "$rootdir" useradd -d $MESH_INSTALL_DIR/zeronet/ -s /bin/false zeronet
- git clone $ZERONET_REPO $rootdir$MESH_INSTALL_DIR/zeronet
- if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet ]; then
- echo 'WARNING: Unable to clone zeronet'
- return
- fi
- cd $rootdir$MESH_INSTALL_DIR/zeronet
- git checkout $ZERONET_COMMIT -b $ZERONET_COMMIT
- if ! grep -q "ZeroNet commit" $COMPLETION_FILE; then
- echo "ZeroNet commit:$ZERONET_COMMIT" >> $rootdir$COMPLETION_FILE
- else
- sed -i "s/ZeroNet commit.*/ZeroNet commit:$ZERONET_COMMIT/g" $COMPLETION_FILE
- fi
- chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
-
- # Hack to ensure that the file access port is opened
- # This is because zeronet normally relies on an internet site
- # to do this, but on a purely local mesh the internet isn't available
- sed -i 's|fileserver_port = 0|fileserver_port = config.fileserver_port\n sys.modules["main"].file_server.port_opened = True|g' $rootdir$MESH_INSTALL_DIR/zeronet/src/Site/Site.py
-
- ZERONET_DAEMON=$rootdir/etc/systemd/system/zeronet.service
- echo '[Unit]' > $ZERONET_DAEMON
- echo 'Description=Zeronet Server' >> $ZERONET_DAEMON
- echo 'After=syslog.target' >> $ZERONET_DAEMON
- echo 'After=network.target' >> $ZERONET_DAEMON
- echo '[Service]' >> $ZERONET_DAEMON
- echo 'Type=simple' >> $ZERONET_DAEMON
- echo 'User=zeronet' >> $ZERONET_DAEMON
- echo 'Group=zeronet' >> $ZERONET_DAEMON
- echo "WorkingDirectory=$MESH_INSTALL_DIR/zeronet" >> $ZERONET_DAEMON
- echo "ExecStart=/usr/bin/python zeronet.py --ip_external replace.local --trackers_file $MESH_INSTALL_DIR/zeronet/bootstrap" >> $ZERONET_DAEMON
- echo '' >> $ZERONET_DAEMON
- echo 'TimeoutSec=300' >> $ZERONET_DAEMON
- echo '' >> $ZERONET_DAEMON
- echo '[Install]' >> $ZERONET_DAEMON
- echo 'WantedBy=multi-user.target' >> $ZERONET_DAEMON
-
- TRACKER_DAEMON=$rootdir/etc/systemd/system/tracker.service
- echo '[Unit]' > $TRACKER_DAEMON
- echo 'Description=Torrent Tracker' >> $TRACKER_DAEMON
- echo 'After=syslog.target' >> $TRACKER_DAEMON
- echo 'After=network.target' >> $TRACKER_DAEMON
- echo '[Service]' >> $TRACKER_DAEMON
- echo 'Type=simple' >> $TRACKER_DAEMON
- echo 'User=tracker' >> $TRACKER_DAEMON
- echo 'Group=tracker' >> $TRACKER_DAEMON
- echo "WorkingDirectory=$MESH_INSTALL_DIR/tracker" >> $TRACKER_DAEMON
- echo "ExecStart=/usr/bin/bttrack --port $TRACKER_PORT --dfile $MESH_INSTALL_DIR/tracker/dstate --logfile $MESH_INSTALL_DIR/tracker/tracker.log --nat_check 0 --scrape_allowed full --ipv6_enabled 0" >> $TRACKER_DAEMON
- echo '' >> $TRACKER_DAEMON
- echo 'TimeoutSec=300' >> $TRACKER_DAEMON
- echo '' >> $TRACKER_DAEMON
- echo '[Install]' >> $TRACKER_DAEMON
- echo 'WantedBy=multi-user.target' >> $TRACKER_DAEMON
-
- chroot "$rootdir" useradd -d $MESH_INSTALL_DIR/tracker/ -s /bin/false tracker
- if [ ! -d $rootdir$MESH_INSTALL_DIR/tracker ]; then
- mkdir $rootdir$MESH_INSTALL_DIR/tracker
- fi
- chroot "$rootdir" chown -R tracker:tracker $MESH_INSTALL_DIR/tracker
-
- # publish regularly
- echo "* * * * * root zeronetavahi > /dev/null" >> $rootdir/etc/crontab
-
- chroot "$rootdir" systemctl enable tracker.service
- chroot "$rootdir" systemctl enable zeronet.service
-}
-
-function mesh_zeronet_blog {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_BLOG_REPO=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_BLOG_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_BLOG_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_BLOG_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- ZERONET_BLOG_REPO=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_BLOG_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_BLOG_COMMIT=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_BLOG_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
-
- git clone $ZERONET_BLOG_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog
- if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog ]; then
- echo $'ZeroBlog repo could not be cloned'
- exit 6739
- fi
- cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog
- git checkout $ZERONET_BLOG_COMMIT -b $ZERONET_BLOG_COMMIT
- chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
-}
-
-function mesh_zeronet_mail {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_MAIL_REPO=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_MAIL_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_MAIL_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_MAIL_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- ZERONET_MAIL_REPO=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_MAIL_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_MAIL_COMMIT=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_MAIL_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
-
- git clone $ZERONET_MAIL_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail
- if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail ]; then
- echo $'ZeroMail repo could not be cloned'
- exit 78493
- fi
- cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail
- git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
- chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
-}
-
-function mesh_zeronet_forum {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_FORUM_REPO=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_FORUM_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_FORUM_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_FORUM_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- ZERONET_FORUM_REPO=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_FORUM_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_FORUM_COMMIT=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_FORUM_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
-
- git clone $ZERONET_FORUM_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk
- if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk ]; then
- echo $'ZeroTalk repo could not be cloned'
- exit 78252
- fi
- cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk
- git checkout $ZERONET_FORUM_COMMIT -b $ZERONET_FORUM_COMMIT
- chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
-}
-
-function mesh_zeronet_id {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_ID_REPO=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_ID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_ID_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_ID_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- ZERONET_ID_REPO=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_ID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- ZERONET_ID_COMMIT=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_ID_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
-
- git clone $ZERONET_ID_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID
- if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID ]; then
- echo $'ZeroID repo could not be cloned'
- exit 37936
- fi
- cd $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID
- git checkout $ZERONET_ID_COMMIT -b $ZERONET_ID_COMMIT
- chroot "$rootdir" chown -R zeronet:zeronet $MESH_INSTALL_DIR/zeronet
-}
-
-function mesh_web_server {
- if [ -d /etc/apache2 ]; then
- chroot "$rootdir" apt-get -y remove --purge apache2
- chroot "$rootdir" rm -rf /etc/apache2
- fi
-
- chroot "$rootdir" apt-get -y install nginx
-
- if [ ! -d $rootdir/etc/nginx ]; then
- echo $'Unable to install web server'
- exit 346825
- fi
-}
+INSTALLING_MESH=
initialise_mesh() {
- if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" ]]; then
- return
- fi
- if [[ $DEBIAN_INSTALL_ONLY != "no" ]]; then
- return
- fi
+ if [[ $VARIANT != "mesh" && $VARIANT != "meshclient" && $VARIANT != "meshusb" ]]; then
+ return
+ fi
+ if [[ $DEBIAN_INSTALL_ONLY != "no" ]]; then
+ return
+ fi
- if [[ $INSECURE == $'yes' ]]; then
- echo '*********************************************************'
- echo $'WARNING: non-free wifi drivers are being installed.'
- echo $' This may compromise the security of your system.'
- echo '*********************************************************'
+ if [[ $INSECURE == $'yes' ]]; then
+ echo '*********************************************************'
+ echo $'WARNING: non-free wifi drivers are being installed.'
+ echo $' This may compromise the security of your system.'
+ echo '*********************************************************'
- # enable non-free repo
- if ! grep -q "non-free" $rootdir/etc/apt/sources.list; then
- chroot "$rootdir" sed -i "s| main| main non-free|g" /etc/apt/sources.list
- chroot "$rootdir" apt-get update
- fi
+ # enable non-free repo
+ if ! grep -q "non-free" $rootdir/etc/apt/sources.list; then
+ chroot "$rootdir" /bin/sed -i "s| main| main non-free|g" /etc/apt/sources.list
+ fi
- # install proprietary wifi drivers
- # see https://wiki.debian.org/iwlwifi
- chroot "$rootdir" apt-get -y install firmware-iwlwifi
- fi
+ chroot "$rootdir" apt-get update
- mesh_firewall
- mesh_avahi
- mesh_batman
- mesh_tox_node
- mesh_tox_avahi
- mesh_tox_client
- mesh_web_server
- mesh_zeronet
- mesh_zeronet_blog
- mesh_zeronet_mail
- mesh_zeronet_forum
+ # install proprietary wifi drivers
+ # see https://wiki.debian.org/iwlwifi
+ chroot "$rootdir" apt-get -yq install firmware-iwlwifi firmware-b43-installer firmware-brcm80211
+ fi
- MESH_SERVICE='mesh-setup.service'
- MESH_SETUP_DAEMON=$rootdir/etc/systemd/system/$MESH_SERVICE
+ INSTALLING_MESH=1
- echo '[Unit]' > $MESH_SETUP_DAEMON
- echo 'Description=Initial mesh router configuration' >> $MESH_SETUP_DAEMON
- echo 'After=syslog.target' >> $MESH_SETUP_DAEMON
- echo 'After=network.target' >> $MESH_SETUP_DAEMON
- echo '[Service]' >> $MESH_SETUP_DAEMON
- echo 'Type=simple' >> $MESH_SETUP_DAEMON
- echo 'User=root' >> $MESH_SETUP_DAEMON
- echo 'Group=root' >> $MESH_SETUP_DAEMON
- echo 'WorkingDirectory=/root' >> $MESH_SETUP_DAEMON
- echo "ExecStart=/usr/local/bin/${PROJECT_NAME}-image-mesh > /var/log/mesh-setup.log" >> $MESH_SETUP_DAEMON
- echo '' >> $MESH_SETUP_DAEMON
- echo 'TimeoutSec=99999' >> $MESH_SETUP_DAEMON
- echo '' >> $MESH_SETUP_DAEMON
- echo '[Install]' >> $MESH_SETUP_DAEMON
- echo 'WantedBy=multi-user.target' >> $MESH_SETUP_DAEMON
- chroot "$rootdir" systemctl enable $MESH_SERVICE
+ configure_firewall
+ install_avahi
+ install_batman
+ install_tomb
+ #install_tahoelafs
+ #install_librevault
+ install_ipfs
+ install_tox
+ install_web_server
+ install_pelican
+ if [ $ENABLE_ZERONET ]; then
+ install_zeronet
+ fi
+
+ MESH_SERVICE='mesh-setup.service'
+ MESH_SETUP_DAEMON=$rootdir/etc/systemd/system/$MESH_SERVICE
+
+ MESH_STARTUP_PARAMS="${MY_USERNAME}"
+ if [[ $AMNESIC != 'no' ]]; then
+ MESH_STARTUP_PARAMS="${MY_USERNAME} amnesic"
+ fi
+
+ echo '[Unit]' > $MESH_SETUP_DAEMON
+ echo 'Description=Initial mesh router configuration' >> $MESH_SETUP_DAEMON
+ echo 'After=syslog.target' >> $MESH_SETUP_DAEMON
+ echo 'After=network.target' >> $MESH_SETUP_DAEMON
+ echo '' >> $MESH_SETUP_DAEMON
+ echo '[Service]' >> $MESH_SETUP_DAEMON
+ echo 'Type=simple' >> $MESH_SETUP_DAEMON
+ echo 'User=root' >> $MESH_SETUP_DAEMON
+ echo 'Group=root' >> $MESH_SETUP_DAEMON
+ echo 'WorkingDirectory=/root' >> $MESH_SETUP_DAEMON
+ echo "ExecStart=/usr/local/bin/${PROJECT_NAME}-image-mesh ${MESH_STARTUP_PARAMS} > /var/log/mesh-setup.log" >> $MESH_SETUP_DAEMON
+ echo '' >> $MESH_SETUP_DAEMON
+ echo 'TimeoutSec=99999' >> $MESH_SETUP_DAEMON
+ echo '' >> $MESH_SETUP_DAEMON
+ echo '[Install]' >> $MESH_SETUP_DAEMON
+ echo 'WantedBy=multi-user.target' >> $MESH_SETUP_DAEMON
+ chmod +x $MESH_SETUP_DAEMON
+ chroot "$rootdir" systemctl enable $MESH_SERVICE
}
# User interface for USB drive installs ######################################
-function enable_tox_repo {
- echo 'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/Debian_8.0/ /' > $rootdir/etc/apt/sources.list.d/tox.list
-
-
- chroot "$rootdir" wget -q http://download.opensuse.org/repositories/home:antonbatenev:tox/Debian_8.0/Release.key -O- | apt-key add -
- chroot "$rootdir" apt-get update
- echo "Tox Repository Installed."
-}
-
-function install_syncthing {
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
- return
- fi
-
- chroot "$rootdir" wget -q https://syncthing.net/release-key.txt -O- | apt-key add -
-
- echo "deb http://apt.syncthing.net/ syncthing release" | tee $rootdir/etc/apt/sources.list.d/syncthing.list
- chroot "$rootdir" apt-get update
- chroot "$rootdir" apt-get -y --force-yes install syncthing
-
- # This probably does need to run as root so that it can access the Sync directories
- # in each user's home directory
- chroot "$rootdir" echo '[Unit]' > /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'Description=Syncthing - Open Source Continuous File Synchronization' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'Documentation=man:syncthing(1)' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'After=network.target' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'Wants=syncthing-inotify@.service' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo '' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo '[Service]' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'User=root' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo "Environment='all_proxy=socks5://localhost:9050'" >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'Restart=on-failure' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'SuccessExitStatus=3 4' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'RestartForceExitStatus=3 4' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo '' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo '[Install]' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" echo 'WantedBy=multi-user.target' >> /etc/systemd/system/syncthing.service
- chroot "$rootdir" systemctl enable syncthing
- chroot "$rootdir" systemctl daemon-reload
-
- if ! grep -q "syncthing" $rootdir/etc/crontab; then
- chroot "$rootdir" echo "*/1 * * * * root /usr/local/bin/freedombone-syncthing > /dev/null" >> /etc/crontab
- chroot "$rootdir" systemctl restart cron
- fi
-
- echo 'install_syncthing'
-}
-
function mesh_client_startup_applications {
- if [ ! -d $rootdir/home/$MY_USERNAME/Desktop ]; then
- mkdir -p $rootdir/home/$MY_USERNAME/Desktop
- fi
+ if [ ! -d $rootdir/home/$MY_USERNAME/Desktop ]; then
+ mkdir -p $rootdir/home/$MY_USERNAME/Desktop
+ fi
- if [ ! -d $rootdir/home/$MY_USERNAME/.config/autostart ]; then
- mkdir -p $rootdir/home/$MY_USERNAME/.config/autostart
- fi
+ if [ ! -d $rootdir/home/$MY_USERNAME/.config/autostart ]; then
+ mkdir -p $rootdir/home/$MY_USERNAME/.config/autostart
+ chroot "$rootdir" /bin/chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
+ fi
- echo '[Desktop Entry]' > $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'Name=Tox Chat' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'Type=Application' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'Comment=Chat, VoIP, Video' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'TryExec=qtox' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'Exec=qtox' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'Icon=qtox' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
- echo 'StartupNotify=true' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
+ START_DESKTOP=$rootdir/home/$MY_USERNAME/mesh-desktop.sh
+ FIRST_BOOT=/home/$MY_USERNAME/.first_boot
+ TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
+ echo '#!/bin/bash' > $START_DESKTOP
+ echo "setxkbmap ${KEYBOARD_MAP}" > $START_DESKTOP
+ echo 'dconf write /org/mate/caja/desktop/volumes-visible false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/caja/desktop/computer-icon-visible false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/caja/desktop/home-icon-visible false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/caja/desktop/network-icon-visible false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/caja/desktop/trash-icon-visible false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/caja/desktop/volumes-visible false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/desktop/media-handling/automount-open false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/screensaver/lock-enabled false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/power-manager/lock-keyring-suspend false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/power-manager/lock-suspend false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/power-manager/lock-use-screensaver false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/power-manager/lock-blank-screen false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/power-manager/lock-hibernate false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/power-manager/lock-keyring-hibernate false' >> $START_DESKTOP
+ echo 'dconf write /org/mate/desktop/peripherals/touchpad/scroll-method 2' >> $START_DESKTOP
+ echo "touch /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP
+ echo "chmod 600 /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP
+ echo "env | grep DBUS_SESSION_BUS_ADDRESS > /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP
+ echo "echo 'export DBUS_SESSION_BUS_ADDRESS' >> /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP
- cp $rootdir/home/$MY_USERNAME/Desktop/tox.desktop $rootdir/home/$MY_USERNAME/.config/autostart/tox.desktop
+ echo '' >> $START_DESKTOP
+ echo "amixer set 'Master' unmute" >> $START_DESKTOP
+ echo "amixer set 'Master' 50%" >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo "if [ ! -f $FIRST_BOOT ]; then" >> $START_DESKTOP
+ echo " $TAHOE_COMMAND start" >> $START_DESKTOP
+ echo ' exit 0' >> $START_DESKTOP
+ echo 'fi' >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo 'INITIAL_TOX_USERNAME=""' >> $START_DESKTOP
+ echo 'while [ ${#INITIAL_TOX_USERNAME} -eq 0 ]; do' >> $START_DESKTOP
+ echo ' data=$(tempfile 2>/dev/null)' >> $START_DESKTOP
+ echo ' trap "rm -f $data" 0 1 2 5 15' >> $START_DESKTOP
+ echo -n " dialog --title \"${MESH_TITLE}\" " >> $START_DESKTOP
+ echo -n "--backtitle \"${MESH_TITLE}\" " >> $START_DESKTOP
+ echo -n "--inputbox \"${MESH_SET_USERNAME}\" 12 60 Anon " >> $START_DESKTOP
+ echo '2>$data' >> $START_DESKTOP
+ echo ' sel=$?' >> $START_DESKTOP
+ echo ' case $sel in' >> $START_DESKTOP
+ echo ' 0)' >> $START_DESKTOP
+ echo ' INITIAL_TOX_USERNAME=$(<$data)' >> $START_DESKTOP
+ echo ' ;;' >> $START_DESKTOP
+ echo ' esac' >> $START_DESKTOP
+ echo 'done' >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo 'toxid --setuser "$INITIAL_TOX_USERNAME"' >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo "if [ -f /home/$MY_USERNAME/.tahoe/tahoe.cfg ]; then" >> $START_DESKTOP
+ echo " sed -i 's|nickname =.*|nickname = \$INITIAL_TOX_USERNAME|g' /home/$MY_USERNAME/.tahoe/tahoe.cfg" >> $START_DESKTOP
- chroot "$rootdir" chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
+ echo " $TAHOE_COMMAND restart" >> $START_DESKTOP
+ echo 'fi' >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo "rm -f $FIRST_BOOT" >> $START_DESKTOP
+ echo '' >> $START_DESKTOP
+ echo 'exit 0' >> $START_DESKTOP
+ chmod +x $START_DESKTOP
+
+ START_DESKTOP2=$rootdir/home/$MY_USERNAME/.config/autostart/mesh-start.desktop
+ echo '[Desktop Entry]' > $START_DESKTOP2
+ echo 'Type=Application' >> $START_DESKTOP2
+ echo 'Name=Mesh start desktop script' >> $START_DESKTOP2
+ echo "Exec=bash -c '~/mesh-desktop.sh'" >> $START_DESKTOP2
+ echo 'X-GNOME-Autostart-enabled=true' >> $START_DESKTOP2
+ chmod +x $START_DESKTOP2
+
+ START_DESKTOP3=$rootdir/home/$MY_USERNAME/.config/autostart/set_username.desktop
+ echo '[Desktop Entry]' > $START_DESKTOP3
+ echo 'Version=1.0' >> $START_DESKTOP3
+ echo 'Name=Set Username' >> $START_DESKTOP3
+ echo 'Type=Application' >> $START_DESKTOP3
+ echo 'Comment=Set username' >> $START_DESKTOP3
+ echo "Exec=mate-terminal -e \"bash -c /home/${MY_USERNAME}/mesh-desktop.sh\"" >> $START_DESKTOP3
+ echo 'Icon=user-away' >> $START_DESKTOP3
+ echo 'Terminal=false' >> $START_DESKTOP3
+ echo 'Categories=Application;' >> $START_DESKTOP3
+ chmod +x $START_DESKTOP3
}
function mesh_desktop_icons {
- if [ ! -d $rootdir/home/$MY_USERNAME/Desktop ]; then
- mkdir -p $rootdir/home/$MY_USERNAME/Desktop
- fi
+ if [ ! -d $rootdir/home/$MY_USERNAME/Desktop ]; then
+ mkdir -p $rootdir/home/$MY_USERNAME/Desktop
+ fi
- # Terminal
- echo '[Desktop Entry]' > $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'Name=MATE Terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'Type=Application' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'Comment=Use the command line' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'TryExec=mate-terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'Exec=mate-terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'Icon=terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- echo 'StartupNotify=true' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ # Terminal
+ #echo '[Desktop Entry]' > $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'Name=MATE Terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'Type=Application' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'Comment=Use the command line' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'TryExec=mate-terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'Exec=mate-terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'Icon=terminal' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
+ #echo 'StartupNotify=true' >> $rootdir/home/$MY_USERNAME/Desktop/terminal.desktop
- # browse
- echo '[Desktop Entry]' > $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo 'Name=Mesh' >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo 'Type=Application' >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo 'Comment=Browse the mesh' >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo 'TryExec=meshweb' >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo 'Exec=meshweb' >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo "Icon=$BROWSER" >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
- echo 'StartupNotify=true' >> $rootdir/home/$MY_USERNAME/Desktop/mesh.desktop
-
- chroot "$rootdir" chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop
+ chroot "$rootdir" /bin/chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop
}
function configure_user_interface {
- if [[ $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
- return
- fi
+ if [[ $VARIANT != "meshclient" && $VARIANT != "meshusb" && $VARIANT != "usb" ]]; then
+ return
+ fi
- # desktop
- chroot "$rootdir" apt-get -y install mate-desktop-environment
+ # desktop
+ chroot "$rootdir" apt-get -yq install mate-desktop-environment
- # tool to change desktop settings from command line
- chroot "$rootdir" apt-get -y install dconf-cli dconf-gsettings-backend dbus dbus-x11
+ # tool to change desktop settings from command line
+ chroot "$rootdir" apt-get -yq install dconf-cli dconf-gsettings-backend dbus dbus-x11
- if [[ $VARIANT != "usb" ]]; then
- # log in automatically
- chroot "$rootdir" apt-get -y install nodm xinit
- echo 'NODM_ENABLED=true' > /etc/default/nodm
- echo "NODM_USER=$MY_USERNAME" >> /etc/default/nodm
+ # for tomb
+ chroot "$rootdir" apt-get -yq install pinentry-gtk2
- chroot "$rootdir" mkdir /etc/systemd/system/getty@tty1.service.d
- echo '[Service]' > $rootdir/etc/systemd/system/getty@tty1.service.d/override.conf
- echo 'ExecStart=' >> $rootdir/etc/systemd/system/getty@tty1.service.d/override.conf
- echo 'ExecStart=-/sbin/agetty --autologin fbone --noclear %I $TERM' >> $rootdir/etc/systemd/system/getty@tty1.service.d/override.conf
+ # for tox video
+ chroot "$rootdir" apt-get -yq install ffmpeg cheese v4l-utils
- echo '[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx' >> $rootdir/home/$MY_USERNAME/.profile
+ # to provide notifications
+ chroot "$rootdir" apt-get -yq install libnotify-bin
- chroot "$rootdir" systemctl set-default multi-user.target
+ # for video/audio
+ chroot "$rootdir" apt-get -yq install libtheora-bin libvorbis-dev v4l-utils
- mesh_client_startup_applications
- mesh_desktop_icons
+ # a sane editor
+ chroot "$rootdir" apt-get -yq install emacs24
- # change the desktop background
- if [ $MESH_DESKTOP_BACKGROUND_IMAGE ]; then
- if [ -f $MESH_DESKTOP_BACKGROUND_IMAGE ]; then
- if [ -d $rootdir/usr/share/images/desktop-base ]; then
- cp $MESH_DESKTOP_BACKGROUND_IMAGE $rootdir/usr/share/images/desktop-base/${PROJECT_NAME}_mesh_background.png
- chroot "$rootdir" rm /usr/share/images/desktop-base/desktop-background
- chroot "$rootdir" ln -s /usr/share/images/desktop-base/${PROJECT_NAME}_mesh_background.png /usr/share/images/desktop-base/desktop-background
- fi
- fi
- fi
- else
- chroot "$rootdir" apt-get -y install lightdm
- fi
+ # for wifi monitoring
+ chroot "$rootdir" apt-get -yq install horst
- # browser
- chroot "$rootdir" apt-get -y install $BROWSER
+ # for sound level control
+ chroot "$rootdir" apt-get -yq install alsa-utils
- # NOTE: The Tox repo only supports a limited range of architectures
- if [[ $ARCHITECTURE == 'amd64' || $ARCHITECTURE == 'i386' ]]; then
- # Tox user interface
- enable_tox_repo
- # TODO: this may not work on all architectures
- chroot "$rootdir" apt-get -y --force-yes install qtox
- fi
+ # to play various media types
+ chroot "$rootdir" apt-get -yq install vlc
- # Syncthing
- install_syncthing
+ # android adb to allow phones to be connected and for example transfer photos/documents
+ chroot "$rootdir" apt-get -yq install android-tools-adb
- if [[ $VARIANT == "usb" ]]; then
- # tor
- chroot "$rootdir" apt-get -y install tor
+ # Produce a text file on the desktop listing users on the mesh
+ cat < $rootdir/usr/bin/list-tox-users
+#!/bin/bash
+users_list=\$(lstox | awk -F ' ' '{\$1=""; print \$0}' | sed -e 's/^[[:space:]]*//' | sort -d | uniq)
+if [ ! \$users_list ]; then
+ no_of_users=0
+else
+ no_of_users=\$(echo "\$users_list" | wc -l)
+fi
+if [ \$no_of_users -gt 0 ]; then
+ echo "\$users_list" > /tmp/Users.txt
+ chown $MY_USERNAME:$MY_USERNAME /tmp/Users.txt
- # xmpp client
- chroot "$rootdir" echo "deb ftp://ftp.gajim.org/debian unstable main" > /etc/apt/sources.list.d/gajim.list
- chroot "$rootdir" apt-get update
- chroot "$rootdir" apt-get -y install gajim-dev-keyring
- chroot "$rootdir" apt-get -y install git python-dev python-pip gajim-nightly
- chroot "$rootdir" mkdir /home/$GENERIC_IMAGE_USERNAME/.local/share/gajim/plugins -p
- chroot "$rootdir" git clone https://github.com/omemo/gajim-omemo /home/$GENERIC_IMAGE_USERNAME/.local/share/gajim/plugins/gajim-omemo
- chroot "$rootdir" pip install protobuf==2.6.1, python-axolotl==0.1.35
- chroot "$rootdir" chown -R $GENERIC_IMAGE_USERNAME:$GENERIC_IMAGE_USERNAME /home/$GENERIC_IMAGE_USERNAME/.local
+ echo 'showing_users=\$(ps aux | grep $MESH_TEXT_EDITOR | grep "Users.txt")' > /home/$MY_USERNAME/showusers
+ echo 'if [ \${#showing_users} -eq 0 ]; then' >> /home/$MY_USERNAME/showusers
+ echo ' $MESH_TEXT_EDITOR /tmp/Users.txt' >> /home/$MY_USERNAME/showusers
+ echo 'fi' >> /home/$MY_USERNAME/showusers
+ echo 'exit 0' >> /home/$MY_USERNAME/showusers
+ chmod +x /home/$MY_USERNAME/showusers
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/showusers
- # IRC client
- chroot "$rootdir" apt-get -y install hexchat profanity
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/Users.desktop
+ if [ \$no_of_users -lt 2 ]; then
+ echo "Name=\$no_of_users Other User" >> /home/$MY_USERNAME/Desktop/Users.desktop
+ else
+ echo "Name=\$no_of_users Other Users" >> /home/$MY_USERNAME/Desktop/Users.desktop
+ fi
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/Users.desktop
+ echo 'Comment=List of users' >> /home/$MY_USERNAME/Desktop/Users.desktop
+ echo 'Exec=bash /home/$MY_USERNAME/showusers' >> /home/$MY_USERNAME/Desktop/Users.desktop
+ echo 'Icon=/usr/share/$PROJECT_NAME/avatars/otheruser.png' >> /home/$MY_USERNAME/Desktop/Users.desktop
+ echo 'StartupNotify=false' >> /home/$MY_USERNAME/Desktop/Users.desktop
+ chmod +x /home/$MY_USERNAME/Desktop/Users.desktop
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/Users.desktop
- # zeronet
+ if [ -f /tmp/.ipfs-users ]; then
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/sites.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/sites.desktop
+ echo "Name=Visit a site" >> /home/$MY_USERNAME/Desktop/sites.desktop
+ echo 'Comment=Visit a site' >> /home/$MY_USERNAME/Desktop/sites.desktop
+ echo 'Exec=mate-terminal -e /usr/local/bin/${PROJECT_NAME}-mesh-visit-site' >> /home/$MY_USERNAME/Desktop/sites.desktop
+ echo 'Icon=/usr/share/${PROJECT_NAME}/avatars/ipfs.jpg' >> /home/$MY_USERNAME/Desktop/sites.desktop
+ echo 'StartupNotify=false' >> /home/$MY_USERNAME/Desktop/sites.desktop
+ chmod +x /home/$MY_USERNAME/Desktop/sites.desktop
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/sites.desktop
- # TODO
- fi
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/blog.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/blog.desktop
+ echo "Name=Blog" >> /home/$MY_USERNAME/Desktop/blog.desktop
+ echo 'Comment=View or create blog entries' >> /home/$MY_USERNAME/Desktop/blog.desktop
+ echo 'Exec=mate-terminal -e /usr/local/bin/${PROJECT_NAME}-mesh-blog' >> /home/$MY_USERNAME/Desktop/blog.desktop
+ echo 'Icon=/usr/share/${PROJECT_NAME}/avatars/blog.png' >> /home/$MY_USERNAME/Desktop/blog.desktop
+ echo 'StartupNotify=false' >> /home/$MY_USERNAME/Desktop/blog.desktop
+ chmod +x /home/$MY_USERNAME/Desktop/blog.desktop
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/blog.desktop
+ fi
+
+ if [ ! -f /home/$MY_USERNAME/runtox ]; then
+ echo 'qtox_running=\$(ps aux | grep qtox | grep data)' > /home/$MY_USERNAME/runtox
+ echo 'if [ \${#qtox_running} -eq 0 ]; then' >> /home/$MY_USERNAME/runtox
+ echo ' bash -c "qtox -p data"' >> /home/$MY_USERNAME/runtox
+ echo 'fi' >> /home/$MY_USERNAME/runtox
+ echo 'exit 0' >> /home/$MY_USERNAME/runtox
+ chmod +x /home/$MY_USERNAME/runtox
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/runtox
+ fi
+
+ if [ ! -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/tox.desktop
+ echo 'Name=Chat' >> /home/$MY_USERNAME/Desktop/tox.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/tox.desktop
+ echo 'Comment=Chat, Voice and Video' >> /home/$MY_USERNAME/Desktop/tox.desktop
+ echo 'Exec=bash /home/$MY_USERNAME/runtox' >> /home/$MY_USERNAME/Desktop/tox.desktop
+ echo "Icon=/usr/share/$PROJECT_NAME/avatars/chat.png" >> /home/$MY_USERNAME/Desktop/tox.desktop
+ echo 'StartupNotify=true' >> /home/$MY_USERNAME/Desktop/tox.desktop
+ chmod +x /home/$MY_USERNAME/Desktop/tox.desktop
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/tox.desktop
+ fi
+else
+ if [ -f /tmp/Users.txt ]; then
+ rm /tmp/Users.txt
+ rm /home/$MY_USERNAME/Desktop/Users.desktop
+ if [ -f /home/$MY_USERNAME/Desktop/Users.desktop ]; then
+ rm /home/$MY_USERNAME/Desktop/Users.desktop
+ fi
+ if [ -f /home/$MY_USERNAME/Desktop/sites.desktop ]; then
+ rm /home/$MY_USERNAME/Desktop/sites.desktop
+ fi
+ if [ -f /home/$MY_USERNAME/Desktop/blog.desktop ]; then
+ rm /home/$MY_USERNAME/Desktop/blog.desktop
+ fi
+ if [ -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then
+ rm /home/$MY_USERNAME/Desktop/tox.desktop
+ fi
+ pkill qtox
+ fi
+fi
+EOF
+ chroot "$rootdir" /bin/chown $MY_USERNAME:$MY_USERNAME /usr/bin/list-tox-users
+ chroot "$rootdir" /bin/chmod +x /usr/bin/list-tox-users
+ echo "* * * * * $MY_USERNAME bash -c /usr/bin/list-tox-users > /dev/null" >> $rootdir/etc/crontab
+
+ if [[ $VARIANT != "usb" ]]; then
+ # log in automatically
+ chroot "$rootdir" apt-get -y install nodm xinit
+ echo 'NODM_ENABLED=true' > /etc/default/nodm
+ echo "NODM_USER=$MY_USERNAME" >> /etc/default/nodm
+
+ chroot "$rootdir" mkdir /etc/systemd/system/getty@tty1.service.d
+ echo '[Service]' > $rootdir/etc/systemd/system/getty@tty1.service.d/override.conf
+ echo 'ExecStart=' >> $rootdir/etc/systemd/system/getty@tty1.service.d/override.conf
+ echo 'ExecStart=-/sbin/agetty --autologin fbone --noclear %I $TERM' >> $rootdir/etc/systemd/system/getty@tty1.service.d/override.conf
+
+ echo '[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx' >> $rootdir/home/$MY_USERNAME/.profile
+
+ chroot "$rootdir" systemctl set-default multi-user.target
+
+ mesh_client_startup_applications
+ mesh_desktop_icons
+
+ # Different desktop background for amnesic
+ if [[ $AMNESIC != 'no' ]]; then
+ MESH_DESKTOP_BACKGROUND_IMAGE=/usr/local/share/${PROJECT_NAME}_mesh_amnesic_background.png
+ fi
+
+ # change the desktop background
+ if [ $MESH_DESKTOP_BACKGROUND_IMAGE ]; then
+ if [ -f $MESH_DESKTOP_BACKGROUND_IMAGE ]; then
+ if [ -d $rootdir/usr/share/images/desktop-base ]; then
+ cp $MESH_DESKTOP_BACKGROUND_IMAGE $rootdir/usr/share/images/desktop-base/${PROJECT_NAME}_mesh_background.png
+ chroot "$rootdir" /bin/rm /usr/share/images/desktop-base/desktop-background
+ chroot "$rootdir" ln -s /usr/share/images/desktop-base/${PROJECT_NAME}_mesh_background.png /usr/share/images/desktop-base/desktop-background
+ fi
+ fi
+ fi
+ else
+ chroot "$rootdir" apt-get -yq install lightdm
+ fi
+
+ # browser
+ chroot "$rootdir" apt-get -yq install $BROWSER
+
+ # help
+ mkdir -p $rootdir/home/${MY_USERNAME}/help/images
+ cd $rootdir/root/${PROJECT_NAME}/website
+ ./deploy.sh EN $rootdir/home/${MY_USERNAME}/help
+ chroot "$rootdir" /bin/chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/help
+
+ # Tox user interface
+ enable_tox_repo
+ mesh_tox_qtox
+ # copy the default qtox ini file
+ if [ ! -d ${rootdir}/home/${MY_USERNAME}/.config/tox ]; then
+ mkdir ${rootdir}/home/${MY_USERNAME}/.config/tox
+ cp /usr/local/bin/${PROJECT_NAME}-config-qtox ${rootdir}/home/${MY_USERNAME}/.config/tox/qtox.ini
+ chroot "$rootdir" /bin/chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
+ fi
+
+ if [[ $VARIANT == "usb" ]]; then
+ # tor
+ chroot "$rootdir" apt-get -y install tor
+
+ # xmpp client
+ chroot "$rootdir" echo "deb ftp://ftp.gajim.org/debian unstable main" > /etc/apt/sources.list.d/gajim.list
+ chroot "$rootdir" apt-get update
+ chroot "$rootdir" apt-get -yq install gajim-dev-keyring
+ chroot "$rootdir" apt-get -yq install git python-dev python-pip gajim-nightly
+ chroot "$rootdir" mkdir /home/$GENERIC_IMAGE_USERNAME/.local/share/gajim/plugins -p
+ chroot "$rootdir" git clone https://github.com/omemo/gajim-omemo /home/$GENERIC_IMAGE_USERNAME/.local/share/gajim/plugins/gajim-omemo
+ chroot "$rootdir" pip install protobuf==2.6.1, python-axolotl==0.1.35
+ chroot "$rootdir" /bin/chown -R $GENERIC_IMAGE_USERNAME:$GENERIC_IMAGE_USERNAME /home/$GENERIC_IMAGE_USERNAME/.local
+
+ # IRC client
+ chroot "$rootdir" apt-get -yq install hexchat profanity
+ fi
}
##############################################################################
@@ -1344,31 +966,37 @@ export LC_ALL=C LANGUAGE=C LANG=C
# are not created yet.
export TMP=/tmp/ TMPDIR=/tmp/
+if [ ! $MY_USERNAME ]; then
+ echo $'No username was specified'
+ exit 52825
+fi
username=$MY_USERNAME
echo $"warning: creating initial user $username with well known password!"
password=$MY_PASSWORD
+chroot "$rootdir" /usr/bin/env -i \
+ HOME=/root \
+ PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
+echo "export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:" >> $rootdir/root/.bashrc
chroot "$rootdir" adduser --gecos $username --disabled-password $username
-echo $username:$password | chroot $rootdir /usr/sbin/chpasswd
+echo $username:$password | chroot "$rootdir" /usr/sbin/chpasswd
chroot "$rootdir" adduser $username sudo
-case "$MACHINE" in
- virtualbox)
- # hide irrelevant console keyboard messages.
- echo "echo \"4 4 1 7\" > /proc/sys/kernel/printk" \
- >> /etc/init.d/rc.local
- ;;
- qemu)
- # hide irrelevant console keyboard messages.
- echo "echo \"4 4 1 7\" > /proc/sys/kernel/printk" \
- >> /etc/init.d/rc.local
- ;;
-esac
+if [ ! $DEBIAN_REPO ]; then
+ DEBIAN_REPO='ftp.de.debian.org'
+fi
+if [ ! $DEBIAN_VERSION ]; then
+ DEBIAN_VERSION='jessie'
+fi
set_apt_sources $BUILD_MIRROR
chroot "$rootdir" apt-get clean
-chroot "$rootdir" rm -rf /var/lib/apt/lists/*
+chroot "$rootdir" /bin/rm -rf /var/lib/apt/lists/*
chroot "$rootdir" apt-get clean
+set_apt_sources $MIRROR
+configure_backports
+configure_contrib_repo
chroot "$rootdir" apt-get update
+chroot "$rootdir" apt-get install -y apt-utils
cat > $rootdir/usr/sbin/policy-rc.d <&1 | \
- tee $rootdir/var/log/${PROJECT_NAME}-image-hardware-setup.log
+ tee $rootdir/var/log/${PROJECT_NAME}-image-hardware-setup.log
rm $rootdir/usr/sbin/policy-rc.d
# Set up HRNG for systems known to have one
# Otherwise install haveged
if [[ "$MACHINE" != "beaglebone" ]]; then
- chroot $rootdir apt-get -y install haveged
+ chroot $rootdir apt-get -yq install haveged
else
- chroot $rootdir apt-get -y install rng-tools
- sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' $rootdir/etc/default/rng-tools
+ chroot $rootdir apt-get -yq install rng-tools
+ sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' $rootdir/etc/default/rng-tools
fi
# copy u-boot to beginning of image
case "$MACHINE" in
- beaglebone)
- dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/MLO of="$image" \
- count=1 seek=1 conv=notrunc bs=128k
- dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/u-boot.img of="$image" \
- count=2 seek=1 conv=notrunc bs=384k
- ;;
- cubieboard2)
- dd if=$rootdir/usr/lib/u-boot/Cubieboard2/u-boot-sunxi-with-spl.bin of="$image" \
- seek=8 conv=notrunc bs=1k
- ;;
- a20-olinuxino-lime)
- dd if=$rootdir/usr/lib/u-boot/A20-OLinuXino-Lime/u-boot-sunxi-with-spl.bin \
- of="$image" seek=8 conv=notrunc bs=1k
- ;;
+ beaglebone)
+ dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/MLO of="$image" \
+ count=1 seek=1 conv=notrunc bs=128k
+ dd if=$rootdir/usr/lib/u-boot/am335x_boneblack/u-boot.img of="$image" \
+ count=2 seek=1 conv=notrunc bs=384k
+ ;;
+ cubieboard2)
+ dd if=$rootdir/usr/lib/u-boot/Cubieboard2/u-boot-sunxi-with-spl.bin of="$image" \
+ seek=8 conv=notrunc bs=1k
+ ;;
+ a20-olinuxino-lime)
+ dd if=$rootdir/usr/lib/u-boot/A20-OLinuXino-Lime/u-boot-sunxi-with-spl.bin \
+ of="$image" seek=8 conv=notrunc bs=1k
+ ;;
esac
if $use_eatmydata ; then
- disable_eatmydata_override
+ disable_eatmydata_override
fi
-set_apt_sources $MIRROR
-chroot "$rootdir" apt-get update
-
configure_ssh
configure_networking
admin_user_sudo
@@ -1450,6 +1083,9 @@ initialise_mesh
configure_wifi
configure_user_interface
+# remove downloaded packages
+chroot $rootdir apt-get clean
+
cd /
echo $"info: killing leftover processes in chroot"
fuser -mvk $rootdir/. || true
diff --git a/src/freedombone-image-make b/src/freedombone-image-make
index 25ab91aa..8861f9d4 100755
--- a/src/freedombone-image-make
+++ b/src/freedombone-image-make
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
#
# .---. . .
# | | |
@@ -34,6 +34,13 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-image-make
export TEXTDOMAINDIR="/usr/share/locale"
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-setup
+
#set -x # Enable debugging
IMAGE=$1
@@ -41,8 +48,8 @@ export ARCHITECTURE
export MACHINE
export SOURCE
export SUITE
-export MY_USERNAME
-export MY_PASSWORD
+export MYUSERNAME
+export MYPASSWORD
export ROUTER_IP_ADDRESS
export BOX_IP_ADDRESS
export NAMESERVER1
@@ -65,6 +72,7 @@ export WIFI_NETWORKS_FILE
export VARIANT
export MINIMUM_PASSWORD_LENGTH
export INSECURE
+export AMNESIC
# Locate vmdebootstrap program fetched in Makefile
basedir=`pwd`
@@ -93,8 +101,8 @@ echo Building $MACHINE $PROJECT_NAME for $ARCHITECTURE.
case "$MACHINE" in
beaglebone)
- extra_pkgs="$beaglebone_pkgs"
- extra_opts="\
+ extra_pkgs="$beaglebone_pkgs"
+ extra_opts="\
--variant minbase \
--bootoffset=2mib \
--bootsize 128M \
@@ -104,10 +112,10 @@ case "$MACHINE" in
--foreign /usr/bin/qemu-arm-static \
--roottype btrfs \
"
- ;;
+ ;;
cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2)
- extra_pkgs="$a20_pkgs"
- extra_opts="\
+ extra_pkgs="$a20_pkgs"
+ extra_opts="\
--variant minbase \
--bootoffset=1mib \
--bootsize 128M \
@@ -117,29 +125,24 @@ case "$MACHINE" in
--foreign /usr/bin/qemu-arm-static \
--roottype btrfs \
"
- ;;
- virtualbox)
- extra_opts="\
- --grub \
- --roottype btrfs \
-" ;;
+ ;;
qemu)
- extra_opts="\
+ extra_opts="\
--grub \
--roottype btrfs \
" ;;
- usb)
- extra_opts="\
+ usb)
+ extra_opts="\
--grub \
--roottype btrfs \
" ;;
- meshclient)
- extra_opts="\
+ meshclient)
+ extra_opts="\
--grub \
--roottype btrfs \
" ;;
- all)
- extra_opts="\
+ all)
+ extra_opts="\
--grub \
--roottype btrfs \
" ;;
@@ -148,82 +151,117 @@ esac
# allow for lots of extra fun customization options.
for customization in $CUSTOMIZATIONS
do
- case "$customization" in
- development)
- extra_pkgs="$extra_pkgs $dev_pkgs"
- ;;
- esac
+ case "$customization" in
+ development)
+ extra_pkgs="$extra_pkgs $dev_pkgs"
+ ;;
+ esac
done
for p in $base_pkgs $extra_pkgs; do
- pkgopts="$pkgopts --package $p"
+ pkgopts="$pkgopts --package $p"
done
# Make sure file is owned by current user, not root
touch $(dirname $IMAGE)/${PROJECT_NAME}.log
if [ -x vendor/vmdebootstrap/vmdebootstrap ] ; then
- VMDEBOOTSTRAP=vendor/vmdebootstrap/vmdebootstrap
+ VMDEBOOTSTRAP=vendor/vmdebootstrap/vmdebootstrap
else
- VMDEBOOTSTRAP=vmdebootstrap
+ VMDEBOOTSTRAP=vmdebootstrap
+fi
+
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
fi
echo $'Making customised customisation script'
TEMP_CUSTOMISE=/etc/${PROJECT_NAME}/image-customise
-if [ -f /usr/local/bin/${PROJECT_NAME}-image-customise ]; then
- sudo cp /usr/local/bin/${PROJECT_NAME}-image-customise $TEMP_CUSTOMISE
-else
- sudo cp /usr/bin/${PROJECT_NAME}-image-customise $TEMP_CUSTOMISE
+TEMP_CUSTOMISE2=/tmp/${PROJECT_NAME}-image-customise2
+TEMP_CUSTOMISE3=/tmp/${PROJECT_NAME}-image-customise3
+TEMP_CUSTOMISE4=/tmp/${PROJECT_NAME}-image-customise4
+
+# cat all the things together
+combine_all_scripts $TEMP_CUSTOMISE2
+if [ ! -f $TEMP_CUSTOMISE2 ]; then
+ echo $'Could not combine scripts'
+ exit 627219
fi
-sudo sed -i "s|MY_USERNAME=.*|MY_USERNAME=${MY_USERNAME}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|MY_PASSWORD=.*|MY_PASSWORD=${MY_PASSWORD}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|ROUTER_IP_ADDRESS=.*|ROUTER_IP_ADDRESS=${ROUTER_IP_ADDRESS}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|BOX_IP_ADDRESS=.*|BOX_IP_ADDRESS=${BOX_IP_ADDRESS}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|NAMESERVER1=.*|NAMESERVER1=${NAMESERVER1}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|NAMESERVER2=.*|NAMESERVER2=${NAMESERVER1}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|PROJECT_NAME=.*|PROJECT_NAME=${PROJECT_NAME}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|CONFIG_FILENAME=.*|CONFIG_FILENAME=${CONFIG_FILENAME}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|SSH_PUBKEY=.*|SSH_PUBKEY=${SSH_PUBKEY}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|GENERIC_IMAGE=.*|GENERIC_IMAGE=${GENERIC_IMAGE}|g" $TEMP_CUSTOMISE
-sudo sed -i "s|MINIMAL_INSTALL=.*|MINIMAL_INSTALL=\"${MINIMAL_INSTALL}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|SSH_PORT=.*|SSH_PORT=\"${SSH_PORT}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|ONION_ONLY=.*|ONION_ONLY=\"${ONION_ONLY}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|PROJECT_REPO=.*|PROJECT_REPO=\"${PROJECT_REPO}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|DEBIAN_INSTALL_ONLY=.*|DEBIAN_INSTALL_ONLY=\"${DEBIAN_INSTALL_ONLY}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|WIFI_INTERFACE=.*|WIFI_INTERFACE=\"${WIFI_INTERFACE}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|WIFI_SSID=.*|WIFI_SSID=\"${WIFI_SSID}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|WIFI_TYPE=.*|WIFI_TYPE=\"${WIFI_TYPE}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|WIFI_PASSPHRASE=.*|WIFI_PASSPHRASE=\"${WIFI_PASSPHRASE}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|WIFI_HOTSPOT=.*|WIFI_HOTSPOT=\"${WIFI_HOTSPOT}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|WIFI_NETWORKS_FILE=.*|WIFI_NETWORKS_FILE=\"${WIFI_NETWORKS_FILE}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|VARIANT=.*|VARIANT=\"${VARIANT}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|MINIMUM_PASSWORD_LENGTH=.*|MINIMUM_PASSWORD_LENGTH=\"${MINIMUM_PASSWORD_LENGTH}\"|g" $TEMP_CUSTOMISE
-sudo sed -i "s|INSECURE=.*|INSECURE=\"${INSECURE}\"|g" $TEMP_CUSTOMISE
+
+echo $'Changing values within customised customisation script'
+cp $PROJECT_INSTALL_DIR/${PROJECT_NAME}-image-customise $TEMP_CUSTOMISE3
+if [ $MYUSERNAME ]; then
+ sed -i "s|MY_USERNAME=.*|MY_USERNAME=${MYUSERNAME}|g" $TEMP_CUSTOMISE3
+fi
+if [ $MYPASSWORD ]; then
+ sed -i "s|MY_PASSWORD=.*|MY_PASSWORD=${MYPASSWORD}|g" $TEMP_CUSTOMISE3
+fi
+sed -i "s|ROUTER_IP_ADDRESS=.*|ROUTER_IP_ADDRESS=${ROUTER_IP_ADDRESS}|g" $TEMP_CUSTOMISE3
+sed -i "s|BOX_IP_ADDRESS=.*|BOX_IP_ADDRESS=${BOX_IP_ADDRESS}|g" $TEMP_CUSTOMISE3
+sed -i "s|NAMESERVER1=.*|NAMESERVER1=${NAMESERVER1}|g" $TEMP_CUSTOMISE3
+sed -i "s|NAMESERVER2=.*|NAMESERVER2=${NAMESERVER1}|g" $TEMP_CUSTOMISE3
+sed -i "s|PROJECT_NAME=.*|PROJECT_NAME=${PROJECT_NAME}|g" $TEMP_CUSTOMISE3
+sed -i "s|CONFIG_FILENAME=.*|CONFIG_FILENAME=${CONFIG_FILENAME}|g" $TEMP_CUSTOMISE3
+sed -i "s|SSH_PUBKEY=.*|SSH_PUBKEY=${SSH_PUBKEY}|g" $TEMP_CUSTOMISE3
+sed -i "s|GENERIC_IMAGE=.*|GENERIC_IMAGE=${GENERIC_IMAGE}|g" $TEMP_CUSTOMISE3
+sed -i "s|MINIMAL_INSTALL=.*|MINIMAL_INSTALL=\"${MINIMAL_INSTALL}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|SSH_PORT=.*|SSH_PORT=\"${SSH_PORT}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|ONION_ONLY=.*|ONION_ONLY=\"${ONION_ONLY}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|PROJECT_REPO=.*|PROJECT_REPO=\"${PROJECT_REPO}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|DEBIAN_INSTALL_ONLY=.*|DEBIAN_INSTALL_ONLY=\"${DEBIAN_INSTALL_ONLY}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|WIFI_INTERFACE=.*|WIFI_INTERFACE=\"${WIFI_INTERFACE}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|WIFI_SSID=.*|WIFI_SSID=\"${WIFI_SSID}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|WIFI_TYPE=.*|WIFI_TYPE=\"${WIFI_TYPE}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|WIFI_PASSPHRASE=.*|WIFI_PASSPHRASE=\"${WIFI_PASSPHRASE}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|WIFI_HOTSPOT=.*|WIFI_HOTSPOT=\"${WIFI_HOTSPOT}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|WIFI_NETWORKS_FILE=.*|WIFI_NETWORKS_FILE=\"${WIFI_NETWORKS_FILE}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|VARIANT=.*|VARIANT=\"${VARIANT}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|MINIMUM_PASSWORD_LENGTH=.*|MINIMUM_PASSWORD_LENGTH=\"${MINIMUM_PASSWORD_LENGTH}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|INSECURE=.*|INSECURE=\"${INSECURE}\"|g" $TEMP_CUSTOMISE3
+sed -i "s|AMNESIC=.*|AMNESIC=\"${AMNESIC}\"|g" $TEMP_CUSTOMISE3
+sed -i 's|#!/bin/bash||g' $TEMP_CUSTOMISE3
+
+cat $TEMP_CUSTOMISE2 $TEMP_CUSTOMISE3 > $TEMP_CUSTOMISE4
+if [ -f $TEMP_CUSTOMISE ]; then
+ sudo rm $TEMP_CUSTOMISE
+fi
+sudo mv $TEMP_CUSTOMISE4 $TEMP_CUSTOMISE
+rm $TEMP_CUSTOMISE2 $TEMP_CUSTOMISE3
+if [ ! -f $TEMP_CUSTOMISE ]; then
+ echo $'Customised customisation script could not be created'
+ exit 735892
+fi
+sudo chmod +x $TEMP_CUSTOMISE
+echo $'Customised customisation script created'
+
echo $"starting $VMDEBOOTSTRAP"
+
# Run vmdebootstrap script to create image
+vmdebootstrap_failed=
sudo -H \
- SUITE="$SUITE" \
- MIRROR="$MIRROR" \
- BUILD_MIRROR="$BUILD_MIRROR"\
- MACHINE="$MACHINE" \
- ARCHITECTURE="$ARCHITECTURE" \
- SOURCE="$SOURCE" \
- CUSTOM_SETUP="$CUSTOM_SETUP" \
- $VMDEBOOTSTRAP \
- --log $(dirname $IMAGE)/${PROJECT_NAME}.log \
- --log-level debug \
- --size $IMAGE_SIZE \
- --image $IMAGE.img \
- --hostname ${PROJECT_NAME} \
- --verbose \
- --mirror $BUILD_MIRROR \
- --customize "$TEMP_CUSTOMISE" \
- --lock-root-password \
- --arch $ARCHITECTURE \
- --distribution $SUITE \
- $extra_opts \
- $pkgopts
+ SUITE="$SUITE" \
+ MIRROR="$MIRROR" \
+ BUILD_MIRROR="$BUILD_MIRROR"\
+ MACHINE="$MACHINE" \
+ ARCHITECTURE="$ARCHITECTURE" \
+ SOURCE="$SOURCE" \
+ CUSTOM_SETUP="$CUSTOM_SETUP" \
+ $VMDEBOOTSTRAP \
+ --log $(dirname $IMAGE)/${PROJECT_NAME}.log \
+ --log-level debug \
+ --size $IMAGE_SIZE \
+ --image $IMAGE.img \
+ --hostname ${PROJECT_NAME} \
+ --verbose \
+ --mirror $BUILD_MIRROR \
+ --customize "$TEMP_CUSTOMISE" \
+ --lock-root-password \
+ --arch $ARCHITECTURE \
+ --distribution $SUITE \
+ $extra_opts \
+ $pkgopts
echo $'Removing customised customisation script'
sudo shred -zu $TEMP_CUSTOMISE
diff --git a/src/freedombone-image-makefile b/src/freedombone-image-makefile
index 0d761027..57d4d188 100755
--- a/src/freedombone-image-makefile
+++ b/src/freedombone-image-makefile
@@ -155,6 +155,17 @@ i386: prep
$(SIGN)
@echo "Build complete."
+# build an i686 image
+i686: prep
+ $(eval ARCHITECTURE = i686)
+ $(eval MACHINE = all)
+ $(MAKE_IMAGE)
+ @rm -f $(ARCHIVE)
+ $(XZ) $(IMAGE)
+ @echo ""
+ $(SIGN)
+ @echo "Build complete."
+
# build an amd64 image
amd64: prep
$(eval ARCHITECTURE = amd64)
@@ -166,55 +177,17 @@ amd64: prep
$(SIGN)
@echo "Build complete."
-# build a virtualbox image
-virtualbox: virtualbox-i386
-
-virtualbox-i386: prep
- $(eval ARCHITECTURE = i386)
- $(eval MACHINE = virtualbox)
- $(MAKE_IMAGE)
- # Convert image to vdi hard drive
- VBoxManage convertdd $(NAME).img $(NAME).vdi
- @rm -f $(ARCHIVE)
- $(XZ) $(IMAGE)
- @echo ""
- $(SIGN)
- @echo "Build complete."
-
-virtualbox-amd64: prep
+# build an PC Engines APU image
+apu: prep
$(eval ARCHITECTURE = amd64)
- $(eval MACHINE = virtualbox)
+ $(eval MACHINE = all)
$(MAKE_IMAGE)
- # Convert image to vdi hard drive
- VBoxManage convertdd $(NAME).img $(NAME).vdi
@rm -f $(ARCHIVE)
$(XZ) $(IMAGE)
@echo ""
$(SIGN)
@echo "Build complete."
-test: test-virtualbox
-
-test-virtualbox: virtualbox
- $(eval VM_NAME = $(PROJECT_NAME)-test)
- VBoxManage createvm --name $(VM_NAME) --ostype "Debian" --register
- VBoxManage storagectl $(VM_NAME) --name "SATA Controller" --add sata \
- --controller IntelAHCI
- VBoxManage storageattach $(VM_NAME) --storagectl "SATA Controller" \
- --port 0 --device 0 --type hdd --medium $(NAME).vdi
- VBoxManage modifyvm $(VM_NAME) --pae on --memory 1024 --vram 128 \
- --nic1 nat --natpf1 ,tcp,,$(TEST_SSH_PORT),,22
- VBoxManage startvm $(VM_NAME) --type headless
- sleep $(TEST_FIRSTRUN_WAIT_TIME) # wait for first-run to complete
- echo frdm |sshpass -p frdm ssh -o UserKnownHostsFile=/dev/null \
- -o StrictHostKeyChecking=no -t -t \
- -p $(TEST_SSH_PORT) fbx@127.0.0.1 \
- "sudo plinth --diagnose" \
- |tee build/$(VM_NAME)-results_$(TODAY).log
- VBoxManage controlvm $(VM_NAME) poweroff
- VBoxManage modifyvm $(VM_NAME) --hda none
- VBoxManage unregistervm $(VM_NAME) --delete
-
# build a qemu image
qemu: qemu-i386
diff --git a/src/freedombone-image-mesh b/src/freedombone-image-mesh
index c6b4d7e1..ffd7f81f 100755
--- a/src/freedombone-image-mesh
+++ b/src/freedombone-image-mesh
@@ -31,6 +31,10 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-image-mesh
export TEXTDOMAINDIR="/usr/share/locale"
+# The browser application to use
+BROWSER=midori
+BROWSER_OPTIONS='-p'
+
MY_USERNAME='fbone'
PEER_ID=
INSTALL_DIR=/root/build
@@ -38,6 +42,8 @@ INSTALL_LOG=/var/log/${PROJECT_NAME}.log
DEFAULT_USERNAME=fbone
+GO_VERSION=1.7
+
TOX_NODES=
#TOX_NODES=(
# '192.254.75.102,2607:5600:284::2,33445,951C88B7E75C867418ACDB5D273821372BB5BD652740BCDF623A4FA293E75D2F,Tox RELENG,US'
@@ -45,427 +51,570 @@ TOX_NODES=
#)
MESH_INSTALL_DIR=/var/lib
+MESH_INSTALL_COMPLETED=/root/.mesh_setup_completed
+MESH_INSTALL_SETUP=/root/.initial_mesh_setup
+MESH_AMNESIC=/root/.amnesic
+FIRST_BOOT=/home/$MY_USERNAME/.first_boot
+
+# Tomb containing logs
+TOMB_LOG_SIZE_MB=10
+
+# tmp directory
+TOMB_TMP_SIZE_MB=10
+
+# size of the tomb used to store qtox settings
+TOMB_TOX_SIZE_MB=10
+
+# Tomb containing tox bootstrap
+TOMB_TOX_BOOTSTRAP_SIZE_MB=10
+
+MESH_INSTALL_DIR=/var/lib
+
+IPFS_PORT=4001
+
+CURRENT_BLOG_INDEX=/home/$MY_USERNAME/.blog-index
+
+function create_avahi_mesh_service {
+ service_name=$1
+ service_type=$2
+ service_protocol=$3
+ service_port=$4
+ service_description="$5"
+
+ if [ ! -d /etc/avahi ]; then
+ echo $'create_avahi_mesh_service: avahi was not installed'
+ exit 52925
+ fi
+
+ echo '' > /etc/avahi/services/${service_name}.service
+ echo '' >> /etc/avahi/services/${service_name}.service
+ echo '' >> /etc/avahi/services/${service_name}.service
+ echo " %h ${service_type} " >> /etc/avahi/services/${service_name}.service
+ echo ' ' >> /etc/avahi/services/${service_name}.service
+ echo " _${service_type}._${service_protocol} " >> /etc/avahi/services/${service_name}.service
+ echo " ${service_port} " >> /etc/avahi/services/${service_name}.service
+ echo " $service_description " >> /etc/avahi/services/${service_name}.service
+ echo ' ' >> /etc/avahi/services/${service_name}.service
+ echo ' ' >> /etc/avahi/services/${service_name}.service
+}
+
+function create_ram_disk {
+ ramdisk_size_mb=$1
+ if [ ! -d /mnt/ramdisk ]; then
+ mkdir -p /mnt/ramdisk
+ fi
+ if ! grep -q "ramdisk" /etc/fstab; then
+ mount -t tmpfs -o size=${ramdisk_size_mb}m tmpfs /mnt/ramdisk
+ echo "tmpfs /mnt/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=${ramdisk_size_mb}M 0 0" >> /etc/fstab
+ fi
+}
+
+function tmp_ram_disk {
+ ramdisk_size_mb=$1
+ if [ ! -d /tmp ]; then
+ mkdir -p /tmp
+ fi
+ if ! grep -q '/tmp' /etc/fstab; then
+ mount -t tmpfs -o size=${ramdisk_size_mb}m tmpfs /tmp
+ echo "tmpfs /tmp tmpfs nodev,nosuid,noexec,nodiratime,size=${ramdisk_size_mb}M 0 0" >> /etc/fstab
+ fi
+}
function set_hostname {
- DEFAULT_DOMAIN_NAME="$1"
+ DEFAULT_DOMAIN_NAME="$1"
- echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
- hostname $DEFAULT_DOMAIN_NAME
+ echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
+ echo "$DEFAULT_DOMAIN_NAME" > /etc/mailname
+ hostname $DEFAULT_DOMAIN_NAME
- if grep -q "127.0.1.1" /etc/hosts; then
- sed -i "s/127.0.1.1.*/127.0.1.1 $DEFAULT_DOMAIN_NAME/g" /etc/hosts
- else
- echo "127.0.1.1 $DEFAULT_DOMAIN_NAME" >> /etc/hosts
- fi
+ if grep -q "127.0.1.1" /etc/hosts; then
+ sed -i "s/127.0.1.1.*/127.0.1.1 $DEFAULT_DOMAIN_NAME/g" /etc/hosts
+ else
+ echo "127.0.1.1 $DEFAULT_DOMAIN_NAME" >> /etc/hosts
+ fi
}
function change_avahi_name {
- decarray=( 1 2 3 4 5 6 7 8 9 0 )
- PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
- sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
- sed -i "s|host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
- set_hostname P$PEER_ID
+ decarray=( 1 2 3 4 5 6 7 8 9 0 )
+ PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
+ sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
+ set_hostname P$PEER_ID
+ systemctl restart avahi-daemon
- echo "New avahi name for this peer is P$PEER_ID"
- toilet "mesh-$PEER_ID"
- echo $"avahi name changed to P${PEER_ID}.local" >> $INSTALL_LOG
-}
-
-function regenerate_ssh_host_keys {
- echo $"Regenerating ssh host keys" >> $INSTALL_LOG
- rm -f /etc/ssh/ssh_host_*
- dpkg-reconfigure openssh-server
- echo $'ssh host keys regenerated' >> $INSTALL_LOG
- # remove small moduli
- awk '$5 > 2000' /etc/ssh/moduli > ~/moduli
- mv ~/moduli /etc/ssh/moduli
- echo $'ssh small moduli removed' >> $INSTALL_LOG
-}
-
-function configure_zeronet {
- sed -i "s|ExecStart=.*|ExecStart=/usr/bin/python zeronet.py --ip_external P${PEER_ID}.local --trackers_file $MESH_INSTALL_DIR/zeronet/bootstrap|g" /etc/systemd/system/zeronet.service
- echo $"zeronet daemon updated to P${PEER_ID}.local" >> $INSTALL_LOG
-}
-
-function configure_zeronet_blog {
- echo $'Updating ZeroNet Blog' >> $INSTALL_LOG
- ZERONET_DEFAULT_BLOG_TITLE="${MY_USERNAME}'s Blog"
-
- cd $MESH_INSTALL_DIR/zeronet
- python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/blog.txt
- if [ ! -f $MESH_INSTALL_DIR/zeronet/blog.txt ]; then
- echo $'Unable to create ZeroNet blog' >> $INSTALL_LOG
- exit 7386
- fi
- blog_address=$(cat blog.txt | grep "Site address" | awk -F ':' '{print $2}')
- blog_private_key=$(cat blog.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
- ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_BLOG_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create zeronet blog address' >> $INSTALL_LOG
- exit 7358
- fi
-
- if [ ${#ZERONET_BLOG_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create zeronet blog private key' >> $INSTALL_LOG
- exit 1639
- fi
-
- if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" ]; then
- echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
- exit 7638
- fi
-
- echo $"ZeroNet Blog address: $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
- echo $"ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
- cp -r $MESH_INSTALL_DIR/zeronet/ZeroBlog/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS
-
- if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data ]; then
- mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
- fi
- cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
- sed -i "s/MyZeroBlog/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
- sed -i "s/My ZeroBlog./$ZERONET_DEFAULT_BLOG_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
- sed -i "s/ZeroBlog Demo/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
- sed -i "s|.*|$ZERONET_DEFAULT_BLOG_TAGLINE |g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
- sed -i "s/Blogging platform Demo/Blogging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
-
- # update the avahi service
- echo '' > /tmp/zeronet-blog.service
- echo '' >> /tmp/zeronet-blog.service
- echo '' >> /tmp/zeronet-blog.service
- echo ' %h ZeroNet Blog ' >> /tmp/zeronet-blog.service
- echo ' ' >> /tmp/zeronet-blog.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-blog.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-blog.service
- echo " $ZERONET_URL/$ZERONET_BLOG_ADDRESS " >> /tmp/zeronet-blog.service
- echo ' ' >> /tmp/zeronet-blog.service
- echo ' ' >> /tmp/zeronet-blog.service
- cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_BLOG_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myblog
-
- sed -i "s|ZeroNet Blog address.*|ZeroNet Blog address: $ZERONET_BLOG_ADDRESS|g" /home/$MY_USERNAME/README
- sed -i "s|ZeroNet Blog private key.*|ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY|g" /home/$MY_USERNAME/README
-
- echo $'Update of ZeroNet Blog completed' >> $INSTALL_LOG
-}
-
-function configure_zeronet_mail {
- echo $'Updating ZeroNet Mail' >> $INSTALL_LOG
- ZERONET_DEFAULT_MAIL_TITLE="${MY_USERNAME}'s Mail"
-
- cd $MESH_INSTALL_DIR/zeronet
- python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/mail.txt
- if [ ! -f $MESH_INSTALL_DIR/zeronet/mail.txt ]; then
- echo $'Unable to create ZeroNet mail' >> $INSTALL_LOG
- exit 72574
- fi
- mail_address=$(cat mail.txt | grep "Site address" | awk -F ':' '{print $2}')
- mail_private_key=$(cat mail.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
- ZERONET_MAIL_PRIVATE_KEY=${mail_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_MAIL_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create zeronet mail address' >> $INSTALL_LOG
- exit 7358
- fi
-
- if [ ${#ZERONET_MAIL_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create zeronet mail private key' >> $INSTALL_LOG
- exit 1639
- fi
-
- if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" ]; then
- echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
- exit 7638
- fi
-
- echo $"ZeroNet Mail address: $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
- echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
- cp -r $MESH_INSTALL_DIR/zeronet/ZeroMail/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS
-
- if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data ]; then
- mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
- fi
- cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
- sed -i "s/MyZeroMail/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
- sed -i "s/My ZeroMail./$ZERONET_DEFAULT_MAIL_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
- sed -i "s/ZeroMail Demo/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
- sed -i "s|.*|$ZERONET_DEFAULT_MAIL_TAGLINE |g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
- sed -i "s/Mailging platform Demo/Mailging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_MAIL_ADDRESS $ZERONET_MAIL_PRIVATE_KEY
-
- # Add an avahi service
- echo '' > /tmp/zeronet-mail.service
- echo '' >> /tmp/zeronet-mail.service
- echo '' >> /tmp/zeronet-mail.service
- echo ' %h ZeroNet Mail ' >> /tmp/zeronet-mail.service
- echo ' ' >> /tmp/zeronet-mail.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-mail.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-mail.service
- echo " $ZERONET_URL/$ZERONET_MAIL_ADDRESS " >> /tmp/zeronet-mail.service
- echo ' ' >> /tmp/zeronet-mail.service
- echo ' ' >> /tmp/zeronet-mail.service
- cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_MAIL_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/mymail
-
- sed -i "s|ZeroNet Mail address.*|ZeroNet Mail address: $ZERONET_MAIL_ADDRESS|g" /home/$MY_USERNAME/README
- sed -i "s|ZeroNet Mail private key.*|ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY|g" /home/$MY_USERNAME/README
-
- echo $'Update of ZeroNet Mail completed' >> $INSTALL_LOG
-}
-
-function configure_zeronet_forum {
- echo $'Updating ZeroNet Forum' >> $INSTALL_LOG
- ZERONET_DEFAULT_FORUM_TITLE="${MY_USERNAME}'s Forum"
-
- cd $MESH_INSTALL_DIR/zeronet
- python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/forum.txt
- if [ ! -f $MESH_INSTALL_DIR/zeronet/forum.txt ]; then
- echo $'Unable to create ZeroNet forum' >> $INSTALL_LOG
- exit 47962
- fi
- forum_address=$(cat forum.txt | grep "Site address" | awk -F ':' '{print $2}')
- forum_private_key=$(cat forum.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
- ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_FORUM_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create zeronet forum address' >> $INSTALL_LOG
- exit 76352
- fi
-
- if [ ${#ZERONET_FORUM_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create zeronet forum private key' >> $INSTALL_LOG
- exit 87356
- fi
-
- if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" ]; then
- echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
- exit 7638
- fi
-
- echo $"Forum address: $ZERONET_FORUM_ADDRESS"
- echo $"Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
- cp -r $MESH_INSTALL_DIR/zeronet/ZeroTalk/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS
- sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
- sed -i "s/ZeroTalk/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
- sed -i "s|Demo for dynamic, decentralized content publishing.|$ZERONET_DEFAULT_FORUM_TAGLINE|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
- sed -i 's/Messaging Board Demo/Messaging Board/g' $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
- sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY --inner_path data/users/content.json
-
- # Add an avahi service
- echo '' > /tmp/zeronet-forum.service
- echo '' >> /tmp/zeronet-forum.service
- echo '' >> /tmp/zeronet-forum.service
- echo ' %h ZeroNet Forum ' >> /tmp/zeronet-forum.service
- echo ' ' >> /tmp/zeronet-forum.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-forum.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-forum.service
- echo " $ZERONET_URL/$ZERONET_FORUM_ADDRESS " >> /tmp/zeronet-forum.service
- echo ' ' >> /tmp/zeronet-forum.service
- echo ' ' >> /tmp/zeronet-forum.service
- sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_FORUM_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myforum
-
- sed -i "s|ZeroNet Forum address.*|ZeroNet Forum address: $ZERONET_FORUM_ADDRESS|g" /home/$MY_USERNAME/README
- sed -i "s|ZeroNet Forum private key.*|ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY|g" /home/$MY_USERNAME/README
-
- echo $'Update of ZeroNet Forum completed' >> $INSTALL_LOG
-}
-
-function configure_zeronet_id {
- echo $'Updating ZeroID' >> $INSTALL_LOG
-
- cd $MESH_INSTALL_DIR/zeronet
- python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/zeroid.txt
- if [ ! -f $MESH_INSTALL_DIR/zeronet/zeroid.txt ]; then
- echo $'Unable to create ZeroID' >> $INSTALL_LOG
- exit 47962
- fi
- zeroid_address=$(cat zeroid.txt | grep "Site address" | awk -F ':' '{print $2}')
- zeroid_private_key=$(cat zeroid.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_ID_ADDRESS=${zeroid_address//[[:blank:]]/}
- ZERONET_ID_PRIVATE_KEY=${zeroid_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_ID_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_ID_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_ID_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create ZeroID address' >> $INSTALL_LOG
- exit 76352
- fi
-
- if [ ${#ZERONET_ID_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_ID_ADDRESS" >> $INSTALL_LOG
- echo $"Public key: $ZERONET_ID_PRIVATE_KEY" >> $INSTALL_LOG
- echo $'Unable to create ZeroID private key' >> $INSTALL_LOG
- exit 87356
- fi
-
- if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS" ]; then
- echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS" >> $INSTALL_LOG
- exit 378434
- fi
-
- echo $"ZeroID address: $ZERONET_ID_ADDRESS"
- echo $"ZeroID private key: $ZERONET_ID_PRIVATE_KEY"
- cp -r $MESH_INSTALL_DIR/zeronet/ZeroID/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS
- # TODO
- sed -i "s///g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_ID_ADDRESS $ZERONET_ID_PRIVATE_KEY --inner_path data/users/content.json
-
- # Add an avahi service
- echo '' > /tmp/zeronet-id.service
- echo '' >> /tmp/zeronet-id.service
- echo '' >> /tmp/zeronet-id.service
- echo ' %h ZeroID ' >> /tmp/zeronet-id.service
- echo ' ' >> /tmp/zeronet-id.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-id.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-id.service
- echo " $ZERONET_URL/$ZERONET_ID_ADDRESS " >> /tmp/zeronet-id.service
- echo ' ' >> /tmp/zeronet-id.service
- echo ' ' >> /tmp/zeronet-id.service
- sudo cp /tmp/zeronet-id.service /etc/avahi/services/zeronet-id.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_ID_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myzeroid
-
- sed -i "s|ZeroID address.*|ZeroID address: $ZERONET_ID_ADDRESS|g" /home/$MY_USERNAME/README
- sed -i "s|ZeroID private key.*|ZeroID private key: $ZERONET_ID_PRIVATE_KEY|g" /home/$MY_USERNAME/README
-
- echo $'Update of ZeroID completed' >> $INSTALL_LOG
+ echo "New avahi name for this peer is P$PEER_ID"
+ echo $"avahi name changed to P${PEER_ID}.local" >> $INSTALL_LOG
}
function configure_toxcore {
- echo $'Configuring toxcore' >> $INSTALL_LOG
+ echo $'Configuring toxcore' >> $INSTALL_LOG
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- fi
+ TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- echo $'Enabling toxcore daemon' >> $INSTALL_LOG
- systemctl enable tox-bootstrapd.service
- echo $'Regenerating Tox bootstrap node keys' >> $INSTALL_LOG
- systemctl stop tox-bootstrapd.service
- if [ -f /var/lib/tox-bootstrapd/keys ]; then
- rm /var/lib/tox-bootstrapd/keys
- fi
- systemctl start tox-bootstrapd.service
- # sleep for a while so that the tox keys can be generated
- sleep 30
- TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
- TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | awk -F ' ' '{print $8}' | tail -1)
- if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then
- echo $'WARNING: Could not obtain the tox node public key' >> $INSTALL_LOG
- exit 46362
- fi
+ if [ -f $MESH_AMNESIC ]; then
+ # change to the amnesic mount
+ sed -i 's|/var/lib/tox-bootstrapd|/media/tox-bootstrapd|g' /etc/tox-bootstrapd.conf
+ systemctl stop tox-bootstrapd.service
+ sed -i 's|WorkingDirectory=.*|WorkingDirectory=/media/tox-bootstrapd|g' /etc/systemd/system/tox-bootstrapd.service
+ systemctl daemon-reload
+ userdel -r tox-bootstrapd
+ useradd --home-dir /media/tox-bootstrapd --create-home --system --shell /sbin/nologin --comment "Account to run Tox's DHT bootstrap daemon" --user-group tox-bootstrapd
+ chmod 700 /media/tox-bootstrapd
+ fi
- # save the public key for later reference
- echo "$TOX_PUBLIC_KEY" > $TOX_BOOTSTRAP_ID_FILE
- echo $'Configured toxcore' >> $INSTALL_LOG
+ echo $'Enabling toxcore daemon' >> $INSTALL_LOG
+ chmod +x /etc/systemd/system/tox-bootstrapd.service
+ systemctl enable tox-bootstrapd.service
- echo $'Clearing toxic client settings' >> $INSTALL_LOG
- if [ -d /home/$MY_USERNAME/.config/tox ]; then
- rm -rf /home/$MY_USERNAME/.config/tox
- fi
- echo $'toxic client configured' >> $INSTALL_LOG
+ echo $'Regenerating Tox bootstrap node keys' >> $INSTALL_LOG
+ systemctl stop tox-bootstrapd.service
+ if [ -f /var/lib/tox-bootstrapd/keys ]; then
+ rm /var/lib/tox-bootstrapd/keys
+ fi
+ systemctl start tox-bootstrapd.service
+ # sleep for a while so that the tox keys can be generated
+ sleep 30
+ TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
+ if [ -f $MESH_AMNESIC ]; then
+ TOX_BOOTSTRAP_ID_FILE=/media/tox-bootstrapd/pubkey.txt
+ fi
+ TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | awk -F ' ' '{print $8}' | tail -1)
+ if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then
+ echo $'WARNING: Could not obtain the tox node public key' >> $INSTALL_LOG
+ exit 46362
+ fi
+
+ # save the public key for later reference
+ echo "$TOX_PUBLIC_KEY" > $TOX_BOOTSTRAP_ID_FILE
+ echo $'Configured toxcore' >> $INSTALL_LOG
}
-function disable_password_logins {
- if [ ! -d /home/$DEFAULT_USERNAME ]; then
- echo $"Home directory for $DEFAULT_USERNAME not found"
- exit 3682572
- fi
+function create_tox_user {
+ # remove any existing user
+ if [ -f /home/${MY_USERNAME}/.config/tox/data.tox ]; then
+ rm -f /home/${MY_USERNAME}/.config/tox/data*
+ fi
+ if [ -d /home/${MY_USERNAME}/.config/tox/avatars ]; then
+ rm -rf /home/${MY_USERNAME}/.config/tox/avatars
+ fi
+ if [ ! -f /home/${MY_USERNAME}/.first_boot ]; then
+ touch /home/${MY_USERNAME}/.first_boot
+ fi
- # create an authorized_keys file
- if [ ! -d /home/$DEFAULT_USERNAME/.ssh ]; then
- mkdir -p /home/$DEFAULT_USERNAME/.ssh
- fi
- if [ ! -f /home/$DEFAULT_USERNAME/.ssh/authorized_keys ]; then
- touch /home/$DEFAULT_USERNAME/.ssh/authorized_keys
- fi
- chown -R $DEFAULT_USERNAME:$DEFAULT_USERNAME /home/$DEFAULT_USERNAME/.ssh
+ if [ ! -d /home/$MY_USERNAME/Desktop ]; then
+ return
+ fi
- # disable password logins
- sed -i 's|#PasswordAuthentication.*|PasswordAuthentication no|g' /etc/ssh/sshd_config
- sed -i 's|PasswordAuthentication.*|PasswordAuthentication no|g' /etc/ssh/sshd_config
+ toxid -u $MY_USERNAME -n data
+ chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config/tox
+
+ chmod +x /home/$MY_USERNAME/Desktop/*.desktop
+ chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/Desktop/*
+ echo $'Created Tox user' >> $INSTALL_LOG
}
-function disable_screen_lock {
- dconf write /org/gnome/desktop/screensaver/lock-enabled false
+function show_desktop_icons {
+ if [ ! -d /home/$MY_USERNAME/Desktop ]; then
+ return
+ fi
+
+ echo '#!/bin/bash' > /home/$MY_USERNAME/.showhelp
+ echo "pkill $BROWSER" >> /home/$MY_USERNAME/.showhelp
+ echo "$BROWSER $BROWSER_OPTIONS /home/$MY_USERNAME/help/mesh.html" >> /home/$MY_USERNAME/.showhelp
+ chmod +x /home/$MY_USERNAME/.showhelp
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.showhelp
+
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Version=1.0' >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Name=Help' >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Comment=Show help' >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo "Exec=bash -c /home/$MY_USERNAME/.showhelp" >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Icon=/usr/share/freedombone/avatars/help.png' >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/help.desktop
+ echo 'Categories=Application;' >> /home/$MY_USERNAME/Desktop/help.desktop
+
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Version=1.0' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Name=Wifi' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Comment=Check wifi status' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Exec=mate-terminal -e "sudo batman monitor"' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Icon=/usr/share/freedombone/avatars/wifi.png' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+ echo 'Categories=Application;' >> /home/$MY_USERNAME/Desktop/wifi.desktop
+
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Version=1.0' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Name=Network Restart' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Comment=Restart batman' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Exec=mate-terminal -e "sudo batman restart 2> /dev/null"' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Icon=/usr/share/freedombone/avatars/restart.png' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/restart.desktop
+ echo 'Categories=Application;' >> /home/$MY_USERNAME/Desktop/restart.desktop
+
+ echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Version=1.0' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Name=New Identity' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Comment=Create a new identity' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Exec=mate-terminal -e freedombone-mesh-reset' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Icon=/usr/share/freedombone/avatars/newidentity.png' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+ echo 'Categories=Application;' >> /home/$MY_USERNAME/Desktop/new_identity.desktop
+
+ # set permissions
+ chmod +x /home/$MY_USERNAME/Desktop/*.desktop
+ chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/Desktop/*
+ chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/.config
+ chown -R ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/.config/tox
+ chown -R ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/.config/autostart
+ chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/*.sh
+
+ # link to Tahoe-LAFS Magic folder
+ #ln -s /home/${MY_USERNAME}/Desktop/${TAHOELAFS_SHARED_DIR} /home/${MY_USERNAME}/${TAHOELAFS_SHARED_DIR}
+
+ # restart caja
+ killall caja
+ killall mate-panel
}
function enable_batman_daemon {
- systemctl enable batman
- systemctl daemon-reload
+ systemctl enable batman
+ systemctl daemon-reload
}
-if [ -f /root/.initial_mesh_setup ]; then
- if [ $1 ]; then
- MY_USERNAME=$1
- fi
+function mesh_amnesic {
+ if [ ! -f $MESH_AMNESIC ]; then
+ return
+ fi
- # sleep in order to allow other daemons to start up
- sleep 15
+ echo '#!/bin/bash' > /usr/bin/amnesic
+ echo '' >> /usr/bin/amnesic
+ echo 'MY_USERNAME=$1' >> /usr/bin/amnesic
+ echo 'tomb slam all' >> /usr/bin/amnesic
+ echo "if [ -f /home/${MY_USERNAME}/.bash_history ]; then" >> /usr/bin/amnesic
+ echo " shred -zu /home/${MY_USERNAME}/.bash_history" >> /usr/bin/amnesic
+ echo 'fi' >> /usr/bin/amnesic
+ echo "if [ -f /home/${MY_USERNAME}/.xsession-errors ]; then" >> /usr/bin/amnesic
+ echo " shred -zu /home/${MY_USERNAME}/.xsession-errors" >> /usr/bin/amnesic
+ echo 'fi' >> /usr/bin/amnesic
+ echo '' >> /usr/bin/amnesic
+ echo 'exit 0' >> /usr/bin/amnesic
+ chmod +x /usr/bin/amnesic
- # clear the install log
- if [ -f $INSTALL_LOG ]; then
- rm $INSTALL_LOG
- fi
+ if [ ! -f /etc/systemd/system/amnesic.service ]; then
+ echo '[Unit]' > /etc/systemd/system/amnesic.service
+ echo 'Description=Amnesic Mesh' >> /etc/systemd/system/amnesic.service
+ echo '' >> /etc/systemd/system/amnesic.service
+ echo '[Service]' >> /etc/systemd/system/amnesic.service
+ echo 'User=root' >> /etc/systemd/system/amnesic.service
+ echo 'Group=root' >> /etc/systemd/system/amnesic.service
+ echo 'Type=oneshot' >> /etc/systemd/system/amnesic.service
+ echo 'RemainAfterExit=true' >> /etc/systemd/system/amnesic.service
+ echo 'ExecStart=/bin/true' >> /etc/systemd/system/amnesic.service
+ echo "ExecStop=/usr/bin/amnesic $MY_USERNAME" >> /etc/systemd/system/amnesic.service
+ echo '' >> /etc/systemd/system/amnesic.service
+ echo '[Install]' >> /etc/systemd/system/amnesic.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/amnesic.service
- echo $'Beginning mesh node setup' >> $INSTALL_LOG
- enable_batman_daemon
- change_avahi_name
- regenerate_ssh_host_keys
- configure_zeronet_blog
- configure_zeronet_mail
- configure_zeronet_forum
- configure_zeronet_id
- configure_toxcore
- configure_zeronet
- disable_password_logins
- disable_screen_lock
+ chmod +x /etc/systemd/system/amnesic.service
+ systemctl daemon-reload
+ fi
+ systemctl enable amnesic
+ systemctl start amnesic
+}
- rm /root/.initial_mesh_setup
- systemctl disable mesh-setup.service
- touch /root/.mesh_setup_completed
- echo $'Mesh node setup complete. Rebooting...' >> $INSTALL_LOG
- reboot
+function mesh_restart_daemons {
+ systemctl restart avahi-daemon
+ systemctl restart tox-bootstrapd
+ echo $'Daemons restarted' >> $INSTALL_LOG
+}
+
+function create_tomb {
+ tomb_name=$1
+ tomb_size=$2
+
+ if [ -f /tmp/${tomb_name}.tomb ]; then
+ tomb slam /tmp/${tomb_name}.tomb
+ fi
+
+ # make a temporary password
+ tomb dig -s ${tomb_size} /tmp/${tomb_name}.tomb
+ if [ ! -f /tmp/${tomb_name}.tomb ]; then
+ echo "WARNING: ${tomb_name} tomb did not install properly" >> /var/log/${PROJECT_NAME}.log
+ tomb >> /var/log/${PROJECT_NAME}.log
+ fi
+ TOMB_TEMP_PASSWORD="$(openssl rand -base64 32 | cut -c1-30)"
+ tomb forge /mnt/ramdisk/${tomb_name}.tomb.key --tomb-pwd "${TOMB_TEMP_PASSWORD}" --unsafe
+ tomb lock /tmp/${tomb_name}.tomb -k /mnt/ramdisk/${tomb_name}.tomb.key --tomb-pwd "${TOMB_TEMP_PASSWORD}" --unsafe
+ tomb open /tmp/${tomb_name}.tomb -k /mnt/ramdisk/${tomb_name}.tomb.key --tomb-pwd "${TOMB_TEMP_PASSWORD}" --unsafe
+ # stop stuff from popping up
+ pkill caja
+
+ # clear the temporary password
+ TOMB_TEMP_PASSWORD=
+}
+
+function setup_amnesic_data {
+ if [ ! -f $MESH_AMNESIC ]; then
+ return
+ fi
+ if [ ! -d /mnt/ramdisk ]; then
+ return
+ fi
+
+ # clear crypttab
+ if [ -f /etc/crypttab ]; then
+ shred -zu /etc/crypttab
+ touch /etc/crypttab
+ fi
+
+ tomb_name=log
+ create_tomb ${tomb_name} $TOMB_LOG_SIZE_MB
+ if [ -d /media/${tomb_name} ]; then
+ if [ -d /var/log ]; then
+ if [ ! -d /var/log_base ]; then
+ mv /var/log /var/log_base
+ fi
+ fi
+ ln -s /media/${tomb_name} /var/log
+ if [ -d /var/log_base ]; then
+ cp -rp /var/log_base/* /media/${tomb_name}
+ fi
+ echo "${tomb_name} tomb created" >> $INSTALL_LOG
+ else
+ echo "WARNING: ${tomb_name} tomb not found" >> $INSTALL_LOG
+ fi
+
+ tomb_name=tox-bootstrapd
+ if [ -f /etc/systemd/system/${tomb_name}.service ]; then
+ systemctl stop ${tomb_name}
+ fi
+ create_tomb ${tomb_name} $TOMB_TOX_BOOTSTRAP_SIZE_MB
+ if [ -d /media/${tomb_name} ]; then
+ if [ -d /var/lib/tox-bootstrapd ]; then
+ if [ ! -d /var/lib/tox-bootstrapd_base ]; then
+ mv /var/lib/tox-bootstrapd /var/lib/tox-bootstrapd_base
+ fi
+ fi
+ if [ -d /var/lib/tox-bootstrapd ]; then
+ shred -zu /var/lib/tox-bootstrapd/*
+ rm -rf /var/lib/tox-bootstrapd
+ fi
+ ln -s /media/${tomb_name} /var/lib/tox-bootstrapd
+ if [ -d /var/lib/tox-bootstrapd_base ]; then
+ cp -rp /var/lib/tox-bootstrapd_base/* /media/${tomb_name}
+ fi
+ echo "${tomb_name} tomb created" >> $INSTALL_LOG
+ else
+ echo "WARNING: ${tomb_name} tomb not found" >> $INSTALL_LOG
+ fi
+
+ tomb_name=tox
+ create_tomb ${tomb_name} $TOMB_TOX_SIZE_MB
+ if [ -d /media/${tomb_name} ]; then
+ if [ ! -d /home/${MY_USERNAME}/.config ]; then
+ mkdir -p /home/${MY_USERNAME}/.config
+ chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
+ fi
+ if [ -d /home/${MY_USERNAME}/.config/${tomb_name} ]; then
+ rm -rf /home/${MY_USERNAME}/.config/${tomb_name}
+ fi
+ ln -s /media/${tomb_name} /home/${MY_USERNAME}/.config/${tomb_name}
+ chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config/${tomb_name}
+ chown -R ${MY_USERNAME}:${MY_USERNAME} /media/${tomb_name}
+ echo "${tomb_name} tomb created" >> $INSTALL_LOG
+ else
+ echo "WARNING: ${tomb_name} tomb not found" >> $INSTALL_LOG
+ fi
+}
+
+function setup_ipfs {
+ IPFS_PATH=/usr/bin
+ IPFS_KEY_LENGTH=2048
+ IPFS_COMMAND=$IPFS_PATH/ipfs
+ IPFS_PUBLIC=/home/$MY_USERNAME/.ipfs-public
+
+ su -c "systemctl --user enable ipfs" - $MY_USERNAME
+
+ if [ -f $CURRENT_BLOG_INDEX ]; then
+ shred -zu $CURRENT_BLOG_INDEX
+ fi
+
+ if [ -d /home/$MY_USERNAME/Public ]; then
+ rm /home/$MY_USERNAME/Desktop/Public
+ rm -rf /home/$MY_USERNAME/Public
+ fi
+
+ if [ -d /home/$MY_USERNAME/CreateBlog/content/images ]; then
+ shred -zu /home/$MY_USERNAME/CreateBlog/content/images/*
+ fi
+
+ if [ -d /home/$MY_USERNAME/CreateBlog/content ]; then
+ shred -zu /home/$MY_USERNAME/CreateBlog/content/*
+ if grep -q "THEME=" /home/$MY_USERNAME/CreateBlog/pelicanconf.py; then
+ sed -i "s|THEME=.*|THEME='themes/nice-blog'|g" /home/$MY_USERNAME/CreateBlog/pelicanconf.py
+ else
+ echo "THEME='themes/nice-blog'" >> /home/$MY_USERNAME/CreateBlog/pelicanconf.py
+ fi
+ fi
+
+ if [ -d /home/$MY_USERNAME/.ipfs ]; then
+ shred -zu /home/$MY_USERNAME/.ipfs/config
+ rm -rf /home/$MY_USERNAME/.ipfs
+ su -c "systemctl --user restart ipfs" - $MY_USERNAME
+ else
+ su -c "systemctl --user start ipfs" - $MY_USERNAME
+ fi
+
+ if [ -f /home/$MY_USERNAME/.blog-index ]; then
+ shred -zu /home/$MY_USERNAME/.blog-index
+ fi
+
+ if [ -f /home/$MY_USERNAME/.blog-theme-index ]; then
+ shred -zu /home/$MY_USERNAME/.blog-theme-index
+ fi
+
+ if [ -f /home/$MY_USERNAME/.ipfs-id ]; then
+ shred -zu /home/$MY_USERNAME/.ipfs-id
+ fi
+
+ if [ -f /home/$MY_USERNAME/.ipfs-public ]; then
+ shred -zu /home/$MY_USERNAME/.ipfs-public
+ fi
+
+ su -c "$IPFS_COMMAND init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
+ if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
+ echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG
+ return
+ fi
+
+ MY_IPFS_ID=/home/$MY_USERNAME/.ipfs-id
+ su -c "echo \$($IPFS_COMMAND id | grep '\"ID\":' | awk -F '\"' '{print \$4}') > $MY_IPFS_ID" - $MY_USERNAME
+ if [ ! -f $MY_IPFS_ID ]; then
+ echo 'No IPFS identity was created' >> $INSTALL_LOG
+ return
+ fi
+
+ IPFS_PEER_ID=$(cat $MY_IPFS_ID)
+ if [ ${#IPFS_PEER_ID} -lt 10 ]; then
+ echo 'Invalid IPFS peer ID' >> $INSTALL_LOG
+ echo "$IPFS_PEER_ID" >> $INSTALL_LOG
+ return
+ fi
+
+ # make a public directory
+ TOX_ID='none'
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
+ if [ ! -d /home/$MY_USERNAME/Public ]; then
+ mkdir /home/$MY_USERNAME/Public
+ echo $'Files within this directory will be publicly visible on the network' > /home/$MY_USERNAME/Public/README.txt
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Public
+ ln -s /home/$MY_USERNAME/Public /home/$MY_USERNAME/Desktop/Public
+ su -c "echo \$($IPFS_COMMAND add -rq /home/$MY_USERNAME/Public | tail -n 1) > $IPFS_PUBLIC" - $MY_USERNAME
+ if [ ! -f $IPFS_PUBLIC ]; then
+ echo $'Unable to create public IPFS directory' >> $INSTALL_LOG
+ exit 368225
+ fi
+ fi
+ TOX_ID=$(su -c 'toxid' - $MY_USERNAME)
+ fi
+
+ create_avahi_mesh_service "ipfs_id" "ipfs_id" "udp" "$IPFS_PORT" "${IPFS_PEER_ID}:${TOX_ID}"
+
+ echo "IPFS installed with ID ${IPFS_PEER_ID}" >> $INSTALL_LOG
+}
+
+function setup_tahoelafs {
+ reconfigure_tahoelafs
+
+ TAHOELAFS_CONFIG=/home/${MY_USERNAME}/.tahoe/tahoe.cfg
+ if [ ! -f ${TAHOELAFS_CONFIG} ]; then
+ exit 673923
+ fi
+ echo $'Configured Tahoe-LAFS' >> $INSTALL_LOG
+}
+
+# whether to reset the identity
+set_new_identity=
+if [ $2 ]; then
+ if [[ "$2" == $"new"* ]]; then
+ if [ ! -f $MESH_INSTALL_SETUP ]; then
+ touch $MESH_INSTALL_SETUP
+ fi
+ set_new_identity=1
+ fi
+ if [[ "$2" == $"amnesic"* ]]; then
+ if [ ! -f $MESH_AMNESIC ]; then
+ touch $MESH_AMNESIC
+ fi
+ if [ ! -f $MESH_INSTALL_SETUP ]; then
+ touch $MESH_INSTALL_SETUP
+ fi
+ set_new_identity=1
+ fi
+fi
+
+if [ -f $MESH_INSTALL_SETUP ]; then
+ if [ $1 ]; then
+ MY_USERNAME=$1
+ fi
+
+ if [ ! $set_new_identity ]; then
+ # sleep in order to allow other daemons to start up
+ sleep 5
+ fi
+
+ # clear the install log
+ if [ -f $INSTALL_LOG ]; then
+ rm $INSTALL_LOG
+ fi
+
+ echo $'Beginning mesh node setup' >> $INSTALL_LOG
+
+ if [ -d /home/$MY_USERNAME/.config ]; then
+ chown ${MY_USERNAME}:${MY_USERNAME} /home/$MY_USERNAME/.config
+ fi
+
+ #tomb slam all
+ tmp_ram_disk 10
+ enable_batman_daemon
+ #create_ram_disk 1
+ #setup_amnesic_data
+ change_avahi_name
+ configure_toxcore
+ create_tox_user
+ #setup_tahoelafs
+ setup_ipfs
+ mesh_amnesic
+
+ if [ ! -f $MESH_AMNESIC ]; then
+ rm $MESH_INSTALL_SETUP
+ systemctl disable mesh-setup.service
+ fi
+
+ show_desktop_icons
+
+ mesh_restart_daemons
+ if [ ! -f $MESH_INSTALL_COMPLETED ]; then
+ echo $'Mesh node setup complete' >> $INSTALL_LOG
+ touch $MESH_INSTALL_COMPLETED
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
+ touch $FIRST_BOOT
+ chown ${MY_USERNAME}:${MY_USERNAME} $FIRST_BOOT
+ fi
+
+ # set the desktop background
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
+ MESH_DESKTOP_BACKGROUND_IMAGE=/usr/local/share/${PROJECT_NAME}_mesh_background.png
+ cp $MESH_DESKTOP_BACKGROUND_IMAGE /usr/share/images/desktop-base/${PROJECT_NAME}_mesh_background.png
+ rm /usr/share/images/desktop-base/desktop-background
+ ln -s /usr/share/images/desktop-base/${PROJECT_NAME}_mesh_background.png /usr/share/images/desktop-base/desktop-background
+ fi
+ reboot
+ fi
fi
exit 0
diff --git a/src/freedombone-image-vmdebootstrap b/src/freedombone-image-vmdebootstrap
index d9182569..76f29b49 100755
--- a/src/freedombone-image-vmdebootstrap
+++ b/src/freedombone-image-vmdebootstrap
@@ -31,15 +31,77 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-image-vmdebootstrap
export TEXTDOMAINDIR="/usr/share/locale"
+VMDEBOOTSTRAP_REPO="https://github.com/bashrc/vmdebootstrap"
+VMDEBOOTSTRAP_BRANCH='bashrc/freedombone'
+
mkdir -p vendor
if [ -d vendor/vmdebootstrap ] ; then
(cd vendor/vmdebootstrap; git checkout .; git pull)
else
- git clone git://git.liw.fi/vmdebootstrap vendor/vmdebootstrap
+ git clone $VMDEBOOTSTRAP_REPO vendor/vmdebootstrap
fi
+
+if [ ! -d /usr/share/distro-info ]; then
+ sudo mkdir -p /usr/share/distro-info
+fi
+
+if [ ! -f /usr/share/distro-info/debian.csv ]; then
+ sudo mkdir -p /usr/share/distro-info
+
+ cat < /tmp/debian.csv
+version,codename,series,created,release,eol
+1.1,Buzz,buzz,1993-08-16,1996-06-17,1997-06-05
+1.2,Rex,rex,1996-06-17,1996-12-12,1998-06-05
+1.3,Bo,bo,1996-12-12,1997-06-05,1999-03-09
+2.0,Hamm,hamm,1997-06-05,1998-07-24,2000-03-09
+2.1,Slink,slink,1998-07-24,1999-03-09,2000-10-30
+2.2,Potato,potato,1999-03-09,2000-08-15,2003-07-30
+3.0,Woody,woody,2000-08-15,2002-07-19,2006-06-30
+3.1,Sarge,sarge,2002-07-19,2005-06-06,2008-03-30
+4.0,Etch,etch,2005-06-06,2007-04-08,2010-02-15
+5.0,Lenny,lenny,2007-04-08,2009-02-14,2012-02-06
+6.0,Squeeze,squeeze,2009-02-14,2011-02-06,2014-05-31
+7,Wheezy,wheezy,2011-02-06,2013-05-04
+8,Jessie,jessie,2013-05-04,2015-04-25
+9,Stretch,stretch,2015-04-25
+10,Buster,buster,2018-07-01
+,Sid,sid,1993-08-16
+,Experimental,experimental,1993-08-16
+EOF
+ sudo mv /tmp/debian.csv /usr/share/distro-info/
+fi
+
+if [ ! -f /usr/share/distro-info/ubuntu.csv ]; then
+ cat < /tmp/ubuntu.csv
+version,codename,series,created,release,eol,eol-server
+4.10,Warty Warthog,warty,2004-03-05,2004-10-20,2006-04-30
+5.04,Hoary Hedgehog,hoary,2004-10-20,2005-04-08,2006-10-31
+5.10,Breezy Badger,breezy,2005-04-08,2005-10-12,2007-04-13
+6.06 LTS,Dapper Drake,dapper,2005-10-12,2006-06-01,2009-07-14,2011-06-01
+6.10,Edgy Eft,edgy,2006-06-01,2006-10-26,2008-04-25
+7.04,Feisty Fawn,feisty,2006-10-26,2007-04-19,2008-10-19
+7.10,Gutsy Gibbon,gutsy,2007-04-19,2007-10-18,2009-04-18
+8.04 LTS,Hardy Heron,hardy,2007-10-18,2008-04-24,2011-05-12,2013-05-09
+8.10,Intrepid Ibex,intrepid,2008-04-24,2008-10-30,2010-04-30
+9.04,Jaunty Jackalope,jaunty,2008-10-30,2009-04-23,2010-10-23
+9.10,Karmic Koala,karmic,2009-04-23,2009-10-29,2011-04-29
+10.04 LTS,Lucid Lynx,lucid,2009-10-29,2010-04-29,2013-05-09,2015-04-29
+10.10,Maverick Meerkat,maverick,2010-04-29,2010-10-10,2012-04-10
+11.04,Natty Narwhal,natty,2010-10-10,2011-04-28,2012-10-28
+11.10,Oneiric Ocelot,oneiric,2011-04-28,2011-10-13,2013-05-09
+12.04 LTS,Precise Pangolin,precise,2011-10-13,2012-04-26,2017-04-26
+12.10,Quantal Quetzal,quantal,2012-04-26,2012-10-18,2014-05-16
+13.04,Raring Ringtail,raring,2012-10-18,2013-04-25,2014-01-27
+13.10,Saucy Salamander,saucy,2013-04-25,2013-10-17,2014-07-17
+14.04 LTS,Trusty Tahr,trusty,2013-10-17,2014-04-17,2019-04-17
+14.10,Utopic Unicorn,utopic,2014-04-17,2014-10-23,2015-07-23
+15.04,Vivid Vervet,vivid,2014-10-23,2015-04-23,2016-01-23
+15.10,Wily Werewolf,wily,2015-04-23,2015-10-22,2016-07-22
+16.04 LTS,Xenial Xerus,xenial,2015-10-22,2016-04-21,2021-04-21
+16.10,Yakkety Yak,yakkety,2016-04-21,2016-10-20,2017-07-20
+EOF
+ sudo mv /tmp/ubuntu.csv /usr/share/distro-info/
+fi
+
cd vendor/vmdebootstrap
-git checkout tags/vmdebootstrap-0.8
-for f in ../../vendor-patches/vmdebootstrap/* ; do
- echo applying $(basename $f)
- patch -p1 < $f
-done
+git checkout $VMDEBOOTSTRAP_BRANCH
diff --git a/src/freedombone-keydrive b/src/freedombone-keydrive
index 726639e7..78bcea27 100755
--- a/src/freedombone-keydrive
+++ b/src/freedombone-keydrive
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -135,6 +135,10 @@ if [[ $MASTER_DRIVE == "yes" || $MASTER_DRIVE == "y" || $MASTER_DRIVE == "1" ]];
exit 73025
fi
cp -rf /home/$MY_USERNAME/.gnupg $USB_MOUNT
+ if [ -d /etc/letsencrypt ]; then
+ cp -rf /etc/letsencrypt $USB_MOUNT
+ echo $"LetsEncrypt keys copied to $USB_DRIVE"
+ fi
if [ -d $USB_MOUNT/.gnupg ]; then
echo $"GPG Keyring copied to $USB_DRIVE. You may now remove the drive."
else
diff --git a/src/freedombone-logging b/src/freedombone-logging
index 79b89304..de413f43 100755
--- a/src/freedombone-logging
+++ b/src/freedombone-logging
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -35,63 +35,214 @@ export TEXTDOMAINDIR="/usr/share/locale"
WEBSERVER_LOG_LEVEL='warn'
+function turn_off_rsys_logging {
+ sed -i 's|mail,news.none.*|mail,news.none /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|auth,authpriv.\*.*|auth,authpriv.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.info.*|mail.info /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.warn.*|mail.warn /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.err.*|mail.err /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|daemon.\*.*|daemon.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.\*.*|mail.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|user.\*.*|user.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
+ sed -i 's|cron.\*.*|cron.\* /dev/null|g' /etc/rsyslog.conf
+ shred -zu /var/log/wtmp*
+ shred -zu /var/log/debug*
+ shred -zu /var/log/cron.*
+ shred -zu /var/log/auth.*
+ shred -zu /var/log/mail.*
+ shred -zu /var/log/daemon.*
+ shred -zu /var/log/user.*
+ shred -zu /var/log/messages*
+}
+
+function turn_on_rsys_logging {
+ sed -i 's|mail,news.none.*|mail,news.none -/var/log/messages|g' /etc/rsyslog.conf
+ sed -i 's|auth,authpriv.\*.*|auth,authpriv.\* /var/log/auth.log|g' /etc/rsyslog.conf
+ sed -i 's|mail.info.*|mail.info -/var/log/mail.info|g' /etc/rsyslog.conf
+ sed -i 's|mail.warn.*|mail.warn -/var/log/mail.warn|g' /etc/rsyslog.conf
+ sed -i 's|mail.err.*|mail.err /var/log/mail.err|g' /etc/rsyslog.conf
+ sed -i 's|daemon.\*.*|daemon.\* -/var/log/daemon.log|g' /etc/rsyslog.conf
+ sed -i 's|mail.\*.*|mail.\* -/var/log/mail.log|g' /etc/rsyslog.conf
+ sed -i 's|user.\*.*|user.\* -/var/log/user.log|g' /etc/rsyslog.conf
+ sed -i 's|news.none;mail.none.*|news.none;mail.none -/var/log/debug|g' /etc/rsyslog.conf
+ sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none -/var/log/syslog|g' /etc/rsyslog.conf
+ sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
+ sed -i 's|cron.\*.*|cron.\* /var/log/cron.log|g' /etc/rsyslog.conf
+}
+
if [ ! "$1" ]; then
exit 1
fi
if [[ "$1" == "on" || "$1" == "On" || "$1" == "ON" ]]; then
- if [ -d /etc/nginx ]; then
- for filename in /etc/nginx/sites-available/* ; do
- filename_domain=$(echo "$filename" | awk -F '/' '{print $5}')
- sed -i "s|access_log.*|access_log /var/log/nginx/$filename_domain.access.log;|g" $filename
- sed -i "s|error_log.*|error_log /var/log/nginx/$filename_domain.err.log $WEBSERVER_LOG_LEVEL;|g" $filename
- done
- fi
- if [ -f /etc/init.d/spamassassin ]; then
- sed -i 's|DOPTIONS="-s null -d --pidfile=$PIDFILE"|DOPTIONS="-d --pidfile=$PIDFILE"|g' /etc/init.d/spamassassin
- fi
- if [ -d /etc/prosody ]; then
- sed -i 's|info = "/dev/null";|info = "/var/log/prosody/prosody.log";|g' /etc/prosody/prosody.cfg.lua
- sed -i 's|error = "/dev/null";|error = "/var/log/prosody/prosody.err";|g' /etc/prosody/prosody.cfg.lua
- fi
- if [ -d /etc/exim4 ]; then
- sed -i 's|log_selector =.*|log_selector = MAIN_LOG_SELECTOR|g' /etc/exim4/conf.d/main/90_exim4-config_log_selector
- fi
+ if [ -f /etc/fail2ban/fail2ban.conf ]; then
+ sed -i 's|loglevel.*|loglevel = 3|g' /etc/fail2ban/fail2ban.conf
+ sed -i 's|logtarget.*|logtarget = /var/log/fail2ban.log|g' /etc/fail2ban/fail2ban.conf
+ fi
+ if [ -d /etc/tor ]; then
+ if [ ! -f /var/log/tor.log ]; then
+ touch /var/log/tor.log
+ chown debian-tor:debian-tor /var/log/tor.log
+ fi
+ sed -i 's|#Log notice file.*|Log notice file /var/log/tor.log|g' /etc/tor/torrc
+ sed -i 's|Log notice file.*|Log notice file /var/log/tor.log|g' /etc/tor/torrc
+ fi
+ if [ -f /etc/mumble-server.ini ]; then
+ sed -i 's|logfile=.*|logfile=/var/log/mumble-server.log|g' /etc/mumble-server.ini
+ fi
+ if [ -f /etc/php5/fpm/php-fpm.conf ]; then
+ sed -i 's|error_log =.*|error_log = /var/log/php5-fpm.log|g' /etc/php5/fpm/php-fpm.conf
+ fi
+ if [ -d /etc/nginx ]; then
+ if [ ! -d /var/log/nginx ]; then
+ mkdir /var/log/nginx
+ fi
+ for filename in /etc/nginx/sites-available/* ; do
+ filename_domain=$(echo "$filename" | awk -F '/' '{print $5}')
+ sed -i "s|access_log.*|access_log /var/log/nginx/$filename_domain.access.log;|g" $filename
+ sed -i "s|error_log.*|error_log /var/log/nginx/$filename_domain.err.log $WEBSERVER_LOG_LEVEL;|g" $filename
+ done
+ sed -i 's|access_log.*|access_log /var/log/nginx/access.log;|g' /etc/nginx/nginx.conf
+ sed -i 's|error_log.*|error_log /var/log/nginx/error.log;|g' /etc/nginx/nginx.conf
+ fi
+ if [ -f /etc/init.d/spamassassin ]; then
+ sed -i 's|DOPTIONS="-s null -d --pidfile=$PIDFILE"|DOPTIONS="-d --pidfile=$PIDFILE"|g' /etc/init.d/spamassassin
+ fi
+ if [ -d /etc/prosody ]; then
+ if [ ! -d /var/log/prosody ]; then
+ mkdir /var/log/prosody
+ chown root:adm /var/log/prosody
+ fi
+ sed -i 's|info = "/dev/null";|info = "/var/log/prosody/prosody.log";|g' /etc/prosody/prosody.cfg.lua
+ sed -i 's|error = "/dev/null";|error = "/var/log/prosody/prosody.err";|g' /etc/prosody/prosody.cfg.lua
+ sed -i 's|levels = { "error" }; to = "/dev/null";|levels = { "error" }; to = "syslog";|g' /etc/prosody/prosody.cfg.lua
+ fi
+ if [ -d /etc/exim4 ]; then
+ if [ ! -d /var/log/exim4 ]; then
+ mkdir /var/log/exim4
+ fi
+ sed -i 's|log_selector =.*|log_selector = MAIN_LOG_SELECTOR|g' /etc/exim4/conf.d/main/90_exim4-config_log_selector
+ fi
+ if [ -f /etc/dovecot/dovecot.conf ]; then
+ sed -i 's|log_path =.*|log_path = /var/log/dovecot.log|g' /etc/dovecot/dovecot.conf
+ sed -i 's|info_log_path =.*|info_log_path = /var/log/dovecot-info.log|g' /etc/dovecot/dovecot.conf
+ sed -i 's|debug_log_path =.*|debug_log_path = /var/log/dovecot-debug.log|g' /etc/dovecot/dovecot.conf
+ fi
+ if [ -d /etc/mysql ]; then
+ if [ ! -d /var/log/mysql ]; then
+ mkdir /var/log/mysql
+ fi
+ sed -i 's|log_error =.*|log_error = /var/log/mysql/error.log|g' /etc/mysql/my.cnf
+ fi
+ turn_on_rsys_logging
else
- if [ -d /etc/nginx ]; then
- for filename in /etc/nginx/sites-available/* ; do
- sed -i 's|access_log.*|access_log off;|g' $filename
- sed -i 's|warn_log.*|warn_log off;|g' $filename
- sed -i 's|error_log.*|error_log off;|g' $filename
- done
- shred -zu /var/log/nginx/*
- fi
- if [ -f /etc/init.d/spamassassin ]; then
- sed -i 's|DOPTIONS="-d --pidfile=$PIDFILE"|DOPTIONS="-s null -d --pidfile=$PIDFILE"|g' /etc/init.d/spamassassin
- fi
- if [ -d /etc/prosody ]; then
- sed -i 's|info = "/var/log/prosody/prosody.log";|info = "/dev/null";|g' /etc/prosody/prosody.cfg.lua
- sed -i 's|error = "/var/log/prosody/prosody.err";|error = "/dev/null";|g' /etc/prosody/prosody.cfg.lua
- shred -zu /var/log/prosody/prosody.log
- shred -zu /var/log/prosody/prosody.err
- fi
- if [ -d /etc/exim4 ]; then
- sed -i 's|log_selector =.*|log_selector = -all|g' /etc/exim4/conf.d/main/90_exim4-config_log_selector
- fi
+ if [ -d /etc/tor ]; then
+ sed -i 's|#Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
+ sed -i 's|Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
+ if [ -d /var/log/tor ]; then
+ shred -zu /var/log/tor/*
+ rm -rf /var/log/tor
+ fi
+ fi
+ if [ -f /etc/mumble-server.ini ]; then
+ sed -i 's|logfile=.*|logfile=/dev/null|g' /etc/mumble-server.ini
+ if [ -d /var/log/mumble-server ]; then
+ shred -zu /var/log/mumble-server/*
+ rm -rf /var/log/mumble-server
+ fi
+ fi
+ if [ -d /var/log/radicale ]; then
+ shred -zu /var/log/radicale/*
+ rm -rf /var/log/radicale
+ fi
+ if [ -f /etc/php5/fpm/php-fpm.conf ]; then
+ sed -i 's|error_log =.*|error_log = /dev/null|g' /etc/php5/fpm/php-fpm.conf
+ shred -zu /var/log/php5-fpm.*
+ fi
+ if [ -d /etc/nginx ]; then
+ for filename in /etc/nginx/sites-available/* ; do
+ sed -i 's|access_log.*|access_log /dev/null;|g' $filename
+ sed -i 's|warn_log.*|warn_log /dev/null;|g' $filename
+ sed -i 's|error_log.*|error_log /dev/null;|g' $filename
+ done
+ sed -i 's|access_log.*|access_log /dev/null;|g' /etc/nginx/nginx.conf
+ sed -i 's|error_log.*|error_log /dev/null;|g' /etc/nginx/nginx.conf
+ shred -zu /var/log/nginx/*
+ fi
+ if [ -f /etc/init.d/spamassassin ]; then
+ sed -i 's|DOPTIONS="-d --pidfile=$PIDFILE"|DOPTIONS="-s null -d --pidfile=$PIDFILE"|g' /etc/init.d/spamassassin
+ fi
+ if [ -d /etc/prosody ]; then
+ sed -i 's|info = "/var/log/prosody/prosody.log";|info = "/dev/null";|g' /etc/prosody/prosody.cfg.lua
+ sed -i 's|error = "/var/log/prosody/prosody.err";|error = "/dev/null";|g' /etc/prosody/prosody.cfg.lua
+ sed -i 's|levels = { "error" }; to = "syslog";|levels = { "error" }; to = "/dev/null";|g' /etc/prosody/prosody.cfg.lua
+ shred -zu /var/log/prosody/*
+ rm -rf /var/log/prosody
+ fi
+ if [ -d /etc/exim4 ]; then
+ sed -i 's|log_selector =.*|log_selector = -all|g' /etc/exim4/conf.d/main/90_exim4-config_log_selector
+ shred -zu /var/log/exim4/*
+ fi
+ if [ -f /etc/dovecot/dovecot.conf ]; then
+ sed -i 's|log_path =.*|log_path = /dev/null|g' /etc/dovecot/dovecot.conf
+ sed -i 's|info_log_path =.*|info_log_path = /dev/null|g' /etc/dovecot/dovecot.conf
+ sed -i 's|debug_log_path =.*|debug_log_path = /dev/null|g' /etc/dovecot/dovecot.conf
+ shred -zu /var/log/mail.*
+ shred -zu /var/log/dovecot*
+ fi
+ if [ -d /etc/mysql ]; then
+ if [ -d /var/log/mysql ]; then
+ shred -zu /var/log/mysql/*
+ fi
+ if [ -f /var/log/mysql.err ]; then
+ shred -zu /var/log/mysql.err
+ fi
+ if [ -f /var/log/mysql.log ]; then
+ shred -zu /var/log/mysql.log
+ fi
+ sed -i 's|log_error =.*|log_error = /dev/null|g' /etc/mysql/my.cnf
+ fi
+ if [ -f /etc/fail2ban/fail2ban.conf ]; then
+ sed -i 's|loglevel.*|loglevel = 1|g' /etc/fail2ban/fail2ban.conf
+ sed -i 's|logtarget.*|logtarget = /dev/null|g' /etc/fail2ban/fail2ban.conf
+ shred -zu /var/log/fail2ban.*
+ fi
+ turn_off_rsys_logging
fi
+systemctl restart syslog
+if [ -d /etc/tor ]; then
+ if [[ "$2" != "--onion" ]]; then
+ systemctl restart tor
+ fi
+fi
if [ -d /etc/nginx ]; then
- service php5-fpm restart
- service nginx restart
+ systemctl restart php5-fpm
+ systemctl restart nginx
fi
if [ -f /etc/init.d/spamassassin ]; then
- service spamassassin restart
+ systemctl restart spamassassin
fi
if [ -d /etc/prosody ]; then
- service prosody restart
+ systemctl restart prosody
fi
if [ -d /etc/exim4 ]; then
- service exim4 restart
+ systemctl restart exim4
+fi
+if [ -d /etc/dovecot ]; then
+ systemctl restart dovecot
+fi
+if [ -f /etc/mumble-server.ini ]; then
+ systemctl restart mumble-server
+fi
+if [ -d /var/www/radicale ]; then
+ systemctl restart radicale
+fi
+if [ -d /etc/fail2ban ]; then
+ systemctl restart fail2ban
fi
exit 0
diff --git a/src/freedombone-mesh b/src/freedombone-mesh
index 1c908d94..27af7709 100755
--- a/src/freedombone-mesh
+++ b/src/freedombone-mesh
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -36,11 +36,7 @@ export TEXTDOMAINDIR="/usr/share/locale"
CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
MUMBLE_PATH=/usr/bin/mumble
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
-else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
-fi
+TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
DHTNODES=/usr/share/toxic/DHTnodes
PEERS_FILE=/tmp/meshpeers.txt
@@ -73,10 +69,10 @@ function install_toxcore {
return
fi
- sudo apt-get -y install build-essential libtool autotools-dev
- sudo apt-get -y install automake checkinstall check git yasm
- sudo apt-get -y install libsodium13 libsodium-dev libcap2-bin
- sudo apt-get -y install libconfig9 libconfig-dev
+ sudo apt-get -yq install build-essential libtool autotools-dev
+ sudo apt-get -yq install automake checkinstall check git yasm
+ sudo apt-get -yq install libsodium13 libsodium-dev libcap2-bin
+ sudo apt-get -yq install libconfig9 libconfig-dev
if [ ! -d ~/develop ]; then
mkdir ~/develop
@@ -173,13 +169,6 @@ function install_toxid {
echo $"Couldn't install toxid"
exit 6389
fi
-
- if ! grep -Fxq "toxavahi" /etc/crontab; then
- cp /etc/crontab /tmp/crontab
- echo "* * * * * root toxavahi > /dev/null" >> /tmp/crontab
- sudo cp /tmp/crontab /etc/crontab
- rm /tmp/crontab
- fi
}
function run_tox {
@@ -354,7 +343,7 @@ fi
echo ''
echo $'Choose communication service:'
-echo $' 1. VoIP'
+echo $' 1. Voice'
echo $' 2. Tox Chat'
echo ''
diff --git a/src/freedombone-mesh-batman b/src/freedombone-mesh-batman
index e9a6f507..4c7472bb 100755
--- a/src/freedombone-mesh-batman
+++ b/src/freedombone-mesh-batman
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,209 +30,349 @@
PROJECT_NAME='freedombone'
COMPLETION_FILE=/root/${PROJECT_NAME}-completed.txt
+HOTSPOT_PASSPHRASE='mesh'
+
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-wifi
if [[ $1 == "start" ]]; then
- # install avahi
- sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf
- sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf
- sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf
- sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf
- sed -i "s|#disallow-other-stacks=.*|disallow-other-stacks=yes|g" /etc/avahi/avahi-daemon.conf
- sed -i "s|hosts:.*|hosts: files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf
+ # install avahi
+ sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|#disallow-other-stacks=.*|disallow-other-stacks=yes|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|hosts:.*|hosts: files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf
fi
# Mesh definition
-WIFI_SSID=
-if ! grep -q "WIFI_SSID:" $COMPLETION_FILE; then
- WIFI_SSID='mesh'
-else
- WIFI_SSID=$(cat $COMPLETION_FILE | grep "WIFI_SSID:" | awk -F ':' '{print $2}')
+WIFI_SSID='mesh'
+if [ -f $COMPLETION_FILE ]; then
+ if grep -q "WIFI_SSID:" $COMPLETION_FILE; then
+ WIFI_SSID=$(cat $COMPLETION_FILE | grep "WIFI_SSID:" | awk -F ':' '{print $2}')
+ fi
+ sed -i "s|WIFI_SSID:.*|WIFI_SSID:${WIFI_SSID}|g" $COMPLETION_FILE
fi
-sed -i "s|WIFI_SSID:.*|WIFI_SSID:${WIFI_SSID}|g" $COMPLETION_FILE
-
CELLID='any'
-CHANNEL=
-if ! grep -q "Wifi channel:" $COMPLETION_FILE; then
- CHANNEL=2
-else
- CHANNEL=$(cat $COMPLETION_FILE | grep "Wifi channel:" | awk -F ':' '{print $2}')
+CHANNEL=2
+if [ -f $COMPLETION_FILE ]; then
+ if grep -q "Wifi channel:" $COMPLETION_FILE; then
+ CHANNEL=$(cat $COMPLETION_FILE | grep "Wifi channel:" | awk -F ':' '{print $2}')
+ fi
+ sed -i "s|Wifi channel:.*|Wifi channel:${CHANNEL}|g" $COMPLETION_FILE
fi
-sed -i "s|Wifi channel:.*|Wifi channel:${CHANNEL}|g" $COMPLETION_FILE
ZERONET_PORT=15441
IPFS_PORT=4001
+TOX_PORT=33445
+TRACKER_PORT=6969
+LIBREVAULT_PORT=42345
+TAHOELAFS_PORT=50213
# Ethernet bridge definition (bridged to bat0)
BRIDGE=br-mesh
-IFACE='wlan0'
+BRIDGE_HOTSPOT=br-hotspot
+IFACE=
+IFACE_SECONDARY=
EIFACE=eth0
+WLAN_ADAPTORS=$(count_wlan)
-if [[ $IFACE == "wlan0" ]]; then
- if grep -q "wlan1" /proc/net/dev; then
- IFACE=wlan1
- fi
+if [ $WLAN_ADAPTORS -eq 0 ]; then
+ echo $'No wlan adaptors found'
+ exit 0
fi
-if [[ $IFACE == "wlan0" ]]; then
- if grep -q "wlan2" /proc/net/dev; then
- IFACE=wlan2
- fi
-fi
-if [[ $IFACE == "wlan0" ]]; then
- if grep -q "wlan3" /proc/net/dev; then
- IFACE=wlan3
- fi
+
+update_wifi_adaptors
+
+if [ ! $IFACE ]; then
+ echo $'No wlan adaptor'
+ exit 0
fi
if [ -e /etc/default/batctl ]; then
- . /etc/default/batctl
+ . /etc/default/batctl
fi
+function global_rate_limit {
+ if ! grep -q "tcp_challenge_ack_limit" /etc/sysctl.conf; then
+ echo 'net.ipv4.tcp_challenge_ack_limit = 999999999' >> /etc/sysctl.conf
+ else
+ sed -i 's|net.ipv4.tcp_challenge_ack_limit.*|net.ipv4.tcp_challenge_ack_limit = 999999999|g' /etc/sysctl.conf
+ fi
+ sysctl -p -q
+}
+
function status {
- batctl o
+ batctl o
}
function stop {
- if [ -z "$IFACE" ]; then
- echo 'error: unable to find wifi interface, not enabling batman-adv mesh'
- return
- fi
- if [ "$EIFACE" ]; then
- brctl delif $BRIDGE bat0
- brctl delif $BRIDGE $EIFACE
- ifconfig $BRIDGE down || true
- brctl delbr $BRIDGE
- ifconfig $EIFACE down -promisc
- fi
+ if [ -z "$IFACE" ]; then
+ echo 'error: unable to find wifi interface, not enabling batman-adv mesh'
+ return
+ fi
+ if [ "$EIFACE" ]; then
+ brctl delif $BRIDGE bat0
+ brctl delif $BRIDGE $EIFACE
+ ifconfig $BRIDGE down || true
+ brctl delbr $BRIDGE
+ ifconfig $EIFACE down -promisc
+ fi
+ if [ $IFACE_SECONDARY ]; then
+ systemctl stop hostapd
+ brctl delif $BRIDGE_HOTSPOT bat0
+ ifconfig $BRIDGE_HOTSPOT down || true
+ brctl delbr $BRIDGE_HOTSPOT
+ fi
- avahi-autoipd -k $BRIDGE
- avahi-autoipd -k $IFACE
- ifconfig bat0 down -promisc
+ avahi-autoipd -k $BRIDGE
+ avahi-autoipd -k $IFACE
+ ifconfig bat0 down -promisc
- batctl if del $IFACE
- rmmod batman-adv
- ifconfig $IFACE mtu 1500
- ifconfig $IFACE down
- iwconfig $IFACE mode managed
+ batctl if del $IFACE
+ rmmod batman-adv
+ ifconfig $IFACE mtu 1500
+ ifconfig $IFACE down
+ iwconfig $IFACE mode managed
- iptables -D INPUT -p tcp --dport 548 -j ACCEPT
- iptables -D INPUT -p udp --dport 548 -j ACCEPT
- iptables -D INPUT -p tcp --dport 5353 -j ACCEPT
- iptables -D INPUT -p udp --dport 5353 -j ACCEPT
- iptables -D INPUT -p tcp --dport 5354 -j ACCEPT
- iptables -D INPUT -p udp --dport 5354 -j ACCEPT
- iptables -D INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT
- iptables -D INPUT -p udp --dport $ZERONET_PORT -j ACCEPT
- iptables -D INPUT -p tcp --dport $IPFS_PORT -j ACCEPT
+ iptables -D INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT
+ iptables -D INPUT -p udp --dport $TRACKER_PORT -j ACCEPT
+ iptables -D INPUT -p tcp --dport 80 -j ACCEPT
+ iptables -D INPUT -p udp --dport 80 -j ACCEPT
+ iptables -D INPUT -p tcp --dport 548 -j ACCEPT
+ iptables -D INPUT -p udp --dport 548 -j ACCEPT
+ iptables -D INPUT -p tcp --dport 5353 -j ACCEPT
+ iptables -D INPUT -p udp --dport 5353 -j ACCEPT
+ iptables -D INPUT -p tcp --dport 5354 -j ACCEPT
+ iptables -D INPUT -p udp --dport 5354 -j ACCEPT
+ iptables -D INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT
+ iptables -D INPUT -p udp --dport $ZERONET_PORT -j ACCEPT
+ iptables -D INPUT -p tcp --dport $IPFS_PORT -j ACCEPT
+ iptables -D INPUT -p udp --dport $IPFS_PORT -j ACCEPT
+ iptables -D INPUT -p tcp --dport $TOX_PORT -j ACCEPT
+ iptables -D INPUT -p udp --dport $TOX_PORT -j ACCEPT
+ iptables -D INPUT -p tcp --dport $LIBREVAULT_PORT -j ACCEPT
+ iptables -D INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
+ iptables -D INPUT -p tcp --dport $TAHOELAFS_PORT -j ACCEPT
- systemctl restart network-manager
+ systemctl restart network-manager
}
function verify {
- tempfile="$(mktemp)"
- batctl o > $tempfile
- if grep -q "disabled" $tempfile; then
- echo $'B.A.T.M.A.N. not enabled'
- rm $tempfile
- stop
- exit 726835
- fi
- echo $'B.A.T.M.A.N. is running'
- rm $tempfile
+ tempfile="$(mktemp)"
+ batctl o > $tempfile
+ if grep -q "disabled" $tempfile; then
+ echo $'B.A.T.M.A.N. not enabled'
+ rm $tempfile
+ stop
+ exit 726835
+ fi
+ echo $'B.A.T.M.A.N. is running'
+ rm $tempfile
+}
+
+function assign_peer_address {
+ for i in {1..6}; do
+ number=$RANDOM
+ let "number %= 255"
+ octet=$(echo "obase=16;$number" | bc)
+ if [ ${#octet} -lt 2 ]; then
+ octet="0${octet}"
+ fi
+ if [ $i -gt 1 ]; then
+ echo -n ":"
+ fi
+ echo -n "${octet}"
+ done
+ echo ''
}
function start {
- if [ -z "$IFACE" ] ; then
- echo 'error: unable to find wifi interface, not enabling batman-adv mesh'
- exit 723657
- fi
- echo "info: enabling batman-adv mesh network $WIFI_SSID on $IFACE"
+ if [ -z "$IFACE" ] ; then
+ echo 'error: unable to find wifi interface, not enabling batman-adv mesh'
+ exit 723657
+ fi
+ echo "info: enabling batman-adv mesh network $WIFI_SSID on $IFACE"
- systemctl stop network-manager
- sleep 5
+ systemctl stop network-manager
+ sleep 5
- # remove an avahi service which isn't used
- if [ -f /etc/avahi/services/udisks.service ]; then
- sudo rm /etc/avahi/services/udisks.service
- fi
+ # remove an avahi service which isn't used
+ if [ -f /etc/avahi/services/udisks.service ]; then
+ sudo rm /etc/avahi/services/udisks.service
+ fi
- # Might have to re-enable wifi
- rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true
+ global_rate_limit
- ifconfig $IFACE down
- ifconfig $IFACE mtu 1532
- iwconfig $IFACE enc off
- iwconfig $IFACE mode ad-hoc essid $WIFI_SSID channel $CHANNEL
- sleep 1
- iwconfig $IFACE ap $CELLID
+ # Might have to re-enable wifi
+ rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true
- modprobe batman-adv
- batctl if add $IFACE
- ifconfig $IFACE up
- avahi-autoipd --force-bind --daemonize --wait $BRIDGE
- avahi-autoipd --force-bind --daemonize --wait $IFACE
- ifconfig bat0 up promisc
+ ifconfig $IFACE down
+ ifconfig $IFACE mtu 1532
+ ifconfig $IFACE hw ether $(assign_peer_address)
+ iwconfig $IFACE enc off
+ iwconfig $IFACE mode ad-hoc essid $WIFI_SSID channel $CHANNEL
+ sleep 1
+ iwconfig $IFACE ap $CELLID
- #Use persistent HWAddr
- ether_new=$(ifconfig eth0 | grep HWaddr | sed -e "s/.*HWaddr //")
- if [ ! -f /var/lib/mesh-node/bat0 ]; then
- mkdir /var/lib/mesh-node
- echo "${ether_new}" > /var/lib/mesh-node/bat0
- else
- ether=$(cat /var/lib/mesh-node/bat0)
- ifconfig bat0 hw ether ${ether}
- fi
+ modprobe batman-adv
+ batctl if add $IFACE
+ ifconfig $IFACE up
+ avahi-autoipd --force-bind --daemonize --wait $IFACE
+ ifconfig bat0 up promisc
- if [ "$EIFACE" ] ; then
- brctl addbr $BRIDGE
- brctl addif $BRIDGE bat0
- brctl addif $BRIDGE $EIFACE
- ifconfig bat0 0.0.0.0
- ifconfig $EIFACE 0.0.0.0
- ifconfig $EIFACE up promisc
- ifconfig $BRIDGE up
- fi
+ #Use persistent HWAddr
+ ether_new=$(ifconfig eth0 | grep HWaddr | sed -e "s/.*HWaddr //")
+ if [ ! -f /var/lib/mesh-node/bat0 ]; then
+ mkdir /var/lib/mesh-node
+ echo "${ether_new}" > /var/lib/mesh-node/bat0
+ else
+ ether=$(cat /var/lib/mesh-node/bat0)
+ ifconfig bat0 hw ether ${ether}
+ fi
- iptables -A INPUT -p tcp --dport 548 -j ACCEPT
- iptables -A INPUT -p udp --dport 548 -j ACCEPT
- iptables -A INPUT -p tcp --dport 5353 -j ACCEPT
- iptables -A INPUT -p udp --dport 5353 -j ACCEPT
- iptables -A INPUT -p tcp --dport 5354 -j ACCEPT
- iptables -A INPUT -p udp --dport 5354 -j ACCEPT
- iptables -A INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT
- iptables -A INPUT -p udp --dport $ZERONET_PORT -j ACCEPT
- iptables -A INPUT -p tcp --dport $IPFS_PORT -j ACCEPT
+ if [ "$EIFACE" ] ; then
+ brctl addbr $BRIDGE
+ brctl addif $BRIDGE bat0
+ brctl addif $BRIDGE $EIFACE
+ ifconfig bat0 0.0.0.0
+ ifconfig $EIFACE 0.0.0.0
+ ifconfig $EIFACE up promisc
+ ifconfig $BRIDGE up
+ avahi-autoipd --force-bind --daemonize --wait $BRIDGE
+ fi
- systemctl restart avahi-daemon
+ if [ $IFACE_SECONDARY ]; then
+ if [[ $IFACE != $IFACE_SECONDARY ]]; then
+ if [ -d /etc/hostapd ]; then
+ # bridge between mesh and wifi hotspot for mobile
+ HOTSPOT_NAME=$"${WIFI_SSID}-hotspot"
+ ifconfig $IFACE_SECONDARY down
+ ifconfig $IFACE_SECONDARY mtu 1500
+ ifconfig $IFACE_SECONDARY hw ether $(assign_peer_address)
+ iwconfig $IFACE_SECONDARY enc open
+ iwconfig $IFACE_SECONDARY mode managed essid $HOTSPOT_NAME channel ${CHANNEL}
+ iwconfig $IFACE_SECONDARY ap $CELLID
- verify
+ brctl addbr $BRIDGE_HOTSPOT
+ brctl addif $BRIDGE_HOTSPOT bat0
+ brctl addif $BRIDGE_HOTSPOT $IFACE_SECONDARY
+ ifconfig bat0 0.0.0.0
+ ifconfig $IFACE_SECONDARY 0.0.0.0
+
+ sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
+
+ echo "interface=${IFACE_SECONDARY}" > /etc/hostapd/hostapd.conf
+ echo "bridge=${BRIDGE_HOTSPOT}" >> /etc/hostapd/hostapd.conf
+ echo 'driver=nl80211' >> /etc/hostapd/hostapd.conf
+ echo "country_code=UK" >> /etc/hostapd/hostapd.conf
+ echo "ssid=$HOTSPOT_NAME" >> /etc/hostapd/hostapd.conf
+ echo 'hw_mode=g' >> /etc/hostapd/hostapd.conf
+ echo "channel=${CHANNEL}" >> /etc/hostapd/hostapd.conf
+ echo 'wpa=2' >> /etc/hostapd/hostapd.conf
+ echo "wpa_passphrase=$HOTSPOT_PASSPHRASE" >> /etc/hostapd/hostapd.conf
+ echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
+ echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
+ echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
+ echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
+ echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
+
+ ifconfig $BRIDGE_HOTSPOT up
+ avahi-autoipd --force-bind --daemonize --wait $BRIDGE_HOTSPOT
+ ifconfig $IFACE_SECONDARY up promisc
+ #ifconfig $IFACE_SECONDARY auto-dhcp start
+ systemctl start hostapd
+ fi
+ fi
+ fi
+
+ iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
+ iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
+ iptables -A INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT
+ iptables -A INPUT -p udp --dport $TRACKER_PORT -j ACCEPT
+ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
+ iptables -A INPUT -p udp --dport 80 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 548 -j ACCEPT
+ iptables -A INPUT -p udp --dport 548 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 5353 -j ACCEPT
+ iptables -A INPUT -p udp --dport 5353 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 5354 -j ACCEPT
+ iptables -A INPUT -p udp --dport 5354 -j ACCEPT
+ iptables -A INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT
+ iptables -A INPUT -p udp --dport $ZERONET_PORT -j ACCEPT
+ iptables -A INPUT -p tcp --dport $IPFS_PORT -j ACCEPT
+ iptables -A INPUT -p tcp --dport $TOX_PORT -j ACCEPT
+ iptables -A INPUT -p udp --dport $TOX_PORT -j ACCEPT
+ iptables -A INPUT -p tcp --dport $LIBREVAULT_PORT -j ACCEPT
+ iptables -A INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
+ iptables -A INPUT -p tcp --dport $TAHOELAFS_PORT -j ACCEPT
+
+ systemctl restart avahi-daemon
+
+ verify
+}
+
+function monitor {
+ if [ -z "$IFACE" ] ; then
+ echo 'error: unable to find wifi interface, not enabling batman-adv mesh'
+ exit 723657
+ fi
+
+ stop
+
+ echo "info: monitoring mesh network $WIFI_SSID on $IFACE"
+
+ systemctl stop network-manager
+ sleep 5
+
+ global_rate_limit
+
+ # Might have to re-enable wifi
+ rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true
+
+ ifconfig $IFACE down
+ ifconfig $IFACE mtu 1532
+ ifconfig $IFACE hw ether $(assign_peer_address)
+ iwconfig $IFACE enc off
+ iwconfig $IFACE mode monitor channel $CHANNEL
+ sleep 1
+ iwconfig $IFACE ap $CELLID
+
+ modprobe batman-adv
+ batctl if add $IFACE
+ ifconfig $IFACE up
+ horst -i $IFACE
+ start
}
if ! grep -q "$IFACE" /proc/net/dev; then
- echo 'Interface $IFACE was not found'
- stop
- exit 1
+ echo 'Interface $IFACE was not found'
+ stop
+ exit 1
fi
case "$1" in
- start|stop|status)
- $1
- ;;
- restart)
- stop
- sleep 10
- start
- ;;
- ping)
- batctl ping $2
- ;;
- ls|list)
- avahi-browse -atl
- ;;
- *)
- echo "error: invalid parameter $1"
- echo 'usage: $0 {start|stop|restart|status|ping|ls|list}'
- exit 2
- ;;
+ start|stop|status|monitor)
+ $1
+ ;;
+ restart)
+ stop
+ sleep 10
+ start
+ ;;
+ ping)
+ batctl ping $2
+ ;;
+ data)
+ watch -n1 "batctl s | grep mgmt | grep bytes"
+ ;;
+ ls|list)
+ avahi-browse -atl
+ ;;
+ *)
+ echo "error: invalid parameter $1"
+ echo 'usage: $0 {start|stop|restart|status|ping|ls|list}'
+ exit 2
+ ;;
esac
exit 0
diff --git a/src/freedombone-mesh-blog b/src/freedombone-mesh-blog
new file mode 100755
index 00000000..62c67f90
--- /dev/null
+++ b/src/freedombone-mesh-blog
@@ -0,0 +1,253 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Blogging functions for mesh clients
+#
+# License
+# =======
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-mesh-blog
+export TEXTDOMAINDIR="/usr/share/locale"
+
+IPFS_PATH=/usr/bin
+IPFS_COMMAND=$IPFS_PATH/ipfs
+IPFS_PUBLIC=/home/$USER/.ipfs-public
+
+BLOG_PATH=~/CreateBlog
+BLOG_CONTENT_PATH=$BLOG_PATH/content
+CURRENT_BLOG_INDEX=/home/$USER/.blog-index
+BLOG_EDITOR='pluma'
+DEFAULT_BLOG_TITLE=$"Freedombone Blog"
+
+function ipfs_publish {
+ DIR_TO_CHECK=/home/$USER/Public
+ if [ ! -d $DIR_TO_CHECK ]; then
+ return
+ fi
+
+ echo ''
+ echo $'Publishing to IPFS. This may take some time...'
+
+ OLD_STAT_FILE=/home/$USER/.old_stat.txt
+ NEW_STAT=$(stat -t $DIR_TO_CHECK)
+ echo $($IPFS_COMMAND add -rq /home/$USER/Public | tail -n 1) > $IPFS_PUBLIC
+ echo "$NEW_STAT" > $OLD_STAT_FILE
+
+ if [ -f $IPFS_PUBLIC ]; then
+ IPFS_PUBLIC_ID=$(cat $IPFS_PUBLIC)
+ $IPFS_COMMAND name publish /ipfs/$IPFS_PUBLIC_ID
+ fi
+}
+
+function regenerate_blog {
+ clear
+ echo ''
+ echo $'Regenerating blog...'
+
+ cd $BLOG_PATH
+ if grep -q "SITENAME=u'${DEFAULT_BLOG_TITLE}'" $BLOG_PATH/pelicanconf.py; then
+ TOX_NICK=$(toxid --showuser)
+ BLOG_TITLE=$"${TOX_NICK}'s Blog"
+ sed -i "s|SITENAME=.*|SITENAME=u\"${BLOG_TITLE}\"|g" $BLOG_PATH/pelicanconf.py
+ fi
+ make html
+ ipfs_publish
+}
+
+function view_blog {
+ freedombone-mesh-visit-site '/Blog'
+ exit 0
+}
+
+function new_blog {
+ DATESTR=$(date "+%Y-%m-%d %H:%M:%S")
+
+ echo $'Title: Blog Post Title' > ~/.new-blog-entry
+ echo $"Date: ${DATESTR}" >> ~/.new-blog-entry
+ echo $"Author: $(toxid --showuser)" >> ~/.new-blog-entry
+ echo $'Category: default' >> ~/.new-blog-entry
+ echo $'Tags: blog, tag' >> ~/.new-blog-entry
+ echo '' >> ~/.new-blog-entry
+ echo $'Add your text here' >> ~/.new-blog-entry
+ echo '' >> ~/.new-blog-entry
+ echo -n $'To include an image copy it into the ~/CreateBlog/content/images directory, ' >> ~/.new-blog-entry
+ echo $'then link to it with:' >> ~/.new-blog-entry
+ echo '' >> ~/.new-blog-entry
+ echo $'' >> ~/.new-blog-entry
+ echo '' >> ~/.new-blog-entry
+
+ $BLOG_EDITOR ~/.new-blog-entry
+
+ if grep -q $"Add your text here" ~/.new-blog-entry; then
+ return
+ fi
+ if grep -q $"Blog Post Title" ~/.new-blog-entry; then
+ return
+ fi
+ if [ ! -f $CURRENT_BLOG_INDEX ]; then
+ echo '0' > $CURRENT_BLOG_INDEX
+ fi
+
+ # move to the content directory
+ CURRENT_INDEX=$(cat $CURRENT_BLOG_INDEX)
+ mv ~/.new-blog-entry $BLOG_CONTENT_PATH/${CURRENT_INDEX}_post.md
+
+ # increment the index
+ CURRENT_INDEX=$((CURRENT_INDEX + 1))
+ echo "$CURRENT_INDEX" > $CURRENT_BLOG_INDEX
+
+ regenerate_blog
+}
+
+function edit_blog {
+ if [ ! -f $CURRENT_BLOG_INDEX ]; then
+ return
+ fi
+ CURRENT_INDEX=$(cat $CURRENT_BLOG_INDEX)
+ PREVIOUS_INDEX=$((CURRENT_INDEX - 1))
+ LAST_BLOG_ENTRY=$BLOG_CONTENT_PATH/${PREVIOUS_INDEX}_post.md
+ if [ ! -f $LAST_BLOG_ENTRY ]; then
+ return
+ fi
+ $BLOG_EDITOR $LAST_BLOG_ENTRY
+ regenerate_blog
+}
+
+function delete_blog {
+ if [ ! -f $CURRENT_BLOG_INDEX ]; then
+ return
+ fi
+ CURRENT_INDEX=$(cat $CURRENT_BLOG_INDEX)
+ PREVIOUS_INDEX=$((CURRENT_INDEX - 1))
+ LAST_BLOG_ENTRY=$BLOG_CONTENT_PATH/${PREVIOUS_INDEX}_post.md
+ if [ ! -f $LAST_BLOG_ENTRY ]; then
+ return
+ fi
+
+ dialog --title $"Delete the previous blog entry" \
+ --backtitle $"Freedombone Mesh" \
+ --defaultno \
+ --yesno $"\nAre you sure that you wish to delete the previous blog entry?" 8 60
+ sel=$?
+ case $sel in
+ 0) rm $LAST_BLOG_ENTRY
+ if [ $CURRENT_INDEX -gt 0 ]; then
+ CURRENT_INDEX=$PREVIOUS_INDEX
+ echo "$CURRENT_INDEX" > $CURRENT_BLOG_INDEX
+ else
+ rm -f $CURRENT_BLOG_INDEX
+ fi
+ regenerate_blog
+ ;;
+ esac
+}
+
+function change_theme {
+ THEMES=()
+ for d in $BLOG_PATH/themes/*/ ; do
+ THEME_NAME=$(echo "$d" | awk -F '/' '{print $6}')
+ THEMES+=("$THEME_NAME")
+ done
+
+ themelist=""
+ n=1
+ theme_index=0
+ curr_theme_index=
+ if [ -f /home/$USER/.blog-theme-index ]; then
+ curr_theme_index=$(cat /home/$USER/.blog-theme-index)
+ fi
+ for a in "${THEMES[@]}"
+ do
+ is_selected='off'
+ if [ $curr_theme_index ]; then
+ if [ $n -eq $curr_theme_index ]; then
+ is_selected='on'
+ fi
+ else
+ if [[ "$a" == 'nice-blog' ]]; then
+ is_selected='on'
+ fi
+ fi
+
+ themelist="$themelist $n $a $is_selected"
+ n=$[n+1]
+ theme_index=$[theme_index+1]
+ done
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Mesh" \
+ --title $"Select Blog Theme" \
+ --radiolist $'Choose:' \
+ 80 40 20 $themelist 2> $data
+
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ CHOSEN_THEME_INDEX=$(cat $data)
+ echo "$CHOSEN_THEME_INDEX" > /home/$USER/.blog-theme-index
+ CHOSEN_THEME_INDEX=$((CHOSEN_THEME_INDEX - 1))
+
+ CHOSEN_THEME=${THEMES[$CHOSEN_THEME_INDEX]}
+ if grep -q "THEME=" $BLOG_PATH/pelicanconf.py; then
+ sed -i "s|THEME=.*|THEME='themes/${CHOSEN_THEME}'|g" $BLOG_PATH/pelicanconf.py
+ else
+ echo "THEME='themes/${CHOSEN_THEME}'" >> $BLOG_PATH/pelicanconf.py
+ fi
+ regenerate_blog
+}
+
+function menu_blog {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Mesh" \
+ --title $"Blogging" \
+ --radiolist $"Choose an operation:" 19 50 12 \
+ 1 $"View a blog" on \
+ 2 $"New blog entry" off \
+ 3 $"Edit the previous blog entry" off \
+ 4 $"Delete the previous blog entry" off \
+ 5 $"Change theme" off \
+ 6 $"Exit" off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) view_blog;;
+ 2) new_blog;;
+ 3) edit_blog;;
+ 4) delete_blog;;
+ 5) change_theme;;
+ 6) break;;
+ esac
+}
+
+menu_blog
+
+exit 0
diff --git a/src/freedombone-mesh-install b/src/freedombone-mesh-install
index de30e8e6..1a76feb1 100755
--- a/src/freedombone-mesh-install
+++ b/src/freedombone-mesh-install
@@ -44,9 +44,6 @@ WIFI_INTERFACE='wlan0'
BATMAN_CELLID='02:BA:00:00:03:01'
WIFI_SSID='mesh'
-# Babel
-BABEL_PORT=6696
-
rootdir=''
FN=
CHROOT_PREFIX=''
@@ -77,999 +74,239 @@ INSTALL_DIR=$HOME/build
MESH_INSTALL_DIR=/var/lib
-source /usr/local/bin/${PROJECT_NAME}-utils-git
-if [ -f /usr/bin/${PROJECT_NAME}-utils-git ]; then
- source /usr/bin/${PROJECT_NAME}-utils-git
-fi
+REMOVE='no'
+
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-git
function show_help {
- echo ''
- echo $"${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]"
- echo ''
- echo $'Runs a mesh network install function'
- echo ''
- echo $' -h --help Show help'
- echo $' -f --function [name] Name of the function to be run'
- echo $' -r --rootdir [directory] Root directory'
- echo $' -w --wifi [interface] e.g. wlan0'
- echo ''
- exit 0
-}
-
-
-function mesh_babel {
- $CHROOT_PREFIX apt-get -y install babeld
-
- babel_script=${rootdir}/var/lib/babel
-
- echo '#!/bin/bash' > $babel_script
- echo '' >> $babel_script
- echo 'if [[ $1 == "ls" || $1 == "list" ]]; then' >> $babel_script
- echo ' avahi-browse -atl' >> $babel_script
- echo ' exit 0' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo 'if [[ $1 == "start" ]]; then' >> $babel_script
- echo ' sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
- echo ' sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
- echo ' sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
- echo ' sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
- echo ' sed -i "s|hosts:.*|hosts: files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf' >> $babel_script
- echo ' systemctl restart avahi-daemon' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo "IFACE=$WIFI_INTERFACE" >> $babel_script
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $babel_script
- echo ' if grep -q "wlan1" /proc/net/dev; then' >> $babel_script
- echo ' IFACE=wlan1' >> $babel_script
- echo ' fi' >> $babel_script
- echo 'fi' >> $babel_script
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $babel_script
- echo ' if grep -q "wlan2" /proc/net/dev; then' >> $babel_script
- echo ' IFACE=wlan2' >> $babel_script
- echo ' fi' >> $babel_script
- echo 'fi' >> $babel_script
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $babel_script
- echo ' if grep -q "wlan3" /proc/net/dev; then' >> $babel_script
- echo ' IFACE=wlan3' >> $babel_script
- echo ' fi' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo 'if [[ ! grep -q "$IFACE" /proc/net/dev || $1 == "stop" ]]; then' >> $babel_script
- echo ' if ! grep -q "$IFACE" /proc/net/dev; then' >> $babel_script
- echo ' echo "Interface $IFACE was not found"' >> $babel_script
- echo ' else' >> $babel_script
- echo ' echo "Stopping"' >> $babel_script
- echo ' fi' >> $babel_script
- echo ' ifconfig $IFACE down' >> $babel_script
- echo ' pkill babeld' >> $babel_script
- echo ' systemctl restart network-manager' >> $babel_script
- echo ' exit 1' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo 'systemctl stop network-manager' >> $babel_script
- echo 'ifconfig $IFACE down' >> $babel_script
- echo -n 'iwconfig $IFACE mode ad-hoc channel ' >> $babel_script
- echo "$WIFI_CHANNEL essid \"$WIFI_SSID\"" >> $babel_script
- echo 'ifconfig $IFACE up' >> $babel_script
- echo -n 'ifconfig $IFACE:avahi ' >> $babel_script
- echo -n "$LOCAL_NETWORK_STATIC_IP_ADDRESS netmask " >> $babel_script
- echo '255.255.255.0 broadcast 192.168.13.255' >> $babel_script
- echo -n 'babeld -D $IFACE:avahi -p ' >> $babel_script
- echo -n "$BABEL_PORT -d 5 " >> $babel_script
- echo '$IFACE' >> $babel_script
- echo 'exit 0' >> $babel_script
- chmod +x $babel_script
-
- echo '[Unit]' > ${rootdir}/etc/systemd/system/babel.service
- echo 'Description=Babel Mesh' >> ${rootdir}/etc/systemd/system/babel.service
- echo '' >> ${rootdir}/etc/systemd/system/babel.service
- echo '[Service]' >> ${rootdir}/etc/systemd/system/babel.service
- echo 'Type=oneshot' >> ${rootdir}/etc/systemd/system/babel.service
- echo "ExecStart=$babel_script start" >> ${rootdir}/etc/systemd/system/babel.service
- echo "ExecStop=$babel_script stop" >> ${rootdir}/etc/systemd/system/babel.service
- echo 'RemainAfterExit=yes' >> ${rootdir}/etc/systemd/system/babel.service
- echo '' >> ${rootdir}/etc/systemd/system/babel.service
- echo '# Allow time for the server to start/stop' >> ${rootdir}/etc/systemd/system/babel.service
- echo 'TimeoutSec=300' >> ${rootdir}/etc/systemd/system/babel.service
- echo '' >> ${rootdir}/etc/systemd/system/babel.service
- echo '[Install]' >> /etc/systemd/system/babel.service
- echo 'WantedBy=multi-user.target' >> ${rootdir}/etc/systemd/system/babel.service
- $CHROOT_PREFIX systemctl enable babel
+ echo ''
+ echo $"${PROJECT_NAME}-mesh-install -f [function] -r [rootdir]"
+ echo ''
+ echo $'Runs a mesh network install function'
+ echo ''
+ echo $' -h --help Show help'
+ echo $' -f --function [name] Name of the function to be run'
+ echo $' -r --rootdir [directory] Root directory'
+ echo $' -w --wifi [interface] e.g. wlan0'
+ echo ''
+ exit 0
}
function mesh_avahi {
- $CHROOT_PREFIX apt-get -y install avahi-utils avahi-autoipd avahi-dnsconfd
+ $CHROOT_PREFIX apt-get -yq install avahi-utils avahi-autoipd avahi-dnsconfd
- decarray=( 1 2 3 4 5 6 7 8 9 0 )
- PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
- sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" $rootdir/etc/avahi/avahi-daemon.conf
+ decarray=( 1 2 3 4 5 6 7 8 9 0 )
+ PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
+ sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" $rootdir/etc/avahi/avahi-daemon.conf
- if [ ! -d $rootdir/etc/avahi/services ]; then
- mkdir -p $rootdir/etc/avahi/services
- fi
+ if [ ! -d $rootdir/etc/avahi/services ]; then
+ mkdir -p $rootdir/etc/avahi/services
+ fi
- # remove an avahi service which isn't used
- if [ -f $rootdir/etc/avahi/services/udisks.service ]; then
- rm $rootdir/etc/avahi/services/udisks.service
- fi
+ # remove an avahi service which isn't used
+ if [ -f $rootdir/etc/avahi/services/udisks.service ]; then
+ rm $rootdir/etc/avahi/services/udisks.service
+ fi
- # Add an ssh service
- echo '' > $rootdir/etc/avahi/services/ssh.service
- echo '' >> $rootdir/etc/avahi/services/ssh.service
- echo '' >> $rootdir/etc/avahi/services/ssh.service
- echo ' %h SSH ' >> $rootdir/etc/avahi/services/ssh.service
- echo ' ' >> $rootdir/etc/avahi/services/ssh.service
- echo ' _ssh._tcp ' >> $rootdir/etc/avahi/services/ssh.service
- echo " $SSH_PORT " >> $rootdir/etc/avahi/services/ssh.service
- echo ' ' >> $rootdir/etc/avahi/services/ssh.service
- echo ' ' >> $rootdir/etc/avahi/services/ssh.service
+ # Add an ssh service
+ echo '' > $rootdir/etc/avahi/services/ssh.service
+ echo '' >> $rootdir/etc/avahi/services/ssh.service
+ echo '' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' %h SSH ' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' ' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' _ssh._tcp ' >> $rootdir/etc/avahi/services/ssh.service
+ echo " $SSH_PORT " >> $rootdir/etc/avahi/services/ssh.service
+ echo ' ' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' ' >> $rootdir/etc/avahi/services/ssh.service
- # keep the daemon running
- WATCHDOG_SCRIPT_NAME="keepon"
- echo '' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo '# keep avahi daemon running' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo 'AVAHI_RUNNING=$(pgrep avahi-daemon > /dev/null && echo Running)' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo 'if [ ! $AVAHI_RUNNING ]; then' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo ' systemctl start avahi-daemon' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo ' echo -n $CURRENT_DATE >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo ' echo " Avahi daemon restarted" >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- echo 'fi' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
- chmod +x $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ # keep the daemon running
+ WATCHDOG_SCRIPT_NAME="keepon"
+ echo '' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo '# keep avahi daemon running' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'AVAHI_RUNNING=$(pgrep avahi-daemon > /dev/null && echo Running)' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'if [ ! $AVAHI_RUNNING ]; then' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' systemctl start avahi-daemon' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' echo -n $CURRENT_DATE >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' echo " Avahi daemon restarted" >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'fi' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ chmod +x $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
}
-function mesh_babel_client {
- # TODO to be fixed
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- fi
-
- if [ ! -f ${rootdir}/tmp/meshtype ]; then
- $CHROOT_PREFIX sudo apt-get -y install babeld
- if [ ! -f $TOXIC_FILE ]; then
- $CHROOT_PREFIX sudo apt-get -y install toxic
- fi
-
- CURR_DIR=$(pwd)
- if [ ! -f ~/develop/toxid ]; then
- if [ ! -f ~/develop ]; then
- mkdir ~/develop
- fi
- cd ~/develop
- git_clone $TOXID_REPO ~/develop/toxid
- fi
- cd ~/develop/toxid
- sudo make install
- cd $CURR_DIR
- fi
-
- babel_script=${rootdir}/tmp/babel
-
- echo '#!/bin/bash' > $babel_script
- echo '' >> $babel_script
- echo 'if [[ $1 == "ls" || $1 == "list" ]]; then' >> $babel_script
- echo ' avahi-browse -atl' >> $babel_script
- echo ' exit 0' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo 'if [[ $1 == "start" ]]; then' >> $babel_script
- echo ' if [ -f /tmp/meshtype ] ; then' >> $babel_script
- echo ' echo "Mesh already running"' >> $babel_script
- echo ' return' >> $babel_script
- echo ' fi' >> $batman_script
- echo ' # install avahi' >> $babel_script
- echo ' apt-get -y install avahi-utils avahi-autoipd avahi-daemon avahi-dnsconfd bittornado' >> $babel_script
- echo ' sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
- echo ' sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $babel_script
- echo ' if [ -f /bin/systemctl ]; then' >> $babel_script
- echo ' systemctl restart avahi-daemon' >> $babel_script
- echo ' else' >> $babel_script
- echo ' service avahi-daemon restart' >> $babel_script
- echo ' fi' >> $babel_script
- echo ' echo "babel" > /tmp/meshtype' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo "IFACE=$WIFI_INTERFACE" >> $babel_script
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $babel_script
- echo ' if grep -q "wlan1" /proc/net/dev; then' >> $babel_script
- echo ' IFACE=wlan1' >> $babel_script
- echo ' fi' >> $babel_script
- echo 'fi' >> $babel_script
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $babel_script
- echo ' if grep -q "wlan2" /proc/net/dev; then' >> $babel_script
- echo ' IFACE=wlan2' >> $babel_script
- echo ' fi' >> $babel_script
- echo 'fi' >> $babel_script
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $babel_script
- echo ' if grep -q "wlan3" /proc/net/dev; then' >> $babel_script
- echo ' IFACE=wlan3' >> $babel_script
- echo ' fi' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo 'if [[ ! grep -q "$IFACE" /proc/net/dev || $1 == "stop" ]]; then' >> $babel_script
- echo ' if ! grep -q "$IFACE" /proc/net/dev; then' >> $babel_script
- echo ' echo "Interface $IFACE was not found"' >> $babel_script
- echo ' else' >> $babel_script
- echo ' echo "Stopping"' >> $babel_script
- echo ' fi' >> $babel_script
- echo ' ifconfig $IFACE down' >> $babel_script
- echo ' pkill babeld' >> $babel_script
- echo ' if [ -f /bin/systemctl ]; then' >> $babel_script
- echo ' systemctl restart network-manager' >> $babel_script
- echo ' else' >> $babel_script
- echo ' service network-manager restart' >> $babel_script
- echo ' fi' >> $babel_script
- echo ' exit 1' >> $babel_script
- echo 'fi' >> $babel_script
- echo '' >> $babel_script
- echo 'if [ -f /bin/systemctl ]; then' >> $babel_script
- echo ' systemctl stop network-manager' >> $babel_script
- echo 'else' >> $babel_script
- echo ' service network-manager stop' >> $babel_script
- echo 'fi' >> $babel_script
- echo 'ifconfig $IFACE down' >> $babel_script
- echo -n 'iwconfig $IFACE mode ad-hoc channel ' >> $babel_script
- echo "$WIFI_CHANNEL essid \"$WIFI_SSID\"" >> $babel_script
- echo 'ifconfig $IFACE up' >> $babel_script
- echo -n 'ifconfig $IFACE:avahi ' >> $babel_script
- echo -n "$LOCAL_NETWORK_STATIC_IP_ADDRESS netmask " >> $babel_script
- echo '255.255.255.0 broadcast 192.168.13.255' >> $babel_script
- echo -n 'babeld -D $IFACE:avahi -p ' >> $babel_script
- echo -n "$BABEL_PORT -d 5 " >> $babel_script
- echo '$IFACE' >> $babel_script
- echo 'exit 0' >> $babel_script
- chmod +x $babel_script
- sudo mv $babel_script ${rootdir}/usr/bin/babel
+function install_batman_remove {
+ systemctl stop batman
+ rm $rootdir/var/lib/batman
+ rm $rootdir/etc/systemd/system/batman.service
}
+function install_batman {
+ $CHROOT_PREFIX apt-get -yq install iproute bridge-utils libnetfilter-conntrack3 batctl
+ $CHROOT_PREFIX apt-get -yq install python-dev libevent-dev ebtables python-pip git
+ $CHROOT_PREFIX apt-get -yq install wireless-tools rfkill
-function mesh_batman {
- $CHROOT_PREFIX apt-get -y install iproute bridge-utils libnetfilter-conntrack3 batctl
- $CHROOT_PREFIX apt-get -y install python-dev libevent-dev ebtables python-pip git
- $CHROOT_PREFIX apt-get -y install wireless-tools rfkill
+ if ! grep -q "batman_adv" $rootdir/etc/modules; then
+ echo 'batman_adv' >> $rootdir/etc/modules
+ fi
- if ! grep -q "batman_adv" $rootdir/etc/modules; then
- echo 'batman_adv' >> $rootdir/etc/modules
- fi
+ BATMAN_SCRIPT=$rootdir/var/lib/batman
- BATMAN_SCRIPT=$rootdir/var/lib/batman
+ if [ -f /usr/local/bin/${PROJECT_NAME}-mesh-batman ]; then
+ cp /usr/local/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
+ else
+ cp /usr/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
+ fi
- if [ -f /usr/local/bin/${PROJECT_NAME}-mesh-batman ]; then
- cp /usr/local/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
- else
- cp /usr/bin/${PROJECT_NAME}-mesh-batman $BATMAN_SCRIPT
- fi
-
- BATMAN_DAEMON=$rootdir/etc/systemd/system/batman.service
- echo '[Unit]' > $BATMAN_DAEMON
- echo 'Description=B.A.T.M.A.N. Advanced' >> $BATMAN_DAEMON
- echo 'After=network.target' >> $BATMAN_DAEMON
- echo '' >> $BATMAN_DAEMON
- echo '[Service]' >> $BATMAN_DAEMON
- echo 'RemainAfterExit=yes' >> $BATMAN_DAEMON
- echo "ExecStart=/var/lib/batman start" >> $BATMAN_DAEMON
- echo "ExecStop=/var/lib/batman stop" >> $BATMAN_DAEMON
- echo 'Restart=on-failure' >> $BATMAN_DAEMON
- echo 'SuccessExitStatus=3 4' >> $BATMAN_DAEMON
- echo 'RestartForceExitStatus=3 4' >> $BATMAN_DAEMON
- echo '' >> $BATMAN_DAEMON
- echo '# Allow time for the server to start/stop' >> $BATMAN_DAEMON
- echo 'TimeoutSec=300' >> $BATMAN_DAEMON
- echo '' >> $BATMAN_DAEMON
- echo '[Install]' >> $BATMAN_DAEMON
- echo 'WantedBy=multi-user.target' >> $BATMAN_DAEMON
- $CHROOT_PREFIX systemctl enable batman
+ BATMAN_DAEMON=$rootdir/etc/systemd/system/batman.service
+ echo '[Unit]' > $BATMAN_DAEMON
+ echo 'Description=B.A.T.M.A.N. Advanced' >> $BATMAN_DAEMON
+ echo 'After=network.target' >> $BATMAN_DAEMON
+ echo '' >> $BATMAN_DAEMON
+ echo '[Service]' >> $BATMAN_DAEMON
+ echo 'RemainAfterExit=yes' >> $BATMAN_DAEMON
+ echo "ExecStart=/var/lib/batman start" >> $BATMAN_DAEMON
+ echo "ExecStop=/var/lib/batman stop" >> $BATMAN_DAEMON
+ echo 'Restart=on-failure' >> $BATMAN_DAEMON
+ echo 'SuccessExitStatus=3 4' >> $BATMAN_DAEMON
+ echo 'RestartForceExitStatus=3 4' >> $BATMAN_DAEMON
+ echo '' >> $BATMAN_DAEMON
+ echo '# Allow time for the server to start/stop' >> $BATMAN_DAEMON
+ echo 'TimeoutSec=300' >> $BATMAN_DAEMON
+ echo '' >> $BATMAN_DAEMON
+ echo '[Install]' >> $BATMAN_DAEMON
+ echo 'WantedBy=multi-user.target' >> $BATMAN_DAEMON
+ $CHROOT_PREFIX systemctl enable batman
}
function mesh_firewall {
- FIREWALL_FILENAME=${rootdir}/etc/systemd/system/meshfirewall.service
- MESH_FIREWALL_SCRIPT=${rootdir}/usr/bin/mesh-firewall
+ FIREWALL_FILENAME=${rootdir}/etc/systemd/system/meshfirewall.service
+ MESH_FIREWALL_SCRIPT=${rootdir}/usr/bin/mesh-firewall
- echo '#!/bin/bash' > $MESH_FIREWALL_SCRIPT
- echo 'iptables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -F' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -F' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -t nat -F' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -t nat -F' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -X' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -X' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'ip6tables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -i lo -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Make sure incoming tcp connections are SYN packets' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Drop packets with incoming fragments' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -f -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Drop bogons' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo '# Incoming malformed NULL packets:' >> $MESH_FIREWALL_SCRIPT
- echo 'iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP' >> $MESH_FIREWALL_SCRIPT
- echo '' >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -p tcp --dport $TOX_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
- chmod +x $MESH_FIREWALL_SCRIPT
+ echo '#!/bin/bash' > $MESH_FIREWALL_SCRIPT
+ echo 'iptables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -t nat -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -t nat -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -X' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -X' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -i lo -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Make sure incoming tcp connections are SYN packets' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Drop packets with incoming fragments' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -f -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Drop bogons' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Incoming malformed NULL packets:' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -p tcp --dport $TOX_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ chmod +x $MESH_FIREWALL_SCRIPT
- echo '[Unit]' > $FIREWALL_FILENAME
- echo 'Description=Mesh Firewall' >> $FIREWALL_FILENAME
- echo '' >> $FIREWALL_FILENAME
- echo '[Service]' >> $FIREWALL_FILENAME
- echo 'Type=oneshot' >> $FIREWALL_FILENAME
- echo 'ExecStart=/usr/bin/mesh-firewall' >> $FIREWALL_FILENAME
- echo 'RemainAfterExit=no' >> $FIREWALL_FILENAME
- echo '' >> $FIREWALL_FILENAME
- echo 'TimeoutSec=30' >> $FIREWALL_FILENAME
- echo '' >> $FIREWALL_FILENAME
- echo '[Install]' >> $FIREWALL_FILENAME
- echo 'WantedBy=multi-user.target' >> $FIREWALL_FILENAME
- $CHROOT_PREFIX systemctl enable meshfirewall
-}
-
-function mesh_tox_node {
- # obtain commits from the main file
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXCORE_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- TOXCORE_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
- if [ ${#TOXCORE_COMMIT_MAIN} -gt 10 ]; then
- TOXCORE_COMMIT=$TOXCORE_COMMIT_MAIN
- fi
- if [ ! $TOXCORE_COMMIT ]; then
- echo $'No Tox commit was specified'
- exit 76325
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXID_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- TOXID_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#TOXID_REPO_MAIN} -gt 5 ]; then
- TOXID_REPO=$TOXID_REPO_MAIN
- fi
- if [ ! $TOXID_REPO ]; then
- echo $'No ToxID repo was specified'
- exit 78252
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOX_PORT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOX_PORT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- fi
- if [ ${#TOX_PORT_MAIN} -gt 2 ]; then
- TOX_PORT=$TOX_PORT_MAIN
- fi
- if [ ! $TOX_PORT ]; then
- echo $'No Tox port was specified'
- exit 32856
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXCORE_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- TOXCORE_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#TOXCORE_REPO_MAIN} -gt 10 ]; then
- TOXCORE_REPO=$TOXCORE_REPO_MAIN
- fi
- if [ ! $TOXCORE_REPO ]; then
- echo $'No Tox repo was specified'
- exit 16865
- fi
-
- $CHROOT_PREFIX apt-get -y install build-essential libtool autotools-dev
- $CHROOT_PREFIX apt-get -y install automake checkinstall check git yasm
- $CHROOT_PREFIX apt-get -y install libsodium13 libsodium-dev libcap2-bin
- $CHROOT_PREFIX apt-get -y install libconfig9 libconfig-dev
-
- $CHROOT_PREFIX mkdir -p $INSTALL_DIR
- $CHROOT_PREFIX git_clone $TOXCORE_REPO $INSTALL_DIR/toxcore
- $CHROOT_PREFIX cd $INSTALL_DIR/toxcore
- $CHROOT_PREFIX git checkout $TOXCORE_COMMIT -b $TOXCORE_COMMIT
-
- $CHROOT_PREFIX autoreconf -i
- $CHROOT_PREFIX ./configure --enable-daemon --disable-av
- $CHROOT_PREFIX make clean
- $CHROOT_PREFIX make -k
- if [ ! "$?" = "0" ]; then
- return
- fi
- $CHROOT_PREFIX make install
- $CHROOT_PREFIX cp /usr/local/lib/libtoxcore* /usr/lib/
-
- if [ ! -f $rootdir/usr/local/bin/tox-bootstrapd ]; then
- echo $"File not found /usr/local/bin/tox-bootstrapd"
- return
- fi
-
- $CHROOT_PREFIX useradd --home-dir /var/lib/tox-bootstrapd --create-home --system --shell /sbin/nologin --comment $"Account to run Tox's DHT bootstrap daemon" --user-group tox-bootstrapd
- $CHROOT_PREFIX chmod 700 /var/lib/tox-bootstrapd
- if [ ! -f $rootdir/$INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf ]; then
- echo $"File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf"
- fi
- # remove Maildir
- if [ -d $rootdir/var/lib/tox-bootstrapd/Maildir ]; then
- rm -rf $rootdir/var/lib/tox-bootstrapd/Maildir
- fi
-
- # create configuration file
- TOX_BOOTSTRAP_CONFIG=${rootdir}/etc/tox-bootstrapd.conf
- echo "port = $TOX_PORT" > $TOX_BOOTSTRAP_CONFIG
- echo 'keys_file_path = "/var/lib/tox-bootstrapd/keys"' >> $TOX_BOOTSTRAP_CONFIG
- echo 'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_ipv6 = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_ipv4_fallback = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_lan_discovery = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_tcp_relay = true' >> $TOX_BOOTSTRAP_CONFIG
- echo "tcp_relay_ports = [443, 3389, $TOX_PORT]" >> $TOX_BOOTSTRAP_CONFIG
- echo 'enable_motd = true' >> $TOX_BOOTSTRAP_CONFIG
- echo 'motd = "tox-bootstrapd"' >> $TOX_BOOTSTRAP_CONFIG
-
- if [ $TOX_NODES ]; then
- echo 'bootstrap_nodes = (' >> $TOX_BOOTSTRAP_CONFIG
- toxcount=0
- while [ "x${TOX_NODES[toxcount]}" != "x" ]
- do
- toxval_ipv4=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $1}')
- toxval_ipv6=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $2}')
- toxval_port=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $3}')
- toxval_pubkey=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $4}')
- toxval_maintainer=$(echo $TOX_NODES[toxcount] | awk -F ',' '{print $5}')
- echo "{ // $toxval_maintainer" >> $TOX_BOOTSTRAP_CONFIG
- if [[ $toxval_ipv6 != 'NONE' ]]; then
- echo " address = \"$toxval_ipv6\"" >> $TOX_BOOTSTRAP_CONFIG
- else
- echo " address = \"$toxval_ipv4\"" >> $TOX_BOOTSTRAP_CONFIG
- fi
- echo " port = $toxval_port" >> $TOX_BOOTSTRAP_CONFIG
- echo " public_key = \"$toxval_pubkey\"" >> $TOX_BOOTSTRAP_CONFIG
- toxcount=$(( $toxcount + 1 ))
- if [ "x${TOX_NODES[toxcount]}" != "x" ]; then
- echo "}," >> $TOX_BOOTSTRAP_CONFIG
- else
- echo "}" >> $TOX_BOOTSTRAP_CONFIG
- fi
- done
- echo ')' >> $TOX_BOOTSTRAP_CONFIG
- fi
-
- if [ ! -f $rootdir/$INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service ]; then
- echo $"File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service"
- return
- fi
- cp $rootdir/$INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.service $rootdir/etc/systemd/system/
- sed -i 's|ExecStart=.*|ExecStart=/usr/local/bin/tox-bootstrapd --config /etc/tox-bootstrapd.conf|g' $rootdir/etc/systemd/system/tox-bootstrapd.service
-
- $CHROOT_PREFIX systemctl daemon-reload
- $CHROOT_PREFIX systemctl enable tox-bootstrapd.service
-}
-
-function mesh_tox_client {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- fi
-
- # obtain commits from the main file
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- TOXIC_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
- if [ ${#TOXIC_COMMIT_MAIN} -gt 10 ]; then
- TOXIC_COMMIT=$TOXIC_COMMIT_MAIN
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- TOXIC_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#TOXIC_REPO_MAIN} -gt 5 ]; then
- TOXIC_REPO=$TOXIC_REPO_MAIN
- fi
-
- $CHROOT_PREFIX apt-get -y install libncursesw5-dev libconfig-dev libqrencode-dev
- $CHROOT_PREFIX apt-get -y install libcurl4-openssl-dev libvpx-dev libopenal-dev
-
- $CHROOT_PREFIX git_clone $TOXIC_REPO $INSTALL_DIR/toxic
- $CHROOT_PREFIX cd $INSTALL_DIR/toxic
- $CHROOT_PREFIX git checkout $TOXIC_COMMIT -b $TOXIC_COMMIT
- if ! grep -q "Toxic commit" $rootdir$COMPLETION_FILE; then
- echo "Toxic commit:$TOXIC_COMMIT" >> $rootdir$COMPLETION_FILE
- else
- sed -i "s|Toxic commit.*|Toxic commit:$TOXIC_COMMIT|g" $rootdir$COMPLETION_FILE
- fi
-
- $CHROOT_PREFIX make clean
- $CHROOT_PREFIX make -k
- if [ ! -f $INSTALL_DIR/toxic/build/toxic ]; then
- exit 74872
- fi
- $CHROOT_PREFIX make install
- if [ ! -f $TOXIC_FILE ]; then
- echo $'Tox client was not installed'
- exit 63278
- fi
+ echo '[Unit]' > $FIREWALL_FILENAME
+ echo 'Description=Mesh Firewall' >> $FIREWALL_FILENAME
+ echo '' >> $FIREWALL_FILENAME
+ echo '[Service]' >> $FIREWALL_FILENAME
+ echo 'Type=oneshot' >> $FIREWALL_FILENAME
+ echo 'ExecStart=/usr/bin/mesh-firewall' >> $FIREWALL_FILENAME
+ echo 'RemainAfterExit=no' >> $FIREWALL_FILENAME
+ echo '' >> $FIREWALL_FILENAME
+ echo 'TimeoutSec=30' >> $FIREWALL_FILENAME
+ echo '' >> $FIREWALL_FILENAME
+ echo '[Install]' >> $FIREWALL_FILENAME
+ echo 'WantedBy=multi-user.target' >> $FIREWALL_FILENAME
+ chmod +x $FIREWALL_FILENAME
+ $CHROOT_PREFIX systemctl enable meshfirewall
}
function enable_tox_repo {
- sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/Debian_8.0/ /' > /etc/apt/sources.list.d/tox.list"
- wget http://download.opensuse.org/repositories/home:antonbatenev:tox/Debian_8.0/Release.key
- sudo sh -c "apt-key add - < Release.key"
- sudo apt-get update
- echo "Tox Repository Installed."
+ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/Debian_8.0/ /' > /etc/apt/sources.list.d/tox.list"
+ wget http://download.opensuse.org/repositories/home:antonbatenev:tox/Debian_8.0/Release.key
+ sudo sh -c "apt-key add - < Release.key"
+ sudo apt-get update
+ echo "Tox Repository Installed."
}
function mesh_tox_client_qtox {
- enable_tox_repo
- sudo apt-get -y install qtox
- echo "qTox Installed."
+ enable_tox_repo
+ sudo apt-get -yq install qtox
+ echo "qTox Installed."
}
function mesh_tox_client_toxic_from_repo {
- enable_tox_repo
- sudo apt-get -y install toxic
- echo "Toxic Installed."
+ enable_tox_repo
+ sudo apt-get -yq install toxic
+ echo "Toxic Installed."
}
-function mesh_zeronet {
- # obtain commits from the main file
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- else
- ZERONET_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
- fi
- if [ ${#ZERONET_COMMIT_MAIN} -gt 10 ]; then
- ZERONET_COMMIT=$ZERONET_COMMIT_MAIN
- fi
- if [ ! $ZERONET_COMMIT ]; then
- echo $'No Tox commit was specified'
- exit 37046
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- else
- ZERONET_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
- fi
- if [ ${#ZERONET_REPO_MAIN} -gt 5 ]; then
- ZERONET_REPO=$ZERONET_REPO_MAIN
- fi
- if [ ! $ZERONET_REPO ]; then
- echo $'No Tox commit was specified'
- exit 37046
- fi
-
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- ZERONET_PORT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME} | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- else
- ZERONET_PORT_MAIN=$(cat /usr/bin/${PROJECT_NAME} | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
- fi
- if [ ${#ZERONET_PORT_MAIN} -gt 1 ]; then
- ZERONET_PORT=$ZERONET_PORT_MAIN
- fi
- if [ ! $ZERONET_PORT ]; then
- echo $'No zeronet port was specified'
- exit 67433
- fi
-
- $CHROOT_PREFIX apt-get -y install python python-msgpack python-gevent
- $CHROOT_PREFIX apt-get -y install python-pip bittornado
- $CHROOT_PREFIX pip install msgpack-python --upgrade
- $CHROOT_PREFIX pip install gevent --upgrade
-
- $CHROOT_PREFIX useradd -d $MESH_INSTALL_DIR/zeronet/ -s /bin/false zeronet
- git_clone $ZERONET_REPO $rootdir$MESH_INSTALL_DIR/zeronet
- if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet ]; then
- echo 'WARNING: Unable to clone zeronet'
- return
- fi
- cd $rootdir$MESH_INSTALL_DIR/zeronet
- git checkout $ZERONET_COMMIT -b $ZERONET_COMMIT
- if ! grep -q "ZeroNet commit" $COMPLETION_FILE; then
- echo "ZeroNet commit:$ZERONET_COMMIT" >> $rootdir$COMPLETION_FILE
- else
- sed -i "s/ZeroNet commit.*/ZeroNet commit:$ZERONET_COMMIT/g" $COMPLETION_FILE
- fi
- chown -R zeronet:zeronet $rootdir$MESH_INSTALL_DIR/zeronet
-
- # Hack to ensure that the file access port is opened
- # This is because zeronet normally relies on an internet site
- # to do this, but on a purely local mesh the internet isn't available
- sed -i 's|fileserver_port = 0|fileserver_port = config.fileserver_port\n sys.modules["main"].file_server.port_opened = True|g' $rootdir$MESH_INSTALL_DIR/zeronet/src/Site/Site.py
-
- ZERPNET_DAEMON=$rootdir/etc/systemd/system/zeronet.service
- echo '[Unit]' > $ZERONET_DAEMON
- echo 'Description=Zeronet Server' >> $ZERONET_DAEMON
- echo 'After=syslog.target' >> $ZERONET_DAEMON
- echo 'After=network.target' >> $ZERONET_DAEMON
- echo '[Service]' >> $ZERONET_DAEMON
- echo 'Type=simple' >> $ZERONET_DAEMON
- echo 'User=zeronet' >> $ZERONET_DAEMON
- echo 'Group=zeronet' >> $ZERONET_DAEMON
- echo "WorkingDirectory=$MESH_INSTALL_DIR/zeronet" >> $ZERONET_DAEMON
- echo "ExecStart=/usr/bin/python zeronet.py --ip_external replace.local --trackers_file $MESH_INSTALL_DIR/zeronet/bootstrap" >> $ZERONET_DAEMON
- echo '' >> $ZERONET_DAEMON
- echo 'TimeoutSec=300' >> $ZERONET_DAEMON
- echo '' >> $ZERONET_DAEMON
- echo '[Install]' >> $ZERONET_DAEMON
- echo 'WantedBy=multi-user.target' >> $ZERONET_DAEMON
-
- TRACKER_DAEMON=$rootdir/etc/systemd/system/tracker.service
- echo '[Unit]' > $TRACKER_DAEMON
- echo 'Description=Torrent Tracker' >> $TRACKER_DAEMON
- echo 'After=syslog.target' >> $TRACKER_DAEMON
- echo 'After=network.target' >> $TRACKER_DAEMON
- echo '[Service]' >> $TRACKER_DAEMON
- echo 'Type=simple' >> $TRACKER_DAEMON
- echo 'User=tracker' >> $TRACKER_DAEMON
- echo 'Group=tracker' >> $TRACKER_DAEMON
- echo "WorkingDirectory=$MESH_INSTALL_DIR/tracker" >> $TRACKER_DAEMON
- echo "ExecStart=/usr/bin/bttrack --port $TRACKER_PORT --dfile $MESH_INSTALL_DIR/tracker/dstate --logfile $MESH_INSTALL_DIR/tracker/tracker.log --nat_check 0 --scrape_allowed full --ipv6_enabled 0" >> $TRACKER_DAEMON
- echo '' >> $TRACKER_DAEMON
- echo 'TimeoutSec=300' >> $TRACKER_DAEMON
- echo '' >> $TRACKER_DAEMON
- echo '[Install]' >> $TRACKER_DAEMON
- echo 'WantedBy=multi-user.target' >> $TRACKER_DAEMON
-
- $CHROOT_PREFIX useradd -d $MESH_INSTALL_DIR/tracker/ -s /bin/false tracker
- if [ ! -d $rootdir$MESH_INSTALL_DIR/tracker ]; then
- mkdir $rootdir$MESH_INSTALL_DIR/tracker
- fi
- chown -R tracker:tracker $rootdir$MESH_INSTALL_DIR/tracker
-
- # publish regularly
- echo "* * * * * root zeronetavahi > /dev/null" >> $rootdir/etc/crontab
-
- $CHROOT_PREFIX systemctl enable tracker.service
- $CHROOT_PREFIX systemctl enable zeronet.service
-}
-
-function mesh_batman_client {
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- else
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
- fi
-
- if [ ! -f ${rootdir}/tmp/meshtype ]; then
- $CHROOT_PREFIX sudo apt-get -y install iproute bridge-utils libnetfilter-conntrack3 batctl
- $CHROOT_PREFIX sudo apt-get -y install python-dev libevent-dev ebtables python-pip
- $CHROOT_PREFIX sudo apt-get -y install wireless-tools rfkill
- if [ ! -f $TOXIC_FILE ]; then
- $CHROOT_PREFIX sudo apt-get -y install toxic
- fi
- fi
-
- BATMAN_SCRIPT=${rootdir}/tmp/batman
-
- echo '#!/bin/bash' > $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'if [[ $1 == "start" ]]; then' >> $BATMAN_SCRIPT
- echo ' # install avahi' >> $BATMAN_SCRIPT
- echo ' apt-get -y install avahi-utils avahi-autoipd avahi-daemon avahi-dnsconfd bittornado' >> $BATMAN_SCRIPT
- echo ' sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
- echo ' sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
- echo ' sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
- echo ' sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
- echo ' sed -i "s|#disallow-other-stacks=.*|disallow-other-stacks=yes|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
- echo ' sed -i "s|hosts:.*|hosts: files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf' >> $BATMAN_SCRIPT
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
- echo ' systemctl restart avahi-daemon' >> $BATMAN_SCRIPT
- echo ' else' >> $BATMAN_SCRIPT
- echo ' service avahi-daemon restart' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo 'fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo '# Mesh definition' >> $BATMAN_SCRIPT
- echo "WIFI_SSID=$WIFI_SSID" >> $BATMAN_SCRIPT
- echo "CELLID=$BATMAN_CELLID" >> $BATMAN_SCRIPT
- echo "CHANNEL=$WIFI_CHANNEL" >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo '# Ethernet bridge definition (bridged to bat0)' >> $BATMAN_SCRIPT
- echo 'BRIDGE=br-mesh' >> $BATMAN_SCRIPT
- echo "IFACE=$WIFI_INTERFACE" >> $BATMAN_SCRIPT
- echo 'EIFACE=eth0' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $BATMAN_SCRIPT
- echo ' if grep -q "wlan1" /proc/net/dev; then' >> $BATMAN_SCRIPT
- echo ' IFACE=wlan1' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo 'fi' >> $BATMAN_SCRIPT
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $BATMAN_SCRIPT
- echo ' if grep -q "wlan2" /proc/net/dev; then' >> $BATMAN_SCRIPT
- echo ' IFACE=wlan2' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo 'fi' >> $BATMAN_SCRIPT
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $BATMAN_SCRIPT
- echo ' if grep -q "wlan3" /proc/net/dev; then' >> $BATMAN_SCRIPT
- echo ' IFACE=wlan3' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo 'fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'if [ -e /etc/default/batctl ]; then' >> $BATMAN_SCRIPT
- echo ' . /etc/default/batctl' >> $BATMAN_SCRIPT
- echo 'fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'start() {' >> $BATMAN_SCRIPT
- echo ' if [ -f /tmp/meshtype ] ; then' >> $BATMAN_SCRIPT
- echo ' echo "Mesh already running"' >> $BATMAN_SCRIPT
- echo ' return' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' if [ -z "$IFACE" ] ; then' >> $BATMAN_SCRIPT
- echo ' echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $BATMAN_SCRIPT
- echo ' return' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' echo "info: enabling batman-adv mesh network $WIFI_SSID on $IFACE"' >> $BATMAN_SCRIPT
-
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
- echo ' systemctl stop network-manager' >> $BATMAN_SCRIPT
- echo ' else' >> $BATMAN_SCRIPT
- echo ' service network-manager stop' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' sleep 5' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo " # remove an avahi service which isn't used" >> $BATMAN_SCRIPT
- echo ' if [ -f /etc/avahi/services/udisks.service ]; then' >> $BATMAN_SCRIPT
- echo ' sudo rm /etc/avahi/services/udisks.service' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' # Might have to re-enable wifi' >> $BATMAN_SCRIPT
- echo ' rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' ifconfig $IFACE down' >> $BATMAN_SCRIPT
- echo ' ifconfig $IFACE mtu 1532' >> $BATMAN_SCRIPT
- echo ' iwconfig $IFACE enc off' >> $BATMAN_SCRIPT
- echo ' iwconfig $IFACE mode ad-hoc essid $WIFI_SSID channel $CHANNEL' >> $BATMAN_SCRIPT
- echo ' sleep 1' >> $BATMAN_SCRIPT
- echo ' iwconfig $IFACE ap $CELLID' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' modprobe batman-adv' >> $BATMAN_SCRIPT
- echo ' batctl if add $IFACE' >> $BATMAN_SCRIPT
- echo ' ifconfig $IFACE up' >> $BATMAN_SCRIPT
- echo ' avahi-autoipd --force-bind --daemonize --wait $BRIDGE' >> $BATMAN_SCRIPT
- echo ' avahi-autoipd --force-bind --daemonize --wait $IFACE' >> $BATMAN_SCRIPT
- echo ' ifconfig bat0 up promisc' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' #Use persistent HWAddr' >> $BATMAN_SCRIPT
- echo ' ether_new=$(ifconfig eth0 | grep HWaddr | sed -e "s/.*HWaddr //")' >> $BATMAN_SCRIPT
- echo ' if [ ! -f /var/lib/mesh-node/bat0 ]; then' >> $BATMAN_SCRIPT
- echo ' mkdir /var/lib/mesh-node' >> $BATMAN_SCRIPT
- echo ' echo "${ether_new}" > /var/lib/mesh-node/bat0' >> $BATMAN_SCRIPT
- echo ' else' >> $BATMAN_SCRIPT
- echo ' ether=$(cat /var/lib/mesh-node/bat0)' >> $BATMAN_SCRIPT
- echo ' ifconfig bat0 hw ether ${ether}' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' if [ "$EIFACE" ] ; then' >> $BATMAN_SCRIPT
- echo ' brctl addbr $BRIDGE' >> $BATMAN_SCRIPT
- echo ' brctl addif $BRIDGE bat0' >> $BATMAN_SCRIPT
- echo ' brctl addif $BRIDGE $EIFACE' >> $BATMAN_SCRIPT
- echo ' ifconfig bat0 0.0.0.0' >> $BATMAN_SCRIPT
- echo ' ifconfig $EIFACE 0.0.0.0' >> $BATMAN_SCRIPT
- echo ' ifconfig $EIFACE up promisc' >> $BATMAN_SCRIPT
- echo ' ifconfig $BRIDGE up' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' iptables -A INPUT -p tcp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -A INPUT -p udp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -A INPUT -p tcp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -A INPUT -p udp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -A INPUT -p tcp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -A INPUT -p udp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p udp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p udp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p tcp --dport $IPFS_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p tcp --dport 80 -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -A INPUT -p udp -m udp -j ACCEPT" >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
- echo ' systemctl restart avahi-daemon' >> $BATMAN_SCRIPT
- echo ' else' >> $BATMAN_SCRIPT
- echo ' service avahi-daemon restart' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' echo "batman" > /tmp/meshtype' >> $BATMAN_SCRIPT
- echo '}' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'stop() {' >> $BATMAN_SCRIPT
- echo ' if [ -z "$IFACE" ]; then' >> $BATMAN_SCRIPT
- echo ' echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $BATMAN_SCRIPT
- echo ' return' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' if [ "$EIFACE" ]; then' >> $BATMAN_SCRIPT
- echo ' brctl delif $BRIDGE bat0' >> $BATMAN_SCRIPT
- echo ' brctl delif $BRIDGE $EIFACE' >> $BATMAN_SCRIPT
- echo ' ifconfig $BRIDGE down || true' >> $BATMAN_SCRIPT
- echo ' brctl delbr $BRIDGE' >> $BATMAN_SCRIPT
- echo ' ifconfig $EIFACE down -promisc' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' avahi-autoipd -k $BRIDGE' >> $BATMAN_SCRIPT
- echo ' avahi-autoipd -k $IFACE' >> $BATMAN_SCRIPT
- echo ' ifconfig bat0 down -promisc' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' batctl if del $IFACE' >> $BATMAN_SCRIPT
- echo ' rmmod batman-adv' >> $BATMAN_SCRIPT
- echo ' ifconfig $IFACE mtu 1500' >> $BATMAN_SCRIPT
- echo ' ifconfig $IFACE down' >> $BATMAN_SCRIPT
- echo ' iwconfig $IFACE mode managed' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' iptables -D INPUT -p tcp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -D INPUT -p udp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -D INPUT -p tcp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -D INPUT -p udp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -D INPUT -p tcp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
- echo ' iptables -D INPUT -p udp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p udp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p udp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p tcp --dport $IPFS_PORT -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p udp --dport 1900 -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p tcp --dport 80 -j ACCEPT" >> $BATMAN_SCRIPT
- echo " iptables -D INPUT -p udp -m udp -j ACCEPT" >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
- echo ' systemctl restart network-manager' >> $BATMAN_SCRIPT
- echo ' else' >> $BATMAN_SCRIPT
- echo ' service network-manager restart' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' ' >> $BATMAN_SCRIPT
- echo ' # restore tox bootstrap nodes for the internet' >> $BATMAN_SCRIPT
- echo ' if [ -f /usr/share/toxic/DHTnodes.internet ]; then' >> $BATMAN_SCRIPT
- echo ' mv /usr/share/toxic/DHTnodes.internet /usr/share/toxic/DHTnodes' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' if [ -f /usr/local/share/toxic/DHTnodes.internet ]; then' >> $BATMAN_SCRIPT
- echo ' mv /usr/local/share/toxic/DHTnodes.internet /usr/local/share/toxic/DHTnodes' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
- echo ' systemctl stop avahi-daemon' >> $BATMAN_SCRIPT
- echo ' else' >> $BATMAN_SCRIPT
- echo ' service avahi-daemon stop' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' sudo rm -f /tmp/meshtype' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo ' # kill processes' >> $BATMAN_SCRIPT
- echo ' zeronet_proc=$(ps aux | grep zeronet | grep -v grep | awk -F " " "{print $2}" | head -n1)' >> $BATMAN_SCRIPT
- echo ' if [ "$zeronet_proc" ]; then' >> $BATMAN_SCRIPT
- echo ' kill -9 $zeronet_proc 2> /dev/null' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' tracker_proc=$(ps aux | grep bttrack | grep -v grep | awk -F " " "{print $2}" | head -n1)' >> $BATMAN_SCRIPT
- echo ' if [ "$tracker_proc" ]; then' >> $BATMAN_SCRIPT
- echo ' kill -9 $tracker_proc 2> /dev/null' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' if [ ! -f /etc/systemd/system/ipfs.service ]; then' >> $BATMAN_SCRIPT
- echo ' ipfs_proc=$(ps aux | grep ipfs | grep -v grep | awk -F " " "{print $2}" | head -n1)' >> $BATMAN_SCRIPT
- echo ' if [ "$ipfs_proc" ]; then' >> $BATMAN_SCRIPT
- echo ' kill -9 $ipfs_proc 2> /dev/null' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo ' fi' >> $BATMAN_SCRIPT
- echo '}' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'if ! grep -q "$IFACE" /proc/net/dev; then' >> $BATMAN_SCRIPT
- echo ' echo "Interface $IFACE was not found"' >> $BATMAN_SCRIPT
- echo ' stop' >> $BATMAN_SCRIPT
- echo ' exit 1' >> $BATMAN_SCRIPT
- echo 'fi' >> $BATMAN_SCRIPT
- echo '' >> $BATMAN_SCRIPT
- echo 'case "$1" in' >> $BATMAN_SCRIPT
- echo ' start|stop)' >> $BATMAN_SCRIPT
- echo ' $1' >> $BATMAN_SCRIPT
- echo ' ;;' >> $BATMAN_SCRIPT
- echo ' restart)' >> $BATMAN_SCRIPT
- echo ' stop' >> $BATMAN_SCRIPT
- echo ' sleep 10' >> $BATMAN_SCRIPT
- echo ' start' >> $BATMAN_SCRIPT
- echo ' ;;' >> $BATMAN_SCRIPT
- echo ' status)' >> $BATMAN_SCRIPT
- echo ' batctl o' >> $BATMAN_SCRIPT
- echo ' ;;' >> $BATMAN_SCRIPT
- echo ' ping)' >> $BATMAN_SCRIPT
- echo ' batctl ping $2' >> $BATMAN_SCRIPT
- echo ' ;;' >> $BATMAN_SCRIPT
- echo ' ls|list)' >> $BATMAN_SCRIPT
- echo ' avahi-browse -atl' >> $BATMAN_SCRIPT
- echo ' ;;' >> $BATMAN_SCRIPT
- echo ' *)' >> $BATMAN_SCRIPT
- echo ' echo "error: invalid parameter $1"' >> $BATMAN_SCRIPT
- echo ' echo "usage: $0 {start|stop|restart|status|ping|ls|list}"' >> $BATMAN_SCRIPT
- echo ' exit 2' >> $BATMAN_SCRIPT
- echo ' ;;' >> $BATMAN_SCRIPT
- echo 'esac' >> $BATMAN_SCRIPT
- echo 'exit 0' >> $BATMAN_SCRIPT
- chmod +x $BATMAN_SCRIPT
- sudo cp -f $BATMAN_SCRIPT /usr/bin/batman
- rm $BATMAN_SCRIPT
-}
-
-
while [[ $# > 1 ]]
do
- key="$1"
+ key="$1"
- case $key in
- -h|--help)
- show_help
- ;;
- -f|--function)
- shift
- FN="$1"
- ;;
- -r|--rootdir)
- shift
- rootdir="$1"
- CHROOT_PREFIX='chroot "${rootdir}"'
- ;;
- -w|--wifi|--interface)
- shift
- WIFI_INTERFACE="$1"
- ;;
- -m|--mirror)
- shift
- FRIENDS_MIRRORS_SERVER="$1"
- ;;
- *)
- # unknown option
- ;;
+ case $key in
+ -h|--help)
+ show_help
+ ;;
+ -f|--function)
+ shift
+ FN="$1"
+ ;;
+ -r|--rootdir)
+ shift
+ rootdir="$1"
+ CHROOT_PREFIX='chroot "${rootdir}"'
+ ;;
+ -w|--wifi|--interface)
+ shift
+ WIFI_INTERFACE="$1"
+ ;;
+ -m|--mirror)
+ shift
+ FRIENDS_MIRRORS_SERVER="$1"
+ ;;
+ --remove)
+ shift
+ REMOVE="$1"
+ ;;
+ *)
+ # unknown option
+ ;;
- esac
- shift
+ esac
+ shift
done
-if [[ $FN == 'babel' ]]; then
- mesh_babel
-fi
-if [[ $FN == 'babel_client' ]]; then
- mesh_babel_client
-fi
if [[ $FN == 'avahi' ]]; then
- mesh_avahi
+ mesh_avahi
fi
if [[ $FN == 'firewall' ]]; then
- mesh_firewall
+ mesh_firewall
fi
if [[ $FN == 'batman' ]]; then
- mesh_batman
-fi
-if [[ $FN == 'batman_client' ]]; then
- mesh_batman_client
-fi
-if [[ $FN == 'tox_node' ]]; then
- mesh_tox_node
-fi
-if [[ $FN == 'tox_client' ]]; then
- mesh_tox_client
-fi
-if [[ $FN == 'zeronet' ]]; then
- mesh_zeronet
+ if [[ $REMOVE != 'yes' ]]; then
+ install_batman
+ else
+ install_batman_remove
+ fi
fi
if [[ $FN == 'qtox' ]]; then
- mesh_tox_client_qtox
+ mesh_tox_client_qtox
fi
if [[ $FN == 'toxic' ]]; then
- mesh_tox_client_toxic_from_repo
+ mesh_tox_client_toxic_from_repo
fi
exit 0
diff --git a/src/freedombone-mesh-reset b/src/freedombone-mesh-reset
new file mode 100755
index 00000000..4352d1f3
--- /dev/null
+++ b/src/freedombone-mesh-reset
@@ -0,0 +1,59 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Resets the identity of a mesh user
+#
+# License
+# =======
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-mesh-reset
+export TEXTDOMAINDIR="/usr/share/locale"
+
+MESH_INSTALL_COMPLETED=/root/.mesh_setup_completed
+
+dialog --title $"New Identity" \
+ --backtitle $"Freedombone Mesh" \
+ --defaultno \
+ --yesno $"\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it." 8 60
+sel=$?
+case $sel in
+ 0) sudo batman stop
+ sudo pkill qtox
+ sudo pkill firefox
+ sudo pkill iceweasel
+ sudo pkill midori
+ sudo rm -f $MESH_INSTALL_COMPLETED
+ sudo ${PROJECT_NAME}-image-mesh $USER new
+ sudo batman start
+ if [ -f $HOME/mesh-desktop.sh ]; then
+ $HOME/mesh-desktop.sh
+ else
+ dialog --title $"New Identity" \
+ --msgbox $"You now have a new identity" 6 40
+ fi
+ ;;
+esac
+
+exit 0
diff --git a/src/freedombone-mesh-visit-site b/src/freedombone-mesh-visit-site
new file mode 100755
index 00000000..58de73e5
--- /dev/null
+++ b/src/freedombone-mesh-visit-site
@@ -0,0 +1,90 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Visit ipfs sites by entering a username
+#
+# License
+# =======
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-mesh-visit-site
+export TEXTDOMAINDIR="/usr/share/locale"
+
+IPFS_URL='http://127.0.0.1:8080/ipns'
+
+# The browser application to use
+BROWSER=midori
+BROWSER_OPTIONS='-p'
+
+# An optional suffix to be appended to the URL
+SUFFIX=$1
+
+IPFS_USERS_FILE=/tmp/.ipfs-users
+if [ ! -f $IPFS_USERS_FILE ]; then
+ exit 0
+fi
+USERS_FILE=/tmp/Users.txt
+if [ ! -f $USERS_FILE ]; then
+ exit 0
+fi
+
+data=$(tempfile 2>/dev/null)
+trap "rm -f $data" 0 1 2 5 15
+dialog --title $"Visit IPFS site" \
+ --backtitle $"Freedombone mesh" \
+ --inputbox $"Enter the username or Tox ID for the site you wish to visit" 8 70 2>$data
+sel=$?
+case $sel in
+ 0)
+ TOX_USERNAME_OR_ID=$(<$data)
+ if [ ${#TOX_USERNAME_OR_ID} -gt 0 ]; then
+ if ! grep -q "$TOX_USERNAME_OR_ID" $USERS_FILE; then
+ TOX_ID="$TOX_USERNAME_OR_ID"
+ else
+ TOX_ID=$(cat "$USERS_FILE" | grep "$TOX_USERNAME_OR_ID" | head -n 1 | sed "s|$TOX_USERNAME_OR_ID ||g" | sed -e 's/^[[:space:]]*//')
+ fi
+
+ if [ ${#TOX_ID} -gt 5 ]; then
+ if ! grep -q "$TOX_ID" $IPFS_USERS_FILE; then
+ dialog --title $"Visit IPFS site" \
+ --backtitle $"Freedombone mesh" \
+ --msgbox $"An IPFS site was not found for the user '$TOX_USERNAME_OR_ID'" 8 60
+ exit 3
+ fi
+ IPFS_FULL_URL=${IPFS_URL}/$(cat "$IPFS_USERS_FILE" | grep $TOX_ID | head -n 1 | awk -F ':' '{print $2}')
+ clear
+ echo $'Opening browser. Please wait...'
+ pkill $BROWSER
+ setsid sh -c "$BROWSER $BROWSER_OPTIONS $IPFS_FULL_URL$SUFFIX" > /dev/null 2>&1 < /dev/null &
+
+ # Need to wait a while for the browser to begin opening
+ sleep 3
+ fi
+ else
+ exit 1
+ fi
+ ;;
+esac
+
+exit 0
diff --git a/src/freedombone-meshweb b/src/freedombone-meshweb
deleted file mode 100755
index 6be093d1..00000000
--- a/src/freedombone-meshweb
+++ /dev/null
@@ -1,578 +0,0 @@
-#!/bin/bash
-#
-# .---. . .
-# | | |
-# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
-# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
-# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
-#
-# Freedom in the Cloud
-#
-# Web interface for the mesh
-#
-# License
-# =======
-#
-# Copyright (C) 2015-2016 Bob Mottram
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-
-PROJECT_NAME='freedombone'
-
-export TEXTDOMAIN=${PROJECT_NAME}-meshweb
-export TEXTDOMAINDIR="/usr/share/locale"
-
-# client or server installations sounds odd for a mesh, but this
-# indicates whether this is a dedicated mesh peer ("yes") or
-# a 'client' such as a laptop or desktop machine with
-# the freedombone-client script installed
-SERVER_INSTALLATION="no"
-
-PEERS_FILE=/tmp/meshwebstart
-
-ZERONET_REPO='https://github.com/HelloZeroNet/ZeroNet.git'
-ZERONET_COMMIT='675bd462556c541d65e2d95f91f899146a373aad'
-ZERONET_BLOG_REPO='https://github.com/HelloZeroNet/ZeroBlog'
-ZERONET_BLOG_COMMIT='bbb0d6c36465fed2e6df71f1aab45fcc9c6ad609'
-ZERONET_MAIL_REPO='https://github.com/HelloZeroNet/ZeroMail'
-ZERONET_MAIL_COMMIT='955af09d643c72b02e4983d71eca5c0c93a6c131'
-ZERONET_FORUM_REPO='https://github.com/HelloZeroNet/ZeroTalk'
-ZERONET_FORUM_COMMIT='e2d2c9cb1cfbfef91b244935efb5c14c2ad95faa'
-ZERONET_URL=http://127.0.0.1:43110
-ZERONET_PORT=15441
-TRACKER_PORT=6969
-MY_USERNAME=$USER
-ZERONET_DIR=/home/$MY_USERNAME/zeronet
-UPDATED="no"
-ZERONET_DEFAULT_BLOG_TAGLINE=$"Blogging on the Mesh"
-ZERONET_DEFAULT_FORUM_TAGLINE=$"A decentralized discussion group"
-ZERONET_DEFAULT_MAIL_TAGLINE=$"Mail for the Mesh"
-
-IPFS_PORT=4001
-
-MESH_INSTALL_DIR=/var/lib
-
-function install_ipfs {
- if [ ! -f /home/$MY_USERNAME/go/bin/ipfs ]; then
- if [ ! -d /usr/local/go ]; then
- sudo apt-get -y install golang
- fi
- sudo apt-get -y install libpam0g-dev fuse
- if ! grep -q "GOROOT" /home/$MY_USERNAME/.bashrc; then
- if [ -d /usr/local/go ]; then
- echo "export GOROOT=/usr/local/go" >> /home/$MY_USERNAME/.bashrc
- fi
- fi
- if ! grep -q "GOPATH/bin" /home/$MY_USERNAME/.bashrc; then
- echo "export GOPATH=/home/$MY_USERNAME/go" >> /home/$MY_USERNAME/.bashrc
- echo 'export PATH="$GOPATH/bin:$PATH:";' >> /home/$MY_USERNAME/.bashrc
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.bashrc
- fi
- if [ ! -d /home/$MY_USERNAME/go ]; then
- mkdir /home/$MY_USERNAME/go
- fi
- . /home/$MY_USERNAME/.bashrc
- go get -u github.com/ipfs/go-ipfs/cmd/ipfs
- if [ ! "$?" = "0" ]; then
- exit 8242
- fi
- fi
-
- if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
- ipfs init -b 4096
- if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
- echo $"IPFS could not be initialised"
- exit 7358
- fi
-
- # directories to mount to
- if [ ! -d /ipfs ]; then
- sudo mkdir /ipfs
- sudo mkdir /ipns
- sudo chown $MY_USERNAME:$MY_USERNAME /ipfs
- sudo chown $MY_USERNAME:$MY_USERNAME /ipns
- fi
-
- if [ -f /etc/fuse.conf ]; then
- sudo chown $MY_USERNAME:$MY_USERNAME /etc/fuse.conf
- fi
- if [ -f /dev/fuse ]; then
- sudo chown $MY_USERNAME:$MY_USERNAME /dev/fuse
- fi
- fi
-
- IPFS_PEER_ID=$(ipfs id | grep '\"ID\":' | awk -F '\"' '{print $4}')
- if [ ${#IPFS_PEER_ID} -lt 10 ]; then
- echo $'Invalid IPFS peer ID'
- echo "$IPFS_PEER_ID"
- exit 74782
- fi
-
- # Add an avahi service
- echo '' > /tmp/ipfs.service
- echo '' >> /tmp/ipfs.service
- echo '' >> /tmp/ipfs.service
- echo ' %h IPFS ' >> /tmp/ipfs.service
- echo ' ' >> /tmp/ipfs.service
- echo ' _ipfs._tcp ' >> /tmp/ipfs.service
- echo " $IPFS_PORT " >> /tmp/ipfs.service
- echo " $IPFS_PEER_ID " >> /tmp/ipfs.service
- echo ' ' >> /tmp/ipfs.service
- echo ' ' >> /tmp/ipfs.service
- sudo cp /tmp/ipfs.service /etc/avahi/services/ipfs.service
-}
-
-function install_zeronet_blog {
- if [ ! -f /home/$MY_USERNAME/README ]; then
- touch /home/$MY_USERNAME/README
- fi
-
- if grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
- return
- fi
-
- if [ ! -d /etc/avahi ]; then
- echo $'Avahi is not installed'
- exit 736
- fi
-
- ZERONET_DEFAULT_BLOG_TITLE=$"${MY_USERNAME}'s Blog"
-
- cd $ZERONET_DIR
- python zeronet.py --batch siteCreate 2> $ZERONET_DIR/blog.txt
- if [ ! -f $ZERONET_DIR/blog.txt ]; then
- echo $'Unable to create blog'
- exit 479
- fi
- blog_address=$(cat blog.txt | grep "Site address" | awk -F ':' '{print $2}')
- blog_private_key=$(cat blog.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
- ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_BLOG_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_BLOG_ADDRESS"
- echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY"
- echo $'Unable to create zeronet blog address'
- exit 7358
- fi
-
- if [ ${#ZERONET_BLOG_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_BLOG_ADDRESS"
- echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY"
- echo $'Unable to create zeronet blog private key'
- exit 1639
- fi
-
- if [ ! -d "$ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS" ]; then
- echo $"Unable to find site directory: $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS"
- exit 7638
- fi
-
- git clone $ZERONET_BLOG_REPO ZeroBlog
- if [ ! -d $ZERONET_DIR/ZeroBlog ]; then
- echo $'ZeroBlog repo could not be cloned'
- exit 6739
- fi
- cd $MESH_INSTALL_DIR/zeronet/ZeroBlog
- git checkout $ZERONET_BLOG_COMMIT -b $ZERONET_BLOG_COMMIT
-
- echo $"Blog address: $ZERONET_BLOG_ADDRESS"
- echo $"Blog private key: $ZERONET_BLOG_PRIVATE_KEY"
- cp -r $ZERONET_DIR/ZeroBlog/* $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS
- if [ ! -d $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/data ]; then
- mkdir $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/data
- fi
- cp $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/data-default/data.json $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/data
- sed -i "s/MyZeroBlog/$ZERONET_DEFAULT_BLOG_TITLE/g" $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/data/data.json
- sed -i "s/My ZeroBlog./$ZERONET_DEFAULT_BLOG_TAGLINE/g" $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/data/data.json
- sed -i "s/ZeroBlog Demo/$ZERONET_DEFAULT_BLOG_TITLE/g" $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/index.html
- sed -i "s|.*|$ZERONET_DEFAULT_BLOG_TAGLINE |g" $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/index.html
- sed -i "s/Blogging platform Demo/Blogging platform/g" $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
-
- # Add an avahi service
- echo '' > /tmp/zeronet-blog.service
- echo '' >> /tmp/zeronet-blog.service
- echo '' >> /tmp/zeronet-blog.service
- echo ' %h ZeroNet Blog ' >> /tmp/zeronet-blog.service
- echo ' ' >> /tmp/zeronet-blog.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-blog.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-blog.service
- echo " $ZERONET_URL/$ZERONET_BLOG_ADDRESS " >> /tmp/zeronet-blog.service
- echo ' ' >> /tmp/zeronet-blog.service
- echo ' ' >> /tmp/zeronet-blog.service
- sudo cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_BLOG_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myblog
-
- if ! grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
- echo '' >> /home/$MY_USERNAME/README
- echo $"ZeroNet Blog address: $ZERONET_BLOG_ADDRESS" >> /home/$MY_USERNAME/README
- echo $"ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY" >> /home/$MY_USERNAME/README
- fi
-
- echo $'Zeronet blog installed'
-}
-
-function install_zeronet_mail {
- if [ ! -f /home/$MY_USERNAME/README ]; then
- touch /home/$MY_USERNAME/README
- fi
-
- if grep -q "ZeroNet Mail address" /home/$MY_USERNAME/README; then
- return
- fi
-
- if [ ! -d /etc/avahi ]; then
- echo $'Avahi is not installed'
- exit 736
- fi
-
- ZERONET_DEFAULT_MAIL_TITLE=$"${MY_USERNAME}'s Mail"
-
- cd $MESH_INSTALL_DIR/zeronet
- python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/mail.txt
- if [ ! -f $MESH_INSTALL_DIR/zeronet/mail.txt ]; then
- echo 'Unable to create mail'
- exit 479
- fi
- mail_address=$(cat mail.txt | grep "Site address" | awk -F ':' '{print $2}')
- mail_private_key=$(cat mail.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
- ZERONET_MAIL_PRIVATE_KEY=${mail_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_MAIL_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_MAIL_ADDRESS"
- echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY"
- echo $'Unable to create zeronet mail address'
- exit 7358
- fi
-
- if [ ${#ZERONET_MAIL_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_MAIL_ADDRESS"
- echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY"
- echo $'Unable to create zeronet mail private key'
- exit 1639
- fi
-
- if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" ]; then
- echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS"
- exit 7638
- fi
-
- git clone $ZERONET_MAIL_REPO ZeroMail
- if [ ! -d $MESH_INSTALL_DIR/zeronet/ZeroMail ]; then
- echo $'ZeroMail repo could not be cloned'
- exit 6739
- fi
- cd $MESH_INSTALL_DIR/zeronet/ZeroMail
- git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
-
- echo $"ZeroNet Mail address: $ZERONET_MAIL_ADDRESS"
- echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY"
- cp -r $MESH_INSTALL_DIR/zeronet/ZeroMail/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS
-
- if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data ]; then
- mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
- fi
- cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
- sed -i "s/MyZeroMail/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
- sed -i "s/My ZeroMail./$ZERONET_DEFAULT_MAIL_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
- sed -i "s/ZeroMail Demo/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
- sed -i "s|.*|$ZERONET_DEFAULT_MAIL_TAGLINE |g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
- sed -i "s/Mailging platform Demo/Mailging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_MAIL_ADDRESS $ZERONET_MAIL_PRIVATE_KEY
-
- # Add an avahi service
- echo '' > /tmp/zeronet-mail.service
- echo '' >> /tmp/zeronet-mail.service
- echo '' >> /tmp/zeronet-mail.service
- echo ' %h ZeroNet Mail ' >> /tmp/zeronet-mail.service
- echo ' ' >> /tmp/zeronet-mail.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-mail.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-mail.service
- echo " $ZERONET_URL/$ZERONET_MAIL_ADDRESS " >> /tmp/zeronet-mail.service
- echo ' ' >> /tmp/zeronet-mail.service
- echo ' ' >> /tmp/zeronet-mail.service
- cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_MAIL_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/mymail
-
- if ! grep -q "ZeroNet Mail address" /home/$MY_USERNAME/README; then
- echo '' >> /home/$MY_USERNAME/README
- echo "ZeroNet Mail address: $ZERONET_MAIL_ADDRESS" >> /home/$MY_USERNAME/README
- echo "ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY" >> /home/$MY_USERNAME/README
- fi
-
- echo $'Zeronet mail installed'
-}
-
-function install_zeronet_forum {
- if [ ! -f /home/$MY_USERNAME/README ]; then
- touch /home/$MY_USERNAME/README
- fi
-
- if grep -q "ZeroNet Forum address" /home/$MY_USERNAME/README; then
- return
- fi
-
- if [ ! -d /etc/avahi ]; then
- echo $'Avahi is not installed'
- exit 736
- fi
-
- ZERONET_DEFAULT_FORUM_TITLE="${MY_USERNAME}'s Forum"
-
- cd $ZERONET_DIR
- python zeronet.py --batch siteCreate 2> $ZERONET_DIR/forum.txt
- if [ ! -f $ZERONET_DIR/forum.txt ]; then
- echo $'Unable to create forum'
- exit 479
- fi
- forum_address=$(cat forum.txt | grep "Site address" | awk -F ':' '{print $2}')
- forum_private_key=$(cat forum.txt | grep "Site private key" | awk -F ':' '{print $2}')
- ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
- ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
-
- if [ ${#ZERONET_FORUM_ADDRESS} -lt 20 ]; then
- echo $"Address: $ZERONET_FORUM_ADDRESS"
- echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY"
- echo $'Unable to create zeronet forum address'
- exit 76352
- fi
-
- if [ ${#ZERONET_FORUM_PRIVATE_KEY} -lt 20 ]; then
- echo $"Address: $ZERONET_FORUM_ADDRESS"
- echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY"
- echo $'Unable to create zeronet forum private key'
- exit 87356
- fi
-
- if [ ! -d "$ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS" ]; then
- echo $"Unable to find site directory: $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS"
- exit 7638
- fi
-
- git clone $ZERONET_FORUM_REPO ZeroTalk
- if [ ! -d $ZERONET_DIR/ZeroTalk ]; then
- echo $'ZeroTalk repo could not be cloned'
- exit 6739
- fi
- cd $MESH_INSTALL_DIR/zeronet/ZeroTalk
- git checkout $ZERONET_FORUM_COMMIT -b $ZERONET_FORUM_COMMIT
-
- echo $"Forum address: $ZERONET_FORUM_ADDRESS"
- echo $"Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
- cp -r $ZERONET_DIR/ZeroTalk/* $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS
- sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS/index.html
- sed -i "s/ZeroTalk/$ZERONET_DEFAULT_FORUM_TITLE/g" $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS/index.html
- sed -i "s|Demo for dynamic, decentralized content publishing.|$ZERONET_DEFAULT_FORUM_TAGLINE|g" $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS/index.html
- sed -i 's/Messaging Board Demo/Messaging Board/g' $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS/content.json
- sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS/content.json
- python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY
- python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY --inner_path data/users/content.json
-
- # Add an avahi service
- echo '' > /tmp/zeronet-forum.service
- echo '' >> /tmp/zeronet-forum.service
- echo '' >> /tmp/zeronet-forum.service
- echo ' %h ZeroNet Forum ' >> /tmp/zeronet-forum.service
- echo ' ' >> /tmp/zeronet-forum.service
- echo ' _zeronet._udp ' >> /tmp/zeronet-forum.service
- echo " $ZERONET_PORT " >> /tmp/zeronet-forum.service
- echo " $ZERONET_URL/$ZERONET_FORUM_ADDRESS " >> /tmp/zeronet-forum.service
- echo ' ' >> /tmp/zeronet-forum.service
- echo ' ' >> /tmp/zeronet-forum.service
- sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
-
- if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
- mkdir -p /home/$MY_USERNAME/.config/zeronet
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
- fi
- echo "$ZERONET_URL/$ZERONET_FORUM_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myforum
-
- if ! grep -q "ZeroNet Forum address" /home/$MY_USERNAME/README; then
- echo '' >> /home/$MY_USERNAME/README
- echo $"ZeroNet Forum address: $ZERONET_FORUM_ADDRESS" >> /home/$MY_USERNAME/README
- echo $"ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY" >> /home/$MY_USERNAME/README
- fi
-
- echo $'Zeronet forum installed'
-}
-
-function install_web_server {
- if [ -d /etc/nginx ]; then
- return
- fi
-
- if [[ $UPDATED == "no" ]]; then
- sudo apt-get update
- UPDATED="yes"
- fi
-
- sudo apt-get -y remove --purge apache2
- if [ -d /etc/apache2 ]; then
- sudo rm -rf /etc/apache2
- fi
- # install nginx
- sudo apt-get -y install nginx
-
- if [ ! -d /etc/nginx ]; then
- echo $'Unable to install web server'
- exit 51
- fi
-}
-
-function install_zeronet {
- if [ -d $ZERONET_DIR ]; then
- return
- fi
-
- if [[ $UPDATED == "no" ]]; then
- sudo apt-get update
- UPDATED="yes"
- fi
-
- sudo apt-get -y install python python-msgpack python-gevent
- sudo apt-get -y install python-pip bittornado
- sudo pip install msgpack-python --upgrade
-
- git clone $ZERONET_REPO $ZERONET_DIR
- if [ ! -d $ZERONET_DIR ]; then
- exit 56823
- fi
- cd $ZERONET_DIR
- git checkout $ZERONET_COMMIT -b $ZERONET_COMMIT
- #cd $ZERONET_DIR
- #git checkout bashrc/bootstrap-file
- # Hack to ensure that the file access port is opened
- # This is because zeronet normally relies on an internet site
- # to do this, but on a purely local mesh the internet isn't available
- sed -i 's|fileserver_port = 0|fileserver_port = config.fileserver_port\n sys.modules["main"].file_server.port_opened = True|g' $ZERONET_DIR/src/Site/Site.py
-}
-
-if [[ "$1" == "stop" ]]; then
- sudo batman stop
- exit 0
-fi
-
-if [ -f /var/lib/batman ]; then
- SERVER_INSTALLATION="yes"
-fi
-
-if [[ $SERVER_INSTALLATION == "no" ]]; then
- if [ ! -f /usr/bin/batman ]; then
- ${PROJECT_NAME}-client
- fi
-fi
-
-if [ -d $MESH_INSTALL_DIR/zeronet ]; then
- ZERONET_DIR=$MESH_INSTALL_DIR/zeronet
-fi
-
-if [[ $SERVER_INSTALLATION == "no" ]]; then
- if [ ! -f /tmp/meshtype ]; then
- install_web_server
- install_zeronet
- install_zeronet_blog
- install_zeronet_mail
- install_zeronet_forum
- #install_ipfs
- sudo batman start
- if [ ! "$?" = "0" ]; then
- exit 2
- fi
- fi
-fi
-
-avahi-browse -atl | awk -F ' ' '{print $4}' | sort -u > $PEERS_FILE
-
-if [ ! -f $PEERS_FILE ]; then
- echo $'No peers were found'
- exit 0
-fi
-
-ctr=0
-while IFS='' read -r line || [[ -n "$line" ]]; do
- ctr=$((ctr + 1))
-done < "$PEERS_FILE"
-
-rm $PEERS_FILE
-
-if [ ${ctr} -lt "1" ]; then
- echo $'No peers were found'
- exit 0
-fi
-
-if [ ! -d $ZERONET_DIR ]; then
- echo $'zeronet was not installed'
- exit 63
-fi
-cd $ZERONET_DIR
-
-
-existing_bttrack=$(ps aux | grep bttrack | wc -l)
-if [ $existing_bttrack -lt "2" ]; then
- if [ ! -d ~/.bttrack ]; then
- mkdir ~/.bttrack
- fi
- bttrack --port ${TRACKER_PORT} --dfile ~/.bttrack/dstate --logfile ~/.bttrack/tracker.log --nat_check 0 --scrape_allowed full --ipv6_enabled 0 &
-fi
-
-existing_ipfs=$(ps aux | grep ipfs | wc -l)
-if [ $existing_ipfs -lt "2" ]; then
- sudo umount /ipfs
- sudo umount /ipns
- ipfs daemon --mount &
-fi
-
-ZERONET_INDEX=/home/$MY_USERNAME/mesh.html
-
-cp /etc/crontab /tmp/crontab
-if ! grep -q "zeronetavahi" /tmp/crontab; then
- echo "* * * * * $MY_USERNAME cd /home/$MY_USERNAME; zeronetavahi > /dev/null" >> /tmp/crontab
-fi
-sudo cp /tmp/crontab /etc/crontab
-
-sleep 8
-zeronetavahi
-
-existing_zeronet=$(ps aux | grep zeronet | wc -l)
-if [ $existing_zeronet -lt "2" ]; then
- python zeronet.py --ip_external $(hostname).local --trackers_file $ZERONET_DIR/bootstrap &
-fi
-
-if which firefox > /dev/null; then
- firefox $ZERONET_INDEX
-elif which iceweasel > /dev/null; then
- iceweasel $ZERONET_INDEX
-elif which chrome > /dev/null; then
- chrome $ZERONET_INDEX
-elif which chromium > /dev/null; then
- chromium $ZERONET_INDEX
-elif which xdg-open > /dev/null; then
- xdg-open $ZERONET_INDEX
-elif which gnome-open > /dev/null; then
- gnome-open $ZERONET_INDEX
-fi
-
-exit 0
diff --git a/src/freedombone-mirrors b/src/freedombone-mirrors
index 3f7b304a..cdb9a332 100755
--- a/src/freedombone-mirrors
+++ b/src/freedombone-mirrors
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -34,20 +34,17 @@ export TEXTDOMAIN=${PROJECT_NAME}-mirrors
export TEXTDOMAINDIR="/usr/share/locale"
# Minimum number of characters in a password
-MINIMUM_PASSWORD_LENGTH=10
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-else
- if [ -f /usr/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
- fi
-fi
+MINIMUM_PASSWORD_LENGTH=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
+CONFIGURATION_FILE="$HOME/${PROJECT_NAME}.cfg"
+
+# used to mirror a single application
+SYNC_SINGLE_APP=
# if this is blank then just use the default repos
FRIENDS_MIRRORS_SERVER=
-REPOS=
+UTILS_REPOS=
+INSTALLED_APPS_REPOS=
MY_MIRRORS_PASSWORD=
FRIENDS_MIRRORS_PASSWORD=
NEW_MIRRORS='no'
@@ -58,23 +55,20 @@ if [ ! -f $MAIN_COMMAND ]; then
MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
fi
-REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
+# local repos for utils
+UTILS_REPOS=($(cat ${MAIN_COMMAND} /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-* /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-* | grep "_REPO=\"" | grep -v "(cat " | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
+
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
# obtain the mirrors password if it exists
-if [ -f $CONFIGURATION_FILE ]; then
- if ! grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if ! grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if ! grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if ! grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
-fi
+read_config_param MY_MIRRORS_PASSWORD
+read_config_param FRIENDS_MIRRORS_SERVER
+read_config_param FRIENDS_MIRRORS_PASSWORD
+read_config_param FRIENDS_MIRRORS_SSH_PORT
function show_help {
echo ''
@@ -97,16 +91,12 @@ function create_mirrors_user {
return
fi
- create_password='no'
- if [ ! "$MY_MIRRORS_PASSWORD" ]; then
- create_password='yes'
- fi
- if [ ${#MY_MIRRORS_PASSWORD} -lt ${MINIMUM_PASSWORD_LENGTH} ]; then
- echo $'Password is too short. Creating new one.'
- create_password='yes'
+ create_password=1
+ if [ ${#MY_MIRRORS_PASSWORD} -ge ${MINIMUM_PASSWORD_LENGTH} ]; then
+ create_password=
fi
- if [[ $create_password == 'yes' ]]; then
+ if [ $create_password ]; then
MY_MIRRORS_PASSWORD="$(openssl rand -base64 20 | cut -c1-18)"
fi
@@ -116,13 +106,7 @@ function create_mirrors_user {
rm -rf /home/mirrors/*
# store the mirrors password
- if [ -f $CONFIGURATION_FILE ]; then
- if ! grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- echo "MY_MIRRORS_PASSWORD=$MY_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
- else
- sed -i "s|MY_MIRRORS_PASSWORD=.*|MY_MIRRORS_PASSWORD=${MY_MIRRORS_PASSWORD}|g" $CONFIGURATION_FILE
- fi
- fi
+ write_config_param "MY_MIRRORS_PASSWORD" "${MY_MIRRORS_PASSWORD}"
}
function enable_mirrors_via_onion {
@@ -137,6 +121,60 @@ function enable_mirrors_via_onion {
fi
}
+function update_installed_single_repo {
+ # only deal with a single app
+ filename=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${SYNC_SINGLE_APP}
+ if [ ! -f $filename ]; then
+ echo $"The app $SYNC_SINGLE_APP was not found"
+ exit 36822
+ fi
+ APP_REPOS=($(cat ${MAIN_COMMAND} $filename | grep "_REPO=\"" | grep -v "(cat " | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
+ for line in "${APP_REPOS[@]}"
+ do
+ INSTALLED_APPS_REPOS+=("${line}")
+ done
+}
+
+function update_installed_apps_repos {
+ INSTALLED_APPS_REPOS=()
+
+ function_check app_is_installed
+
+ if [ $SYNC_SINGLE_APP ]; then
+ update_installed_single_repo
+ return
+ fi
+
+ # all apps currently installed
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+ if [[ "$(app_is_installed ${app_name})" == "1" ]]; then
+ APP_REPOS=($(cat ${MAIN_COMMAND} $filename | grep "_REPO=\"" | grep -v "(cat " | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
+ for line in "${APP_REPOS[@]}"
+ do
+ INSTALLED_APPS_REPOS+=("${line}")
+ done
+ fi
+ done
+}
+
+function update_repos_from_friend_base {
+ syncrepos=${1}
+ new_repos=()
+ for line in $syncrepos
+ do
+ repo_name=$(echo "$line" | awk -F '=' '{print $1}')
+ mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
+ friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
+ new_line="${repo_name}=\"${friends_repo_url}\""
+ new_repos+=($new_line)
+ done
+}
+
function update_repos_from_friend {
if [ ! $FRIENDS_MIRRORS_SERVER ]; then
return
@@ -145,21 +183,16 @@ function update_repos_from_friend {
return
fi
- new_repos=()
- for line in "${REPOS[@]}"
- do
- repo_name=$(echo "$line" | awk -F '=' '{print $1}')
- mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
- #repo_url=$(echo "$line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
- friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
- new_line="${repo_name}=\"${friends_repo_url}\""
- new_repos+=($new_line)
- done
- REPOS=("${new_repos[@]}")
+ update_repos_from_friend_base "${UTILS_REPOS[@]}"
+ UTILS_REPOS=("${new_repos[@]}")
+
+ update_repos_from_friend_base "${INSTALLED_APPS_REPOS[@]}"
+ INSTALLED_APPS_REPOS=("${new_repos[@]}")
}
-function sync_mirrors_repos {
- for line in "${REPOS[@]}"
+function sync_mirrors_base {
+ syncrepos=${1}
+ for line in $syncrepos
do
repo_name=$(echo "$line" | awk -F '=' '{print $1}')
repo_url=$(echo "$line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
@@ -193,6 +226,13 @@ function sync_mirrors_repos {
chown -R mirrors:mirrors /home/mirrors
}
+function sync_mirrors_repos {
+ if [ ! $SYNC_SINGLE_APP ]; then
+ sync_mirrors_base "${UTILS_REPOS[@]}"
+ fi
+ sync_mirrors_base "${INSTALLED_APPS_REPOS[@]}"
+}
+
while [[ $# > 1 ]]
do
key="$1"
@@ -209,24 +249,12 @@ case $key in
-m|--mypass|--mypassword)
shift
MY_MIRRORS_PASSWORD="$1"
- if [ -f $CONFIGURATION_FILE ]; then
- if ! grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- echo "MY_MIRRORS_PASSWORD=$MY_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
- else
- sed -i "s|MY_MIRRORS_PASSWORD=.*|MY_MIRRORS_PASSWORD=${MY_MIRRORS_PASSWORD}|g" $CONFIGURATION_FILE
- fi
- fi
+ write_config_param "MY_MIRRORS_PASSWORD" "${MY_MIRRORS_PASSWORD}"
;;
-p|--pass|--password)
shift
FRIENDS_MIRRORS_PASSWORD="$1"
- if [ -f $CONFIGURATION_FILE ]; then
- if ! grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
- else
- sed -i "s|FRIENDS_MIRRORS_PASSWORD=.*|FRIENDS_MIRRORS_PASSWORD=${FRIENDS_MIRRORS_PASSWORD}|g" $CONFIGURATION_FILE
- fi
- fi
+ write_config_param "FRIENDS_MIRRORS_PASSWORD" "${FRIENDS_MIRRORS_PASSWORD}"
;;
-n|--new)
shift
@@ -236,6 +264,10 @@ case $key in
shift
FRIENDS_MIRRORS_SSH_PORT=${1}
;;
+ -a|--app)
+ shift
+ SYNC_SINGLE_APP="${1}"
+ ;;
*)
# unknown option
;;
@@ -245,6 +277,7 @@ done
create_mirrors_user
enable_mirrors_via_onion
+update_installed_apps_repos
update_repos_from_friend
sync_mirrors_repos
diff --git a/src/freedombone-pass b/src/freedombone-pass
new file mode 100755
index 00000000..b48373f7
--- /dev/null
+++ b/src/freedombone-pass
@@ -0,0 +1,264 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# It's useful to be able to store user passwords, but not a good
+# idea to do that in plain text. This implements a simple password
+# store. It gpg symmetric encrypts passwords using the backups
+# private key as the passphrase.
+#
+# In order for an adversary to obtain the passwords they must have
+# the backups GPG key, which is not obtainable from local or remote
+# backups and can only happen if they get root access to the system
+# (in which case it's game over anyhow) or if they can decrypt
+# a master keydrive or obtain sufficient keydrive fragments.
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-pass
+export TEXTDOMAINDIR="/usr/share/locale"
+
+MY_BACKUP_KEY_ID=
+CURR_USERNAME=
+REMOVE_USERNAME=
+CURR_APP=
+REMOVE_APP=
+CURR_PASSWORD=""
+TESTS=
+
+# If this file is present then don't store passwords
+NO_PASSWORD_STORE_FILE=~/.nostore
+
+function get_backup_key_id {
+ MY_BACKUP_KEY_ID=$(gpg --list-keys "(backup key)" | \
+ grep 'pub ' | awk -F ' ' '{print $2}' | \
+ awk -F '/' '{print $2}')
+ if [ ${#MY_BACKUP_KEY_ID} -lt 4 ]; then
+ echo $"Error: gpg backup key was not found"
+ return 58213
+ fi
+}
+
+function pass_show_help {
+ echo ''
+ echo $"${PROJECT_NAME}-pass"
+ echo ''
+ echo $'Password store using gpg'
+ echo ''
+ echo $' -h --help Show help'
+ echo $' -u --user [name] Username'
+ echo $' -a --app [name] Name of the application'
+ echo $' -p --pass [password] The password to store'
+ echo ''
+ echo $'To encrypt a password:'
+ echo ''
+ echo $" ${PROJECT_NAME}-pass -u [username] -a [app] -p [password]"
+ echo ''
+ echo $'To retrieve a password:'
+ echo $''
+ echo $" ${PROJECT_NAME}-pass -u [username] -a [app]"
+ echo ''
+ echo $'To remove passwords for a user:'
+ echo $''
+ echo $" ${PROJECT_NAME}-pass -r [username]"
+ echo ''
+ echo $'To remove an application password for a user:'
+ echo $''
+ echo $" ${PROJECT_NAME}-pass --u [username] --rmapp [name]"
+ echo ''
+ exit 0
+}
+
+function pad_string {
+ pass_string="$1"
+ str_length=${#pass_string}
+ total_padding=$((128 - str_length))
+ leading_padding=$((1 + RANDOM % $total_padding))
+ trailing_padding=$((total_padding - leading_padding))
+ leading=$(printf "%-${leading_padding}s")
+ trailing=$(printf "%-${trailing_padding}s")
+ echo "${leading}${pass_string}${trailing}"
+}
+
+function remove_padding {
+ padded_string="$1"
+ echo -e "${padded_string}" | tr -d '[:space:]'
+}
+
+function run_tests {
+ pass="SuperSecretPassword"
+ padded=$(pad_string "$pass")
+ if [ ${#padded} -ne 128 ]; then
+ echo $'Incorrect padded length'
+ exit 78352
+ fi
+ ${PROJECT_NAME}-pass -u root -a tests -p "$pass"
+ returned_pass=$(${PROJECT_NAME}-pass -u root -a tests)
+ if [[ "$pass" != "$returned_pass" ]]; then
+ echo "pass :${pass}:"
+ echo "padded :${padded}:"
+ echo "returned :${returned_pass}:"
+ exit 73825
+ fi
+ ${PROJECT_NAME}-pass -u root --rmapp tests
+ echo "Tests passed"
+}
+
+function clear_passwords {
+ # remove all passwords except for the root one, which is needed
+ # for automatic database backups
+ for d in /root/.passwords/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $4}')
+ if [[ "$USERNAME" != 'root' ]]; then
+ shred -zu /root/.passwords/$USERNAME/*
+ rm -rf /root/.passwords/$USERNAME
+ fi
+ done
+ if [ ! -f $NO_PASSWORD_STORE_FILE ]; then
+ touch $NO_PASSWORD_STORE_FILE
+ fi
+ echo $'Passwords cleared. Future passwords will not be stored.'
+ exit 0
+}
+
+while [[ $# > 1 ]]
+do
+ key="$1"
+
+ case $key in
+ -h|--help)
+ pass_show_help
+ ;;
+ -t|--test)
+ shift
+ TESTS=1
+ ;;
+ -c|--clear|--erase)
+ clear_passwords
+ ;;
+ -e|--enable)
+ shift
+ if [ -f $NO_PASSWORD_STORE_FILE ]; then
+ rm $NO_PASSWORD_STORE_FILE
+ echo $'Password storage has been enabled'
+ fi
+ ;;
+ -u|--user|--username)
+ shift
+ CURR_USERNAME="${1}"
+ ;;
+ -r|--rm|--remove)
+ shift
+ REMOVE_USERNAME="${1}"
+ ;;
+ --rmapp|--removeapp)
+ shift
+ REMOVE_APP="${1}"
+ ;;
+ -a|--app|--application)
+ shift
+ CURR_APP="${1}"
+ ;;
+ -p|--pass|--password|--passphrase)
+ shift
+ CURR_PASSWORD="${1}"
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
+ shift
+done
+
+if [ ${REMOVE_USERNAME} ]; then
+ if [ -d ~/.passwords/${REMOVE_USERNAME} ]; then
+ rm -rf ~/.passwords/${REMOVE_USERNAME}
+ fi
+ exit 0
+fi
+
+get_backup_key_id
+
+# Use the backups private key as a symmetric passphrase
+MASTER_PASSWORD=$(gpg -q --armor --export-secret-key $MY_BACKUP_KEY_ID | sed '/---/d' | sed '/Version/d' | sed '/^$/d')
+
+if [ $TESTS ]; then
+ run_tests
+ exit 0
+fi
+
+if [ ! $CURR_USERNAME ]; then
+ echo $'Error: No username given'
+ exit 1
+fi
+
+if [ ! -d /home/$CURR_USERNAME ]; then
+ if [[ "$CURR_USERNAME" != "root" ]]; then
+ echo $"Error: User $CURR_USERNAME does not exist"
+ exit 2
+ fi
+fi
+
+if [ ${REMOVE_APP} ]; then
+ if [ -d ~/.passwords/${CURR_USERNAME}/${REMOVE_APP} ]; then
+ shred -zu ~/.passwords/${CURR_USERNAME}/${REMOVE_APP}
+ fi
+ exit 0
+fi
+
+if [ ! $CURR_APP ]; then
+ echo $'Error: No app name given'
+ exit 3
+fi
+
+if [ ${#CURR_PASSWORD} -eq 0 ]; then
+ # retrieve password
+ if [ ! -f ~/.passwords/$CURR_USERNAME/$CURR_APP ]; then
+ echo ""
+ exit 4
+ else
+ pass=$(gpg -dq --passphrase "$MASTER_PASSWORD" ~/.passwords/$CURR_USERNAME/$CURR_APP)
+ remove_padding "${pass}"
+ fi
+else
+ # store password
+ if [ -f $NO_PASSWORD_STORE_FILE ]; then
+ if [[ "$CURR_USERNAME" != 'root' ]]; then
+ exit 0
+ fi
+ fi
+ if [ ! -d ~/.passwords/$CURR_USERNAME ]; then
+ mkdir -p ~/.passwords/$CURR_USERNAME
+ fi
+ # padding helps to ensure than nothing can be learned from the length of the cyphertext
+ pad_string "${CURR_PASSWORD}" | gpg -ca --cipher-algo AES256 --passphrase "$MASTER_PASSWORD" > ~/.passwords/$CURR_USERNAME/$CURR_APP
+ if [ ! -f ~/.passwords/$CURR_USERNAME/$CURR_APP ]; then
+ exit 5
+ fi
+fi
+
+exit 0
diff --git a/src/freedombone-pin-cert b/src/freedombone-pin-cert
index 0aef8c6b..993e26a6 100755
--- a/src/freedombone-pin-cert
+++ b/src/freedombone-pin-cert
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -35,6 +35,9 @@ export TEXTDOMAINDIR="/usr/share/locale"
WEBSITES_DIRECTORY=/etc/nginx/sites-available
+# 90 days
+PIN_MAX_AGE=7776000
+
function pin_all_certs {
if [ ! -d $WEBSITES_DIRECTORY ]; then
return
@@ -52,8 +55,8 @@ function pin_all_certs {
BACKUP_KEY_HASH=$(openssl rsa -in $BACKUP_KEY_FILENAME -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64)
if [ ${#BACKUP_KEY_HASH} -gt 5 ]; then
- PIN_HEADER="Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; pin-sha256=\"${BACKUP_KEY_HASH}\"; max-age=5184000; includeSubDomains';"
- # sed -i "s|Public-Key-Pins.*|${PIN_HEADER}|g" $file
+ PIN_HEADER="Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; pin-sha256=\"${BACKUP_KEY_HASH}\"; max-age=${PIN_MAX_AGE}; includeSubDomains';"
+ sed -i "s|Public-Key-Pins.*|${PIN_HEADER}|g" $file
echo $"Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH"
fi
fi
@@ -115,8 +118,10 @@ if [ ${#BACKUP_KEY_HASH} -lt 5 ]; then
fi
PIN_HEADER="Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; pin-sha256=\"${BACKUP_KEY_HASH}\"; max-age=5184000; includeSubDomains';"
-if grep -q "Public-Key-Pins" $SITE_FILENAME; then
- sed -i "s|Public-Key-Pins.*||g" $SITE_FILENAME
+if ! grep -q "Public-Key-Pins" $SITE_FILENAME; then
+ sed -i "/ssl_ciphers.*/a add_header ${PIN_HEADER}" $SITE_FILENAME
+else
+ sed -i "s|Public-Key-Pins.*|${PIN_HEADER}|g" $SITE_FILENAME
fi
systemctl restart nginx
diff --git a/src/freedombone-recoverkey b/src/freedombone-recoverkey
index 42240634..c02011bb 100755
--- a/src/freedombone-recoverkey
+++ b/src/freedombone-recoverkey
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -33,9 +33,24 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-recoverkey
export TEXTDOMAINDIR="/usr/share/locale"
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+# include utils which allow function_check, go and drive mount
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+read_config_param USB_DRIVE
+
FRIENDS_SERVERS_LIST=
MY_USERNAME=
-GPG_USB_DRIVE='sdb1'
+if [ $USB_DRIVE ]; then
+ GPG_USB_DRIVE=$USB_DRIVE
+else
+ GPG_USB_DRIVE='/dev/sdb1'
+fi
function show_help {
echo ''
@@ -93,145 +108,6 @@ fi
FRAGMENTS_DIR=/home/$MY_USERNAME/.gnupg_fragments
-function reconstruct_key {
- if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
- return
- fi
- cd /home/$MY_USERNAME/.gnupg_fragments
- no_of_shares=$(ls -afq keyshare.asc.* | wc -l)
- if (( no_of_shares < 4 )); then
- dialog --title $"Encryption keys" --msgbox $'Not enough fragments to reconstruct the key' 6 70
- exit 7348
- fi
- apt-get -y install libgfshare-bin gnupg
- gfcombine /home/$MY_USERNAME/.gnupg_fragments/keyshare*
- if [ ! "$?" = "0" ]; then
- dialog --title $"Encryption keys" --msgbox $'Unable to reconstruct the key' 6 70
- exit 7348
- fi
-
- KEYS_FILE=/home/$MY_USERNAME/.gnupg_fragments/keyshare.asc
- if [ ! -f $KEYS_FILE ]; then
- dialog --title $"Encryption keys" --msgbox $'Unable to reconstruct the key' 6 70
- fi
-
- su -c "gpg --allow-secret-key-import --import $KEYS_FILE" - $MY_USERNAME
- if [ ! "$?" = "0" ]; then
- echo $'Unable to import gpg key'
- shred -zu $KEYS_FILE
- rm -rf /home/$MY_USERNAME/.tempgnupg
- exit 9654
- fi
- shred -zu $KEYS_FILE
-
- dialog --title $"Encryption keys" --msgbox $'Key has been reconstructed' 6 70
-}
-
-function interactive_gpg_from_usb {
- dialog --title $"Encryption keys" \
- --msgbox $'Plug in a USB drive containing a copy of your full key or key fragment' 6 70
-
- HOME_DIR=/home/$MY_USERNAME
- GPG_LOADING="yes"
- SSH_IMPORTED="no"
- GPG_CTR=0
- while [[ $GPG_LOADING == "yes" ]]
- do
- if [ ! -b $GPG_USB_DRIVE ]; then
- GPG_USB_DRIVE='/dev/sdc1'
- if [ ! -b $GPG_USB_DRIVE ]; then
- GPG_USB_DRIVE='/dev/sdd1'
- if [ ! -b $GPG_USB_DRIVE ]; then
- if (( GPG_CTR > 0 )); then
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" --msgbox $'No USB drive found' 6 30
- exit 27852
- fi
- fi
- fi
-
- GPG_USB_MOUNT='/mnt/usb'
- umount -f $GPG_USB_MOUNT
- if [ ! -d $GPG_USB_MOUNT ]; then
- mkdir -p $GPG_USB_MOUNT
- fi
-
- if [ -f /dev/mapper/encrypted_usb ]; then
- rm -rf /dev/mapper/encrypted_usb
- fi
- cryptsetup luksClose encrypted_usb
- cryptsetup luksOpen $GPG_USB_DRIVE encrypted_usb
- if [ "$?" = "0" ]; then
- GPG_USB_DRIVE=/dev/mapper/encrypted_usb
- fi
- mount $GPG_USB_DRIVE $GPG_USB_MOUNT
- if [ ! "$?" = "0" ]; then
- if (( GPG_CTR > 0 )); then
- rm -rf $GPG_USB_MOUNT
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" \
- --msgbox $"There was a problem mounting the USB drive to $GPG_USB_MOUNT" 6 70
- rm -rf $GPG_USB_MOUNT
- exit 74393
- fi
-
- if [ ! -d $GPG_USB_MOUNT/.gnupg ]; then
- if [ ! -d $GPG_USB_MOUNT/.gnupg_fragments ]; then
- if (( GPG_CTR > 0 )); then
- umount -f $GPG_USB_MOUNT
- rm -rf $GPG_USB_MOUNT
- reconstruct_key
- return 0
- fi
- dialog --title $"Encryption keys" \
- --msgbox $"The directory $GPG_USB_MOUNT/.gnupg or $GPG_USB_MOUNT/.gnupg_fragments was not found" 6 70
- umount -f $GPG_USB_MOUNT
- rm -rf $GPG_USB_MOUNT
- exit 723814
- fi
- fi
-
- if [ -d $GPG_USB_MOUNT/.gnupg ]; then
- if [ ! -d $HOME_DIR/.gnupg ]; then
- mkdir $HOME_DIR/.gnupg
- fi
- cp -r $GPG_USB_MOUNT/.gnupg/* $HOME_DIR/.gnupg
- GPG_LOADING="no"
- dialog --title $"Encryption keys" \
- --msgbox $"GPG Keyring loaded to $HOME_DIR" 6 70
- else
- if [ ! -d $HOME_DIR/.gnupg_fragments ]; then
- mkdir $HOME_DIR/.gnupg_fragments
- fi
- cp -r $GPG_USB_MOUNT/.gnupg_fragments/* $HOME_DIR/.gnupg_fragments
- fi
-
- if [[ $SSH_IMPORTED == "no" ]]; then
- if [ -d $GPG_USB_MOUNT/.ssh ]; then
- if [ ! -d $HOME_DIR/.ssh ]; then
- mkdir $HOME_DIR/.ssh
- fi
- cp $GPG_USB_MOUNT/.ssh/* $HOME_DIR/.ssh
- dialog --title $"Encryption keys" \
- --msgbox $"ssh keys imported" 6 70
- SSH_IMPORTED="yes"
- fi
- fi
-
- umount -f $GPG_USB_MOUNT
- rm -rf $GPG_USB_MOUNT
- if [[ $GPG_LOADING == "yes" ]]; then
- dialog --title $"Encryption keys" \
- --msgbox $"Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish" 6 70
- fi
- GPG_CTR=$((GPG_CTR + 1))
- done
-}
-
# if no remote backup list was given then assume recover from USB
if [ ! $FRIENDS_SERVERS_LIST ]; then
interactive_gpg_from_usb
diff --git a/src/freedombone-remote b/src/freedombone-remote
index b887f137..4f1da66f 100755
--- a/src/freedombone-remote
+++ b/src/freedombone-remote
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -44,14 +44,7 @@ MY_USERNAME=$USER
FRIENDS_SERVERS_LIST=
# Minimum password length in characters
-MINIMUM_PASSWORD_LENGTH=10
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
-else
- if [ -f /usr/bin/${PROJECT_NAME} ]; then
- MINIMUM_PASSWORD_LENGTH=$(cat /usr/bin/${PROJECT_NAME} | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
- fi
-fi
+MINIMUM_PASSWORD_LENGTH=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords | grep 'MINIMUM_PASSWORD_LENGTH=' | head -n 1 | awk -F '=' '{print $2}')
# How many remote locations were specified
entering_remote_backups_ctr=0
@@ -65,207 +58,207 @@ TITLE='Remote Backup'
RECIPROCAL="no"
function show_help {
- echo ''
- echo $"${PROJECT_NAME}-remote -u [username] -l [backup list filename] -m [min password length]"
- echo ''
- echo $'Creates an inventory of remote backup locations'
- echo ''
- echo ''
- echo $' -h --help Show help'
- echo $' -u --username User to create the backups.list file for'
- echo $' -l --list Remote backup list (usually /home/$USER/backup.list)'
- echo $' -m --min Minimum password length (characters)'
- echo $' -r --reciprocal Whether to add reciprocal user accounts'
- echo $' -t --title Title shown'
- echo ''
- exit 0
+ echo ''
+ echo $"${PROJECT_NAME}-remote -u [username] -l [backup list filename] -m [min password length]"
+ echo ''
+ echo $'Creates an inventory of remote backup locations'
+ echo ''
+ echo ''
+ echo $' -h --help Show help'
+ echo $' -u --username User to create the backups.list file for'
+ echo $' -l --list Remote backup list (usually /home/$USER/backup.list)'
+ echo $' -m --min Minimum password length (characters)'
+ echo $' -r --reciprocal Whether to add reciprocal user accounts'
+ echo $' -t --title Title shown'
+ echo ''
+ exit 0
}
# Get the commandline options
while [[ $# > 1 ]]
do
- key="$1"
+ key="$1"
- case $key in
- -h|--help)
- show_help
- ;;
- # backup list filename
- # typically /home/$USER/backup.list
- -l|--list)
- shift
- FRIENDS_SERVERS_LIST="$1"
- ;;
- # username within /home
- -u|--user)
- shift
- MY_USERNAME="$1"
- ;;
- # Minimum password length
- -m|--min)
- shift
- MINIMUM_PASSWORD_LENGTH="$1"
- ;;
- # Title shown
- -t|--title)
- shift
- TITLE="$1"
- ;;
- # reciprocal user accounts
- -r|--reciprocal)
- shift
- RECIPROCAL="yes"
- ;;
- *)
- # unknown option
- ;;
- esac
- shift
+ case $key in
+ -h|--help)
+ show_help
+ ;;
+ # backup list filename
+ # typically /home/$USER/backup.list
+ -l|--list)
+ shift
+ FRIENDS_SERVERS_LIST="$1"
+ ;;
+ # username within /home
+ -u|--user)
+ shift
+ MY_USERNAME="$1"
+ ;;
+ # Minimum password length
+ -m|--min)
+ shift
+ MINIMUM_PASSWORD_LENGTH="$1"
+ ;;
+ # Title shown
+ -t|--title)
+ shift
+ TITLE="$1"
+ ;;
+ # reciprocal user accounts
+ -r|--reciprocal)
+ shift
+ RECIPROCAL="yes"
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
+ shift
done
-function interactive_configuration_remote_backups {
- if [ ! $MY_USERNAME ]; then
- echo $'Please specify a username with the -u option'
- exit 7356
- fi
+function interactive_config_remote_backups {
+ if [ ! $MY_USERNAME ]; then
+ echo $'Please specify a username with the -u option'
+ exit 7356
+ fi
- if [ ! /home/$MY_USERNAME ]; then
- echo $"The user /home/$MY_USERNAME does not exist on the system"
- exit 3689
- fi
+ if [ ! /home/$MY_USERNAME ]; then
+ echo $"The user /home/$MY_USERNAME does not exist on the system"
+ exit 3689
+ fi
- if [ ! $FRIENDS_SERVERS_LIST ]; then
- FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
- fi
+ if [ ! $FRIENDS_SERVERS_LIST ]; then
+ FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
+ fi
- # clear any existing list
- if [ -f $FRIENDS_SERVERS_LIST ]; then
- rm -f $FRIENDS_SERVERS_LIST
- touch $FRIENDS_SERVERS_LIST
- fi
- # number of entries made
- entering_remote_backups_ctr=1
+ # clear any existing list
+ if [ -f $FRIENDS_SERVERS_LIST ]; then
+ rm -f $FRIENDS_SERVERS_LIST
+ touch $FRIENDS_SERVERS_LIST
+ fi
+ # number of entries made
+ entering_remote_backups_ctr=1
- entering_remote_backups_done="no"
- remote_ssh_username=""
- remote_ssh_domain=""
- remote_ssh_port=""
- remote_ssh_password=""
- remote_ssh_reciprocal_username=""
- remote_ssh_reciprocal_password=""
- while [[ $entering_remote_backups_done == "no" ]]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- if [[ $RECIPROCAL == "yes" ]]; then
- dialog --backtitle "Freedombone Configuration" \
- --title "$TITLE ${entering_remote_backups_ctr}" \
- --form "\nPlease specify the SSH login details for the remote server\n\nThe reciprocal entries are optional, and can be used if you wish to set up a user account on this system for whoever runs the remote server to also use for backups" 20 50 8 \
- "Username:" 1 1 "$remote_ssh_username" 1 23 16 15 \
- "Domain:" 2 1 "$remote_ssh_domain" 2 23 16 15 \
- "SSH port:" 3 1 "2222" 3 23 5 4 \
- "Password:" 4 1 "$remote_ssh_password" 4 23 20 100 \
- "Reciprocal Username:" 5 1 "$remote_ssh_reciprocal_username" 5 23 20 100 \
- "Reciprocal Password:" 6 1 "$remote_ssh_reciprocal_password" 6 23 20 100 \
- 2> $data
- else
- dialog --backtitle "Freedombone Configuration" \
- --title "$TITLE ${entering_remote_backups_ctr}" \
- --form "\nPlease specify the SSH login details for the remote server" 15 50 4 \
- "Username:" 1 1 "$remote_ssh_username" 1 23 16 15 \
- "Domain:" 2 1 "$remote_ssh_domain" 2 23 16 15 \
- "SSH port:" 3 1 "2222" 3 23 5 4 \
- "Password:" 4 1 "$remote_ssh_password" 4 23 20 100 \
- 2> $data
- fi
- sel=$?
- case $sel in
- 1) entering_remote_backups_done="yes";;
- 255) entering_remote_backups_done="yes";;
- esac
- remote_ssh_username=$(cat $data | sed -n 1p)
- remote_ssh_domain=$(cat $data | sed -n 2p)
- remote_ssh_port=$(cat $data | sed -n 3p)
- remote_ssh_password=$(cat $data | sed -n 4p)
- remote_ssh_reciprocal_username=$(cat $data | sed -n 5p)
- remote_ssh_reciprocal_password=$(cat $data | sed -n 6p)
- if [[ $remote_ssh_username != "" && \
- $remote_ssh_domain != "" && \
- $remote_ssh_port != "" && \
- $remote_ssh_password != "" ]]; then
+ entering_remote_backups_done="no"
+ remote_ssh_username=""
+ remote_ssh_domain=""
+ remote_ssh_port=""
+ remote_ssh_password=""
+ remote_ssh_reciprocal_username=""
+ remote_ssh_reciprocal_password=""
+ while [[ $entering_remote_backups_done == "no" ]]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $RECIPROCAL == "yes" ]]; then
+ dialog --backtitle "Freedombone Configuration" \
+ --title "$TITLE ${entering_remote_backups_ctr}" \
+ --form "\nPlease specify the SSH login details for the remote server\n\nThe reciprocal entries are optional, and can be used if you wish to set up a user account on this system for whoever runs the remote server to also use for backups" 20 50 8 \
+ "Username:" 1 1 "$remote_ssh_username" 1 23 16 15 \
+ "Domain:" 2 1 "$remote_ssh_domain" 2 23 16 15 \
+ "SSH port:" 3 1 "2222" 3 23 5 4 \
+ "Password:" 4 1 "$remote_ssh_password" 4 23 20 100 \
+ "Reciprocal Username:" 5 1 "$remote_ssh_reciprocal_username" 5 23 20 100 \
+ "Reciprocal Password:" 6 1 "$remote_ssh_reciprocal_password" 6 23 20 100 \
+ 2> $data
+ else
+ dialog --backtitle "Freedombone Configuration" \
+ --title "$TITLE ${entering_remote_backups_ctr}" \
+ --form "\nPlease specify the SSH login details for the remote server" 15 50 4 \
+ "Username:" 1 1 "$remote_ssh_username" 1 23 16 15 \
+ "Domain:" 2 1 "$remote_ssh_domain" 2 23 16 15 \
+ "SSH port:" 3 1 "2222" 3 23 5 4 \
+ "Password:" 4 1 "$remote_ssh_password" 4 23 20 100 \
+ 2> $data
+ fi
+ sel=$?
+ case $sel in
+ 1) entering_remote_backups_done="yes";;
+ 255) entering_remote_backups_done="yes";;
+ esac
+ remote_ssh_username=$(cat $data | sed -n 1p)
+ remote_ssh_domain=$(cat $data | sed -n 2p)
+ remote_ssh_port=$(cat $data | sed -n 3p)
+ remote_ssh_password=$(cat $data | sed -n 4p)
+ remote_ssh_reciprocal_username=$(cat $data | sed -n 5p)
+ remote_ssh_reciprocal_password=$(cat $data | sed -n 6p)
+ if [[ $remote_ssh_username != "" && \
+ $remote_ssh_domain != "" && \
+ $remote_ssh_port != "" && \
+ $remote_ssh_password != "" ]]; then
- if [ ${#remote_ssh_password} -lt $MINIMUM_PASSWORD_LENGTH ]; then
- dialog --title "Password quality check" --msgbox "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters" 6 40
- else
+ if [ ${#remote_ssh_password} -lt $MINIMUM_PASSWORD_LENGTH ]; then
+ dialog --title "Password quality check" --msgbox "The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters" 6 40
+ else
- if [[ $RECIPROCAL == "yes" ]]; then
- if [[ $remote_ssh_reciprocal_username != "" && \
- $remote_ssh_reciprocal_password != "" ]]; then
- if [ ${#remote_ssh_reciprocal_password} -lt $MINIMUM_PASSWORD_LENGTH ]; then
- dialog --title "Password quality check" --msgbox "The reciprocal password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters" 6 40
- else
- echo ${remote_ssh_reciprocal_username}:${remote_ssh_reciprocal_password}::::/home/${remote_ssh_reciprocal_username}:bash | newusers
- echo "$remote_ssh_username@$remote_ssh_domain $remote_ssh_port /home/$remote_ssh_username $remote_ssh_password" >> $FRIENDS_SERVERS_LIST
- remote_ssh_username=""
- remote_ssh_domain=""
- remote_ssh_port=""
- remote_ssh_password=""
- remote_ssh_reciprocal_username=""
- remote_ssh_reciprocal_password=""
- entering_remote_backups_ctr=$((entering_remote_backups_ctr + 1))
- fi
- else
- echo "$remote_ssh_username@$remote_ssh_domain $remote_ssh_port /home/$remote_ssh_username $remote_ssh_password" >> $FRIENDS_SERVERS_LIST
- remote_ssh_username=""
- remote_ssh_domain=""
- remote_ssh_port=""
- remote_ssh_password=""
- remote_ssh_reciprocal_username=""
- remote_ssh_reciprocal_password=""
- entering_remote_backups_ctr=$((entering_remote_backups_ctr + 1))
- fi
- else
- echo "$remote_ssh_username@$remote_ssh_domain $remote_ssh_port /home/$remote_ssh_username $remote_ssh_password" >> $FRIENDS_SERVERS_LIST
- remote_ssh_username=""
- remote_ssh_domain=""
- remote_ssh_port=""
- remote_ssh_password=""
- entering_remote_backups_ctr=$((entering_remote_backups_ctr + 1))
- fi
+ if [[ $RECIPROCAL == "yes" ]]; then
+ if [[ $remote_ssh_reciprocal_username != "" && \
+ $remote_ssh_reciprocal_password != "" ]]; then
+ if [ ${#remote_ssh_reciprocal_password} -lt $MINIMUM_PASSWORD_LENGTH ]; then
+ dialog --title "Password quality check" --msgbox "The reciprocal password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters" 6 40
+ else
+ echo ${remote_ssh_reciprocal_username}:${remote_ssh_reciprocal_password}::::/home/${remote_ssh_reciprocal_username}:bash | newusers
+ echo "$remote_ssh_username@$remote_ssh_domain $remote_ssh_port /home/$remote_ssh_username $remote_ssh_password" >> $FRIENDS_SERVERS_LIST
+ remote_ssh_username=""
+ remote_ssh_domain=""
+ remote_ssh_port=""
+ remote_ssh_password=""
+ remote_ssh_reciprocal_username=""
+ remote_ssh_reciprocal_password=""
+ entering_remote_backups_ctr=$((entering_remote_backups_ctr + 1))
+ fi
+ else
+ echo "$remote_ssh_username@$remote_ssh_domain $remote_ssh_port /home/$remote_ssh_username $remote_ssh_password" >> $FRIENDS_SERVERS_LIST
+ remote_ssh_username=""
+ remote_ssh_domain=""
+ remote_ssh_port=""
+ remote_ssh_password=""
+ remote_ssh_reciprocal_username=""
+ remote_ssh_reciprocal_password=""
+ entering_remote_backups_ctr=$((entering_remote_backups_ctr + 1))
+ fi
+ else
+ echo "$remote_ssh_username@$remote_ssh_domain $remote_ssh_port /home/$remote_ssh_username $remote_ssh_password" >> $FRIENDS_SERVERS_LIST
+ remote_ssh_username=""
+ remote_ssh_domain=""
+ remote_ssh_port=""
+ remote_ssh_password=""
+ entering_remote_backups_ctr=$((entering_remote_backups_ctr + 1))
+ fi
- fi
- else
- entering_remote_backups_done="yes"
- fi
- done
- if [ -f $FRIENDS_SERVERS_LIST ]; then
- chown $MY_USERNAME:$MY_USERNAME $FRIENDS_SERVERS_LIST
- fi
+ fi
+ else
+ entering_remote_backups_done="yes"
+ fi
+ done
+ if [ -f $FRIENDS_SERVERS_LIST ]; then
+ chown $MY_USERNAME:$MY_USERNAME $FRIENDS_SERVERS_LIST
+ fi
}
function show_result {
- clear
- if (( $entering_remote_backups_ctr < 2 )); then
- echo $'No remote backup locations were specified'
- exit 0
- fi
- if [ ! -f $FRIENDS_SERVERS_LIST ]; then
- echo $"No remote backups list found: $FRIENDS_SERVERS_LIST"
- exit 7358
- fi
- echo ''
- echo $"Remote backups list: $FRIENDS_SERVERS_LIST"
- echo ''
- echo $'Contents:'
- echo ''
- cat $FRIENDS_SERVERS_LIST
- echo ''
+ clear
+ if (( $entering_remote_backups_ctr < 2 )); then
+ echo $'No remote backup locations were specified'
+ exit 0
+ fi
+ if [ ! -f $FRIENDS_SERVERS_LIST ]; then
+ echo $"No remote backups list found: $FRIENDS_SERVERS_LIST"
+ exit 7358
+ fi
+ echo ''
+ echo $"Remote backups list: $FRIENDS_SERVERS_LIST"
+ echo ''
+ echo $'Contents:'
+ echo ''
+ cat $FRIENDS_SERVERS_LIST
+ echo ''
}
if [ ! $FRIENDS_SERVERS_LIST ]; then
- FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
+ FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
fi
-interactive_configuration_remote_backups
+interactive_config_remote_backups
show_result
exit 0
diff --git a/src/freedombone-renew-cert b/src/freedombone-renew-cert
index 6e0a5205..16e02afd 100755
--- a/src/freedombone-renew-cert
+++ b/src/freedombone-renew-cert
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-repair-database b/src/freedombone-repair-database
index a41988ce..cf9f315f 100755
--- a/src/freedombone-repair-database
+++ b/src/freedombone-repair-database
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -44,7 +44,20 @@ ADMIN_EMAIL_ADDRESS=${ADMIN_USERNAME}@${HOSTNAME}
# Frequency - daily/weekly
BACKUP_TYPE='daily'
-MYSQL_ROOT_PASSWORD=$(cat /root/dbpass)
+
+# migrate from database password file to using the password store
+DATABASE_PASSWORD_FILE=/root/dbpass
+if [ -f $DATABASE_PASSWORD_FILE ]; then
+ MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
+ ${PROJECT_NAME}-pass -u root -a mariadb -p "$MARIADB_PASSWORD"
+ stored_password=$(${PROJECT_NAME}-pass -u root -a mariadb)
+ if [[ "$stored_password" == "$MARIADB_PASSWORD" ]]; then
+ shred -zu $DATABASE_PASSWORD_FILE
+ fi
+fi
+
+MYSQL_ROOT_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
+
TEMPFILE=/root/repair-database-$DATABASE
umask 0077
diff --git a/src/freedombone-restore-local b/src/freedombone-restore-local
index 8a91f4d7..c5fdd49a 100755
--- a/src/freedombone-restore-local
+++ b/src/freedombone-restore-local
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,6 +30,7 @@
PROJECT_NAME='freedombone'
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
BACKUP_EXTRA_DIRECTORIES=/root/backup-extra-dirs.csv
# whether to restore everything or just a specific application
@@ -38,123 +39,40 @@ RESTORE_APP='all'
export TEXTDOMAIN=${PROJECT_NAME}-restore-local
export TEXTDOMAINDIR="/usr/share/locale"
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
+
+# include utils which allow function_check, go and drive mount
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
USB_DRIVE=/dev/sdb1
USB_MOUNT=/mnt/usb
-# get default USB from config file
-CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
-if [ -f $CONFIG_FILE ]; then
- if grep -q "USB_DRIVE=" $CONFIG_FILE; then
- USB_DRIVE=$(cat $CONFIG_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
- fi
-fi
-
-# get the version of Go being used
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- GO_VERSION=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
- GVM_HOME=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'GVM_HOME=' | head -n 1 | awk -F '=' '{print $2}')
-else
- GO_VERSION=$(cat /usr/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
- GVM_HOME=$(cat /usr/bin/${PROJECT_NAME} | grep 'GVM_HOME=' | head -n 1 | awk -F '=' '{print $2}')
-fi
-
-ADMIN_USERNAME=
+ADMIN_USERNAME=''
ADMIN_NAME=
+read_config_param USB_DRIVE
+
+if [ -f $COMPLETION_FILE ]; then
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
+fi
+
# MariaDB password
-DATABASE_PASSWORD=$(cat /root/dbpass)
-
-MICROBLOG_DOMAIN_NAME=
-HUBZILLA_DOMAIN_NAME=
-MEDIAGOBLIN_DOMAIN_NAME=
-GIT_DOMAIN_NAME=
-WIKI_DOMAIN_NAME=
-FULLBLOG_DOMAIN_NAME=
-
-function set_obnam_client_name {
- # obnam can backup multiple machines with different domain names to
- # a repository. To be able to restore directories from different
- # machines we need to enforce a single client name for all backups
- echo '[config]' > /etc/obnam.conf
- echo "client-name = ${PROJECT_NAME}" >> /etc/obnam.conf
-}
-
-function mount_drive {
- if [ $1 ]; then
- USB_DRIVE=/dev/${1}1
- fi
-
- if [ $2 ]; then
- RESTORE_APP=$2
- fi
-
- # get the admin user
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
- if [ $3 ]; then
- ADMIN_USERNAME=$3
- fi
- ADMIN_NAME=$(getent passwd $ADMIN_USERNAME | cut -d: -f5 | cut -d, -f1)
-
- # check that the backup destination is available
- if [ ! -b $USB_DRIVE ]; then
- echo $"Please attach a USB drive"
- exit 1
- fi
-
- # unmount if already mounted
- umount -f $USB_MOUNT
- if [ ! -d $USB_MOUNT ]; then
- mkdir $USB_MOUNT
- fi
- if [ -f /dev/mapper/encrypted_usb ]; then
- rm -rf /dev/mapper/encrypted_usb
- fi
- cryptsetup luksClose encrypted_usb
-
- # mount the encrypted backup drive
- cryptsetup luksOpen $USB_DRIVE encrypted_usb
- if [ "$?" = "0" ]; then
- USB_DRIVE=/dev/mapper/encrypted_usb
- fi
- mount $USB_DRIVE $USB_MOUNT
- if [ ! "$?" = "0" ]; then
- echo $"There was a problem mounting the USB drive to $USB_MOUNT"
- rm -rf $USB_MOUNT
- exit 2
- fi
-}
-
-function unmount_drive {
- sync
- umount $USB_MOUNT
- if [ ! "$?" = "0" ]; then
- echo $"Unable to unmount the drive. This means that the backup did not work"
- rm -rf $USB_MOUNT
- exit 9
- fi
- rm -rf $USB_MOUNT
-
- echo $"Setting permissions"
- for d in /home/*/ ; do
- USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
- chown -R $USERNAME:$USERNAME /home/$USERNAME
- fi
- done
-
- if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then
- echo $"Unmount encrypted USB"
- cryptsetup luksClose encrypted_usb
- fi
- if [ -f /dev/mapper/encrypted_usb ]; then
- rm -rf /dev/mapper/encrypted_usb
- fi
-}
+DATABASE_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
function check_backup_exists {
if [ ! -d $USB_MOUNT/backup ]; then
echo $"No backup directory found on the USB drive."
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 2
fi
}
@@ -163,7 +81,8 @@ function check_admin_user {
echo $"Checking that admin user exists"
if [ ! -d /home/$ADMIN_USERNAME ]; then
echo $"Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username."
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 295
fi
}
@@ -173,111 +92,6 @@ function copy_gpg_keys {
cp -r /home/$ADMIN_USERNAME/.gnupg /root
}
-function restore_directory_from_usb {
- if [ ! -d ${1} ]; then
- mkdir ${1}
- fi
- set_obnam_client_name
- obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
-}
-
-function restore_database {
- RESTORE_SUBDIR="root"
-
- if [ -d $USB_MOUNT/backup/${1} ]; then
- echo $"Restoring ${1} database"
- restore_directory_from_usb "/root/temp${1}data" "${1}data"
- if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
- echo $"Unable to restore ${1} database"
- rm -rf /root/temp${1}data
- unmount_drive
- exit 503
- fi
- mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
- if [ ! "$?" = "0" ]; then
- echo "$mysqlsuccess"
- unmount_drive
- exit 964
- fi
- shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*
- rm -rf /root/temp${1}data
- echo $"Restoring ${1} installation"
- if [ ! -d /root/temp${1} ]; then
- mkdir /root/temp${1}
- fi
- restore_directory_from_usb "/root/temp${1}" "${1}"
- RESTORE_SUBDIR="var"
- if [ ${2} ]; then
- # special handline of ttrss
- if [[ ${2} == "ttrss" ]]; then
- if [ -d /etc/share/tt-rss ]; then
- if [ -d /root/temp${1}/etc/share/tt-rss ]; then
- rm -rf /etc/share/tt-rss
- mv /root/temp${1}/etc/share/tt-rss /etc/share/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 528
- fi
- if [ -d /etc/letsencrypt/live/${2} ]; then
- ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
- ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
- else
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
- sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
- fi
- fi
- fi
- fi
- fi
-
- if [ -d /var/www/${2}/htdocs ]; then
- if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
- rm -rf /var/www/${2}/htdocs
- mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 683
- fi
- if [ -d /etc/letsencrypt/live/${2} ]; then
- ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
- ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
- else
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
- sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
- fi
- fi
- fi
- fi
- fi
- fi
-}
-
-function update_domains {
- if grep -q "RSS reader domain" $COMPLETION_FILE; then
- RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "RSS reader domain" | awk -F ':' '{print $2}')
- fi
- if grep -q "GNU Social domain" $COMPLETION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
- fi
- if grep -q "Hubzilla domain" $COMPLETION_FILE; then
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
- fi
- if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
- MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
- fi
- if grep -q "Gogs domain" $COMPLETION_FILE; then
- GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
- fi
- if [ -d $USB_MOUNT/backup/wiki ]; then
- WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Wiki domain" | awk -F ':' '{print $2}')
- fi
- if [ -d $USB_MOUNT/backup/blog ]; then
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
- fi
-}
-
function restore_configfiles {
if [[ $RESTORE_APP != 'all' ]]; then
if [[ $RESTORE_APP != 'configfiles' ]]; then
@@ -288,49 +102,73 @@ function restore_configfiles {
# this restores *.cfg and COMPLETION_FILE
if [ -d $USB_MOUNT/backup/config ]; then
echo $"Restoring configuration files"
- restore_directory_from_usb /root/tempconfig configfiles
+ temp_restore_dir=/root/tempconfig
+ restore_directory_from_usb $temp_restore_dir configfiles
- cp -f /root/tempconfig/root/${PROJECT_NAME}.cfg $CONFIG_FILE
- if [ ! "$?" = "0" ]; then
- unmount_drive
- rm -rf /root/tempconfig
- exit 5294
- fi
- if [ -f $CONFIG_FILE ]; then
- # install according to the config file
- freedombone -c $CONFIG_FILE
+ if [ -f $temp_restore_dir/root/.nostore ]; then
+ if [ ! -f /root/.nostore ]; then
+ touch /root/.nostore
+ fi
+ else
+ if [ -f /root/.nostore ]; then
+ rm /root/.nostore
+ fi
fi
- cp -f /root/tempconfig/root/${PROJECT_NAME}-completed.txt $COMPLETION_FILE
- if [ ! "$?" = "0" ]; then
- unmount_drive
- rm -rf /root/tempconfig
- exit 6382
+ if [ -f $temp_restore_dir$NODEJS_INSTALLED_APPS_FILE ]; then
+ cp -f $temp_restore_dir$NODEJS_INSTALLED_APPS_FILE $NODEJS_INSTALLED_APPS_FILE
fi
- if [ -f /root/tempconfig${BACKUP_EXTRA_DIRECTORIES} ]; then
- cp -f /root/tempconfig${BACKUP_EXTRA_DIRECTORIES} ${BACKUP_EXTRA_DIRECTORIES}
+ if [ -f $temp_restore_dir/root/${PROJECT_NAME}.cfg ]; then
+ cp -f $temp_restore_dir/root/${PROJECT_NAME}.cfg $CONFIGURATION_FILE
if [ ! "$?" = "0" ]; then
- unmount_drive
- rm -rf /root/tempconfig
+ set_user_permissions
+ backup_unmount_drive
+ rm -rf $temp_restore_dir
+ exit 5294
+ fi
+ fi
+
+ if [ -f $CONFIGURATION_FILE ]; then
+ # install according to the config file
+ freedombone -c $CONFIGURATION_FILE
+ fi
+
+ if [ -f $temp_restore_dir/root/${PROJECT_NAME}-completed.txt ]; then
+ cp -f $temp_restore_dir/root/${PROJECT_NAME}-completed.txt $COMPLETION_FILE
+ if [ ! "$?" = "0" ]; then
+ set_user_permissions
+ backup_unmount_drive
+ rm -rf $temp_restore_dir
+ exit 6382
+ fi
+ fi
+
+ if [ -f ${temp_restore_dir}${BACKUP_EXTRA_DIRECTORIES} ]; then
+ cp -f ${temp_restore_dir}${BACKUP_EXTRA_DIRECTORIES} ${BACKUP_EXTRA_DIRECTORIES}
+ if [ ! "$?" = "0" ]; then
+ set_user_permissions
+ backup_unmount_drive
+ rm -rf $temp_restore_dir
exit 62121
fi
fi
# restore nginx password hashes
- if [ -f /root/tempconfig/root/htpasswd ]; then
- cp -f /root/tempconfig/root/htpasswd /etc/nginx/.htpasswd
+ if [ -f $temp_restore_dir/root/htpasswd ]; then
+ cp -f $temp_restore_dir/root/htpasswd /etc/nginx/.htpasswd
fi
- rm -rf /root/tempconfig
+ rm -rf $temp_restore_dir
fi
}
function same_admin_user {
- PREV_ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ PREV_ADMIN_USERNAME=$(get_completion_param "Admin user")
if [[ "$PREV_ADMIN_USERNAME" != "$ADMIN_USERNAME" ]]; then
echo $"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"
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 73265
fi
}
@@ -341,38 +179,38 @@ function restore_mariadb {
return
fi
fi
+
+ if [[ $(is_completed install_mariadb) == "0" ]]; then
+ function_check install_mariadb
+ install_mariadb
+ fi
+
if [ -d $USB_MOUNT/backup/mariadb ]; then
echo $"Restoring mysql settings"
- restore_directory_from_usb /root/tempmariadb mariadb
- echo $"Get the MariaDB password from the backup"
- if [ ! -f /root/tempmariadb/root/tempmariadb/db ]; then
- echo $"MariaDB password file not found"
- exit 495
- fi
- BACKUP_MARIADB_PASSWORD=$(cat /root/tempmariadb/root/tempmariadb/db)
- if [[ $BACKUP_MARIADB_PASSWORD != $DATABASE_PASSWORD ]]; then
+ temp_restore_dir=/root/tempmariadb
+ restore_directory_from_usb $temp_restore_dir mariadb
+ echo $'Obtaining MariaDB password'
+ db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
+ if [ ${#db_pass} -gt 0 ]; then
echo $"Restore the MariaDB user table"
- mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
+ mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
if [ ! "$?" = "0" ]; then
echo $"Try again using the password obtained from backup"
- mysqlsuccess=$(mysql -u root --password=$BACKUP_MARIADB_PASSWORD mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
+ mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
fi
if [ ! "$?" = "0" ]; then
echo "$mysqlsuccess"
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 962
fi
echo $"Restarting database"
service mysql restart
echo $"Change the MariaDB password to the backup version"
- DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD
+ DATABASE_PASSWORD="$db_pass"
+ ${PROJECT_NAME}-pass -u root -a mariadb -p "$DATABASE_PASSWORD"
fi
- shred -zu /root/tempmariadb/root/tempmariadb/db
- rm -rf /root/tempmariadb
-
- # Change database password file
- echo "$DATABASE_PASSWORD" > /root/dbpass
- chmod 600 /root/dbpass
+ rm -rf $temp_restore_dir
fi
}
@@ -388,6 +226,18 @@ function restore_letsencrypt {
fi
}
+function restore_passwordstore {
+ if [[ $RESTORE_APP != 'all' ]]; then
+ if [[ $RESTORE_APP != 'passwords' ]]; then
+ return
+ fi
+ fi
+ if [ -d $USB_MOUNT/backup/passwordstore ]; then
+ echo $"Restoring password store"
+ restore_directory_from_usb / passwordstore
+ fi
+}
+
function restore_tor {
if [[ $RESTORE_APP != 'all' ]]; then
if [[ $RESTORE_APP != 'tor' ]]; then
@@ -409,24 +259,26 @@ function restore_mutt_settings {
if [ -d $USB_MOUNT/backup/mutt ]; then
for d in $USB_MOUNT/backup/mutt/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring Mutt settings for $USERNAME"
- restore_directory_from_usb /root/tempmutt mutt/$USERNAME
- if [ -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc ]; then
- cp -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
+ temp_restore_dir=/root/tempmutt
+ restore_directory_from_usb $temp_restore_dir mutt/$USERNAME
+ if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc ]; then
+ cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
fi
- if [ -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc ]; then
- cp -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
+ if [ -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc ]; then
+ cp -f $temp_restore_dir/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
fi
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempmutt
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 276
fi
- rm -rf /root/tempmutt
+ rm -rf $temp_restore_dir
fi
done
fi
@@ -441,23 +293,26 @@ function restore_gpg {
if [ -d $USB_MOUNT/backup/gnupg ]; then
for d in $USB_MOUNT/backup/gnupg/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring gnupg settings for $USERNAME"
- restore_directory_from_usb /root/tempgnupg gnupg/$USERNAME
- cp -r /root/tempgnupg/home/$USERNAME/.gnupg /home/$USERNAME/
+ temp_restore_dir=/root/tempgnupg
+ restore_directory_from_usb $temp_restore_dir gnupg/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.gnupg /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempgnupg
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 276
fi
- rm -rf /root/tempgnupg
+ rm -rf $temp_restore_dir
if [[ "$USERNAME" == "$ADMIN_USERNAME" ]]; then
cp -r /home/$USERNAME/.gnupg /root
if [ ! "$?" = "0" ]; then
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 283
fi
fi
@@ -475,19 +330,23 @@ function restore_procmail {
if [ -d $USB_MOUNT/backup/procmail ]; then
for d in $USB_MOUNT/backup/procmail/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring procmail settings for $USERNAME"
- restore_directory_from_usb /root/tempprocmail procmail/$USERNAME
- cp -f /root/tempprocmail/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempprocmail
- unmount_drive
- exit 276
+ temp_restore_dir=/root/tempprocmail
+ restore_directory_from_usb $temp_restore_dir procmail/$USERNAME
+ if [ -d $temp_restore_dir ]; then
+ cp -f $temp_restore_dir/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
+ if [ ! "$?" = "0" ]; then
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
+ exit 276
+ fi
+ rm -rf $temp_restore_dir
fi
- rm -rf /root/tempprocmail
fi
done
fi
@@ -502,20 +361,22 @@ function restore_spamassassin {
if [ -d $USB_MOUNT/backup/spamassassin ]; then
for d in $USB_MOUNT/backup/spamassassin/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $USB_MOUNT/backup/spamassassin/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring spamassassin settings for $USERNAME"
- restore_directory_from_usb /root/tempspamassassin spamassassin/$USERNAME
- cp -rf /root/tempspamassassin/home/$USERNAME/.spamassassin /home/$USERNAME/
+ temp_restore_dir=/root/tempspamassassin
+ restore_directory_from_usb $temp_restore_dir spamassassin/$USERNAME
+ cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempspamassassin
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 276
fi
- rm -rf /root/tempspamassassin
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -539,33 +400,16 @@ function restore_admin_readme {
fi
fi
- restore_directory_from_usb /root/tempreadme readme
- cp -f /root/tempreadme/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
+ temp_restore_dir=/root/tempreadme
+ restore_directory_from_usb $temp_restore_dir readme
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempreadme
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 276
fi
- rm -rf /root/tempreadme
- fi
-}
-
-function restore_ipfs {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'ipfs' ]]; then
- return
- fi
- fi
- if [ -d $USB_MOUNT/backup/ipfs ]; then
- echo $"Restoring IPFS"
- restore_directory_from_usb /root/tempipfs ipfs
- cp -rf /root/tempipfs/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempipfs
- unmount_drive
- exit 276
- fi
- rm -rf /root/tempipfs
+ rm -rf $temp_restore_dir
fi
}
@@ -578,19 +422,21 @@ function restore_user_ssh_keys {
if [ -d $USB_MOUNT/backup/ssh ]; then
for d in $USB_MOUNT/backup/ssh/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring ssh keys for $USERNAME"
- restore_directory_from_usb /root/tempssh ssh/$USERNAME
- cp -r /root/tempssh/home/$USERNAME/.ssh /home/$USERNAME/
+ temp_restore_dir=/root/tempssh
+ restore_directory_from_usb $temp_restore_dir ssh/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempssh
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 664
fi
- rm -rf /root/tempssh
+ rm -rf $temp_restore_dir
fi
done
fi
@@ -605,19 +451,21 @@ function restore_user_config {
if [ -d $USB_MOUNT/backup/config ]; then
for d in $USB_MOUNT/backup/config/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring config files for $USERNAME"
- restore_directory_from_usb /root/tempconfig config/$USERNAME
- cp -r /root/tempconfig/home/$USERNAME/.config /home/$USERNAME/
+ temp_restore_dir=/root/tempconfig
+ restore_directory_from_usb $temp_restore_dir config/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempconfig
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 664
fi
- rm -rf /root/tempconfig
+ rm -rf $temp_restore_dir
fi
done
fi
@@ -644,27 +492,27 @@ function restore_user_monkeysphere {
if [ -d $USB_MOUNT/backup/monkeysphere ]; then
for d in $USB_MOUNT/backup/monkeysphere/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring monkeysphere ids for $USERNAME"
- restore_directory_from_usb /root/tempmonkeysphere monkeysphere/$USERNAME
- cp -r /root/tempmonkeysphere/home/$USERNAME/.monkeysphere /home/$USERNAME/
+ temp_restore_dir=/root/tempmonkeysphere
+ restore_directory_from_usb $temp_restore_dir monkeysphere/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempmonkeysphere
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 664
fi
- rm -rf /root/tempmonkeysphere
+ rm -rf $temp_restore_dir
fi
done
# The admin user is the identity certifier
MY_EMAIL_ADDRESS="${ADMIN_USERNAME}@${HOSTNAME}"
- if grep -q "MY_EMAIL_ADDRESS" $CONFIG_FILE; then
- MY_EMAIL_ADDRESS=$(grep "MY_EMAIL_ADDRESS" $CONFIG_FILE | awk -F '=' '{print $2}')
- fi
+ read_config_param MY_EMAIL_ADDRESS
MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$ADMIN_USERNAME" "$MY_EMAIL_ADDRESS")
fpr=$(gpg --with-colons --fingerprint $MY_GPG_PUBLIC_KEY_ID | grep fpr | head -n 1 | awk -F ':' '{print $10}')
monkeysphere-authentication add-identity-certifier $fpr
@@ -681,19 +529,21 @@ function restore_user_fin {
if [ -d $USB_MOUNT/backup/fin ]; then
for d in $USB_MOUNT/backup/fin/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring fin files for $USERNAME"
- restore_directory_from_usb /root/tempfin fin/$USERNAME
- cp -r /root/tempfin/home/$USERNAME/.fin /home/$USERNAME/
+ temp_restore_dir=/root/tempfin
+ restore_directory_from_usb $temp_restore_dir fin/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempfin
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 664
fi
- rm -rf /root/tempfin
+ rm -rf $temp_restore_dir
fi
done
fi
@@ -708,19 +558,21 @@ function restore_user_local {
if [ -d $USB_MOUNT/backup/local ]; then
for d in $USB_MOUNT/backup/local/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring local files for $USERNAME"
- restore_directory_from_usb /root/templocal local/$USERNAME
- cp -r /root/templocal/home/$USERNAME/.local /home/$USERNAME/
+ temp_restore_dir=/root/templocal
+ restore_directory_from_usb $temp_restore_dir local/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/templocal
- unmount_drive
+ rm -rf $temp_restore_dir
+ set_user_permissions
+ backup_unmount_drive
exit 664
fi
- rm -rf /root/templocal
+ rm -rf $temp_restore_dir
fi
done
fi
@@ -738,7 +590,8 @@ function restore_certs {
restore_directory_from_usb /root/tempssl ssl
cp -r /root/tempssl/etc/ssl/* /etc/ssl
if [ ! "$?" = "0" ]; then
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 276
fi
rm -rf /root/tempssl
@@ -778,22 +631,24 @@ function restore_personal_settings {
if [ -d $USB_MOUNT/backup/personal ]; then
for d in $USB_MOUNT/backup/personal/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $USB_MOUNT/backup/personal/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring personal settings for $USERNAME"
- restore_directory_from_usb /root/temppersonal personal/$USERNAME
+ temp_restore_dir=/root/temppersonal
+ restore_directory_from_usb $temp_restore_dir personal/$USERNAME
if [ -d /home/$USERNAME/personal ]; then
rm -rf /home/$USERNAME/personal
fi
- mv /root/temppersonal/home/$USERNAME/personal /home/$USERNAME
+ mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
if [ ! "$?" = "0" ]; then
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 184
fi
- rm -rf /root/temppersonal
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -808,336 +663,15 @@ function restore_mailing_list {
fi
if [ -d /var/spool/mlmmj ]; then
echo $"Restoring public mailing list"
- restore_directory_from_usb /root/tempmailinglist mailinglist
- cp -r /root/tempmailinglist/root/spool/mlmmj/* /var/spool/mlmmj
+ temp_restore_dir=/root/tempmailinglist
+ restore_directory_from_usb $temp_restore_dir mailinglist
+ cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
if [ ! "$?" = "0" ]; then
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 526
fi
- rm -rf /root/tempmailinglist
- fi
-}
-
-function restore_xmpp {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'xmpp' ]]; then
- return
- fi
- fi
- if [ -d /var/lib/prosody ]; then
- echo $"Restoring XMPP settings"
- restore_directory_from_usb /root/tempxmpp xmpp
- cp -r /root/tempxmpp/var/lib/prosody/* /var/lib/prosody
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 725
- fi
- rm -rf /root/tempxmpp
- service prosody restart
- chown -R prosody:prosody /var/lib/prosody/*
- fi
-}
-
-function restore_gnu_social {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'gnusocial' ]]; then
- return
- fi
- fi
- if [ $MICROBLOG_DOMAIN_NAME ]; then
- # stop the daemons
- cd /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs
- scripts/stopdaemons.sh
-
- restore_database gnusocial ${MICROBLOG_DOMAIN_NAME}
- if [ -d /root/tempgnusocial ]; then
- rm -rf /root/tempgnusocial
- fi
-
- # start the daemons
- cd /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs
- scripts/startdaemons.sh
- fi
-}
-
-function restore_rss_reader {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'ttrss' ]]; then
- return
- fi
- fi
- if [ $RSS_READER_DOMAIN_NAME ]; then
- restore_database ttrss ${RSS_READER_DOMAIN_NAME}
- if [ -d $USB_MOUNT/backup/ttrss ]; then
- chown -R www-data:www-data /etc/share/tt-rss
- if [ -d /root/tempttrss ]; then
- rm -rf /root/tempttrss
- fi
- fi
- fi
-}
-
-function restore_hubzilla {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'hubzilla' ]]; then
- return
- fi
- fi
- if [ $HUBZILLA_DOMAIN_NAME ]; then
- restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
- if [ -d $USB_MOUNT/backup/hubzilla ]; then
- if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
- mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
- fi
- chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
- chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
- if [ -d /root/temphubzilla ]; then
- rm -rf /root/temphubzilla
- fi
- fi
- fi
-}
-
-function restore_syncthing {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'syncthing' ]]; then
- return
- fi
- fi
-
- if [ -f /etc/systemd/system/syncthing.service ]; then
- systemctl stop syncthing
- systemctl stop cron
- fi
-
- if [ -d $USB_MOUNT/backup/syncthingconfig ]; then
- echo $"Restoring syncthing configuration"
- restore_directory_from_usb /root/tempsyncthingconfig syncthingconfig
- cp -r /root/tempsyncthingconfig/* /
- if [ ! "$?" = "0" ]; then
- unmount_drive
- systemctl start syncthing
- systemctl start cron
- exit 6833
- fi
- rm -rf /root/tempsyncthingconfig
- fi
-
- if [ -d $USB_MOUNT/backup/syncthingshared ]; then
- echo $"Restoring syncthing shared files"
- restore_directory_from_usb /root/tempsyncthingshared syncthingshared
- cp -r /root/tempsyncthingshared/* /
- if [ ! "$?" = "0" ]; then
- unmount_drive
- systemctl start syncthing
- systemctl start cron
- exit 37904
- fi
- rm -rf /root/tempsyncthingshared
- fi
-
- if [ -d $USB_MOUNT/backup/syncthing ]; then
- for d in $USB_MOUNT/backup/syncthing/*/ ; do
- USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
- if [ ! -d /home/$USERNAME ]; then
- ${PROJECT_NAME}-adduser $USERNAME
- fi
- echo $"Restoring syncthing files for $USERNAME"
- restore_directory_from_usb /root/tempsyncthing syncthing/$USERNAME
- cp -r /root/tempsyncthing/home/$USERNAME/Sync /home/$USERNAME/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempsyncthing
- unmount_drive
- systemctl start syncthing
- systemctl start cron
- exit 68438
- fi
- rm -rf /root/tempsyncthing
-
- # restore device IDs from config settings
- if [ -f /home/$USERNAME/.config/syncthing/.syncthing-server-id ]; then
- cp /home/$USERNAME/.config/syncthing/.syncthing-server-id /home/$USERNAME/.syncthing-server-id
- chown $USERNAME:$USERNAME /home/$USERNAME/.syncthing-server-id
- fi
- if [ -f /home/$USERNAME/.config/syncthing/.syncthingids ]; then
- cp /home/$USERNAME/.config/syncthing/.syncthingids /home/$USERNAME/.syncthingids
- chown $USERNAME:$USERNAME /home/$USERNAME/.syncthingids
- fi
- fi
- done
- fi
-
- if [ -f /etc/systemd/system/syncthing.service ]; then
- systemctl start syncthing
- systemctl start cron
- fi
-}
-
-function restore_mediagoblin {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'mediagoblin' ]]; then
- return
- fi
- fi
- if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
- return
- fi
-
- if [ -d $USB_MOUNT/backup/mediagoblin ]; then
- restore_directory_from_usb /root/tempmediagoblin mediagoblin
- cp -r /root/tempmediagoblin/* /
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 67843
- fi
- rm -rf /root/tempmediagoblin
- chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
- fi
-}
-
-function restore_gogs {
- export GVM_ROOT=$GVM_HOME
- if [ -d $GVM_ROOT/bin ]; then
- cd $GVM_ROOT/bin
- [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
- gvm use go${GO_VERSION} --default
- systemctl set-environment GOPATH=$GOPATH
- fi
-
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'gogs' ]]; then
- return
- fi
- fi
- if [ ${#GIT_DOMAIN_NAME} -gt 2 ]; then
- restore_database gogs ${GIT_DOMAIN_NAME}
- if [ -d $USB_MOUNT/backup/gogs ]; then
- echo $"Restoring Gogs settings"
- if [ ! -d $GOPATH/src/github.com/gogits/gogs/custom ]; then
- mkdir -p $GOPATH/src/github.com/gogits/gogs/custom
- fi
- cp -r /root/tempgogs/$GOPATH/src/github.com/gogits/gogs/custom/* $GOPATH/src/github.com/gogits/gogs/custom
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 981
- fi
- echo $"Restoring Gogs repos"
- restore_directory_from_usb /root/tempgogsrepos gogsrepos
- cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 67574
- fi
- echo $"Restoring Gogs authorized_keys"
- restore_directory_from_usb /root/tempgogsssh gogsssh
- if [ ! -d /home/git/.ssh ]; then
- mkdir /home/git/.ssh
- fi
- cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 8463
- fi
- rm -rf /root/tempgogs
- rm -rf /root/tempgogsrepos
- rm -rf /root/tempgogsssh
- chown -R git:git /home/git
- fi
- fi
-}
-
-function restore_wiki {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'wiki' ]]; then
- return
- fi
- fi
- if [ $WIKI_DOMAIN_NAME ]; then
- echo $"Restoring Wiki installation ${WIKI_DOMAIN_NAME}"
- restore_directory_from_usb /root/tempwiki wiki
- cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 868
- fi
- restore_directory_from_usb /root/tempwiki2 wiki2
- cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 869
- fi
- rm -rf /root/tempwiki
- rm -rf /root/tempwiki2
- chown -R www-data:www-data /var/lib/dokuwiki/*
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
- sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
- fi
- if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
- ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
- ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
- fi
- fi
-}
-
-function restore_blog {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'blog' ]]; then
- return
- fi
- fi
- if [ $FULLBLOG_DOMAIN_NAME ]; then
- echo $"Restoring blog installation"
- restore_directory_from_usb /root/tempblog blog
- rm -rf /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
- cp -r /root/tempblog/var/www/${FULLBLOG_DOMAIN_NAME}/htdocs /var/www/${FULLBLOG_DOMAIN_NAME}/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 593
- fi
- rm -rf /root/tempblog
- if [ ! -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content ]; then
- echo $"No content directory found after restoring blog"
- unmount_drive
- exit 287
- fi
- chown -R www-data:www-data /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.bundle.crt ]; then
- sed -i "s|${FULLBLOG_DOMAIN_NAME}.crt|${FULLBLOG_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${FULLBLOG_DOMAIN_NAME}
- fi
- for d in /home/*/ ; do
- USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
- if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
- mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
- fi
- fi
- done
- if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then
- ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key
- ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem
- fi
- fi
-}
-
-function restore_cjdns {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'cjdns' ]]; then
- return
- fi
- fi
- if [ -d $USB_MOUNT/backup/cjdns ]; then
- echo $"Restoring cjdns installation"
- restore_directory_from_usb /root/tempcjdns cjdns
- rm -rf /etc/cjdns
- cp -r /root/tempcjdns/etc/cjdns /etc/
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 8472
- fi
- rm -rf /root/tempcjdns
+ rm -rf $temp_restore_dir
fi
}
@@ -1150,106 +684,28 @@ function restore_email {
if [ -d $USB_MOUNT/backup/mail ]; then
for d in $USB_MOUNT/backup/mail/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring emails for $USERNAME"
- restore_directory_from_usb /root/tempmail mail/$USERNAME
+ temp_restore_dir=/root/tempmail
+ restore_directory_from_usb $temp_restore_dir mail/$USERNAME
if [ ! -d /home/$USERNAME/Maildir ]; then
mkdir /home/$USERNAME/Maildir
fi
- tar -xzvf /root/tempmail/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
+ tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
if [ ! "$?" = "0" ]; then
- unmount_drive
+ set_user_permissions
+ backup_unmount_drive
exit 927
fi
- rm -rf /root/tempmail
+ rm -rf $temp_restore_dir
fi
done
fi
}
-function restore_dlna {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'dlna' ]]; then
- return
- fi
- fi
- if [ -d /var/cache/minidlna ]; then
- if [ -d $USB_MOUNT/backup/dlna ]; then
- echo $"Restoring DLNA cache"
- restore_directory_from_usb /root/tempdlna dlna
- cp -r /root/tempdlna/var/cache/minidlna/* /var/cache/minidlna/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempdlna
- unmount_drive
- exit 982
- fi
- rm -rf /root/tempdlna
- fi
- fi
-}
-
-function restore_voip {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'voip' ]]; then
- return
- fi
- fi
- if [ -d $USB_MOUNT/backup/voip ]; then
- echo $"Restoring VoIP settings"
- restore_directory_from_usb /root/tempvoip voip
- cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempvoip
- unmount_drive
- exit 3679
- fi
- cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempvoip
- unmount_drive
- exit 3679
- fi
- cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempvoip
- unmount_drive
- exit 276
- fi
- rm -rf /root/tempvoip
- cp /etc/ssl/certs/mumble* /var/lib/mumble-server
- cp /etc/ssl/private/mumble* /var/lib/mumble-server
- chown -R mumble-server:mumble-server /var/lib/mumble-server
- service sipwitch restart
- service mumble-server restart
- fi
-}
-
-function restore_tox {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'tox' ]]; then
- return
- fi
- fi
- if [ -d $USB_MOUNT/backup/tox ]; then
- echo $"Restoring Tox node settings"
- restore_directory_from_usb / tox
- if [ ! "$?" = "0" ]; then
- unmount_drive
- exit 6393
- fi
- cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
- systemctl restart tox-bootstrapd.service
- if [ ! "$?" = "0" ]; then
- systemctl status tox-bootstrapd.service
- unmount_drive
- exit 59369
- fi
- fi
-}
-
function get_restore_app {
if [ ${1} ]; then
if [ ! -d /home/${1} ]; then
@@ -1260,13 +716,13 @@ function get_restore_app {
}
get_restore_app ${2}
-mount_drive ${1} ${2}
+backup_mount_drive ${1} ${ADMIN_USERNAME} ${2}
check_backup_exists
check_admin_user
copy_gpg_keys
restore_configfiles
same_admin_user
-update_domains
+restore_passwordstore
restore_mariadb
restore_letsencrypt
restore_tor
@@ -1275,7 +731,6 @@ restore_gpg
restore_procmail
restore_spamassassin
restore_admin_readme
-restore_ipfs
restore_user_ssh_keys
restore_user_config
restore_user_monkeysphere
@@ -1284,22 +739,13 @@ restore_user_local
restore_certs
restore_personal_settings
restore_mailing_list
-restore_xmpp
-restore_gnu_social
-restore_hubzilla
-restore_rss_reader
-restore_syncthing
-restore_mediagoblin
-restore_gogs
-restore_wiki
-restore_blog
-restore_cjdns
restore_email
-restore_dlna
-restore_voip
-restore_tox
-unmount_drive
+restore_apps local $RESTORE_APP
+set_user_permissions
+update_default_domain
+backup_unmount_drive
+# ensure that all TLS certificates are pinned
#${PROJECT_NAME}-pin-cert all
echo $"Restore from USB drive is complete. You can now unplug it."
diff --git a/src/freedombone-restore-remote b/src/freedombone-restore-remote
index 0b368646..04e7ae22 100755
--- a/src/freedombone-restore-remote
+++ b/src/freedombone-restore-remote
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,12 +30,18 @@
PROJECT_NAME='freedombone'
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
-CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
BACKUP_EXTRA_DIRECTORIES=/root/backup-extra-dirs.csv
export TEXTDOMAIN=${PROJECT_NAME}-restore-remote
export TEXTDOMAINDIR="/usr/share/locale"
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
SERVER_NAME=$1
# whether to restore everything or just a specific application
@@ -45,7 +51,7 @@ if [ ${2} ]; then
RESTORE_APP=${2}
fi
-ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | -nawk -F ':' '{print $2}')
+ADMIN_USERNAME=$(get_completion_param "Admin user")
ADMIN_EMAIL_ADDRESS=${ADMIN_USERNAME}@${HOSTNAME}
# Temporary location for data to be backed up to other servers
@@ -87,103 +93,14 @@ else
echo "$NOW Restored encrypted data from $REMOTE_SERVER" >> /var/log/remotebackups.log
fi
-# get the version of Go being used
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
- GO_VERSION=$(cat /usr/local/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
-else
- GO_VERSION=$(cat /usr/bin/${PROJECT_NAME} | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
-fi
-
# MariaDB password
-DATABASE_PASSWORD=$(cat /root/dbpass)
-
-function set_obnam_client_name {
- # obnam can backup multiple machines with different domain names to
- # a repository. To be able to restore directories from different
- # machines we need to enforce a single client name for all backups
- echo '[config]' > /etc/obnam.conf
- echo "client-name = ${PROJECT_NAME}" >> /etc/obnam.conf
-}
-
-function restore_directory_from_friend {
- if [ ! -d ${1} ]; then
- mkdir ${1}
- fi
- set_obnam_client_name
- obnam restore -r $SERVER_DIRECTORY/backup/${2} --to ${1}
-}
+DATABASE_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
function copy_gpg_keys {
echo $"Copying GPG keys from admin user to root"
cp -r /home/$ADMIN_USERNAME/.gnupg /root
}
-function restore_database_from_friend {
- DATABASE_PASSWORD=
- RESTORE_SUBDIR="root"
-
- if [ -d $SERVER_DIRECTORY/backup/${1} ]; then
- echo $"Restoring ${1} database"
- restore_directory_from_friend /root/temp${1}data ${1}data
- if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
- echo $"Unable to restore ${1} database"
- rm -rf /root/temp${1}data
- exit 503
- fi
- mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
- if [ ! "$?" = "0" ]; then
- echo "$mysqlsuccess"
- exit 964
- fi
- shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*
- rm -rf /root/temp${1}data
- echo $"Restoring ${1} installation"
- restore_directory_from_friend /root/temp${1} ${1}
- RESTORE_SUBDIR="var"
- if [ ${1} ]; then
-
- # special handling of ttrss
- if [[ ${2} == "ttrss" ]]; then
- if [ -d /etc/share/tt-rss ]; then
- rm -rf /etc/share/tt-rss
- mv /root/temp${1}/etc/share/tt-rss /etc/share/
- if [ ! "$?" = "0" ]; then
- exit 639
- fi
- if [ -d /etc/letsencrypt/live/${2} ]; then
- ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
- ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
- else
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
- sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
- fi
- fi
- fi
- fi
-
- if [ -d /var/www/${2}/htdocs ]; then
- if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
- rm -rf /var/www/${2}/htdocs
- mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
- if [ ! "$?" = "0" ]; then
- exit 683
- fi
- if [ -d /etc/letsencrypt/live/${2} ]; then
- ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
- ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
- else
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
- sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
- fi
- fi
- fi
- fi
- fi
- fi
-}
-
function restore_configfiles {
if [[ $RESTORE_APP != 'all' ]]; then
if [[ $RESTORE_APP != 'configfiles' ]]; then
@@ -192,41 +109,61 @@ function restore_configfiles {
fi
if [ -d $SERVER_DIRECTORY/backup/config ]; then
echo $"Restoring configuration files"
- restore_directory_from_friend /root/tempconfig configfiles
+ temp_restore_dir=/root/tempconfig
+ restore_directory_from_friend $temp_restore_dir configfiles
- cp -f /root/tempconfig/root/${PROJECT_NAME}.cfg $CONFIG_FILE
- if [ ! "$?" = "0" ]; then
- unmount_drive
- rm -rf /root/tempconfig
- exit 5372
- fi
- if [ -f $CONFIG_FILE ]; then
- # install according to the config file
- freedombone -c $CONFIG_FILE
+ if [ -f $temp_restore_dir/root/.nostore ]; then
+ if [ ! -f /root/.nostore ]; then
+ touch /root/.nostore
+ fi
+ else
+ if [ -f /root/.nostore ]; then
+ rm /root/.nostore
+ fi
fi
- cp -f /root/tempconfig/root/${PROJECT_NAME}-completed.txt $COMPLETION_FILE
- if [ ! "$?" = "0" ]; then
- unmount_drive
- rm -rf /root/tempconfig
- exit 7252
+ if [ -f $temp_restore_dir$NODEJS_INSTALLED_APPS_FILE ]; then
+ cp -f $temp_restore_dir$NODEJS_INSTALLED_APPS_FILE $NODEJS_INSTALLED_APPS_FILE
fi
- if [ -f /root/tempconfig${BACKUP_EXTRA_DIRECTORIES} ]; then
- cp -f /root/tempconfig${BACKUP_EXTRA_DIRECTORIES} ${BACKUP_EXTRA_DIRECTORIES}
+ if [ -f $temp_restore_dir/root/${PROJECT_NAME}.cfg ]; then
+ cp -f $temp_restore_dir/root/${PROJECT_NAME}.cfg $CONFIGURATION_FILE
if [ ! "$?" = "0" ]; then
unmount_drive
- rm -rf /root/tempconfig
+ rm -rf $temp_restore_dir
+ exit 5372
+ fi
+ fi
+
+ if [ -f $CONFIGURATION_FILE ]; then
+ # install according to the config file
+ freedombone -c $CONFIGURATION_FILE
+ fi
+
+ if [ -f $temp_restore_dir/root/${PROJECT_NAME}-completed.txt ]; then
+ cp -f $temp_restore_dir/root/${PROJECT_NAME}-completed.txt $COMPLETION_FILE
+ if [ ! "$?" = "0" ]; then
+ unmount_drive
+ rm -rf $temp_restore_dir
+ exit 7252
+ fi
+ fi
+
+ if [ -f ${temp_restore_dir}${BACKUP_EXTRA_DIRECTORIES} ]; then
+ cp -f ${temp_restore_dir}${BACKUP_EXTRA_DIRECTORIES} ${BACKUP_EXTRA_DIRECTORIES}
+ if [ ! "$?" = "0" ]; then
+ unmount_drive
+ rm -rf $temp_restore_dir
exit 62121
fi
fi
# restore nginx password hashes
- if [ -f /root/tempconfig/root/htpasswd ]; then
- cp -f /root/tempconfig/root/htpasswd /etc/nginx/.htpasswd
+ if [ -f $temp_restore_dir/root/htpasswd ]; then
+ cp -f $temp_restore_dir/root/htpasswd /etc/nginx/.htpasswd
fi
- rm -rf /root/tempconfig
+ rm -rf $temp_restore_dir
fi
}
@@ -236,21 +173,25 @@ function restore_mariadb {
return
fi
fi
+
+ if [[ $(is_completed install_mariadb) == "0" ]]; then
+ function_check install_mariadb
+ install_mariadb
+ fi
+
if [ -d $SERVER_DIRECTORY/backup/mariadb ]; then
echo $"Restoring MariaDB settings"
- restore_directory_from_friend /root/tempmariadb mariadb
- echo $"Get the MariaDB password from the backup"
- if [ ! -f /root/tempmariadb/root/tempmariadb/db ]; then
- echo $"MariaDB password file not found"
- exit 495
- fi
- BACKUP_MARIADB_PASSWORD=$(cat /root/tempmariadb/root/tempmariadb/db)
- if [[ "$BACKUP_MARIADB_PASSWORD" != "$DATABASE_PASSWORD" ]]; then
+ temp_restore_dir=/root/tempmariadb
+ restore_directory_from_friend $temp_restore_dir mariadb
+
+ echo $'Obtaining MariaDB password'
+ db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
+ if [ ${#db_pass} -gt 0 ]; then
echo $"Restore the MariaDB user table"
- mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
+ mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
if [ ! "$?" = "0" ]; then
echo $"Try again using the password obtained from backup"
- mysqlsuccess=$(mysql -u root --password="$BACKUP_MARIADB_PASSWORD" mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
+ mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
fi
if [ ! "$?" = "0" ]; then
echo "$mysqlsuccess"
@@ -259,14 +200,10 @@ function restore_mariadb {
echo $"Restarting database"
service mysql restart
echo $"Change the MariaDB password to the backup version"
- DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD
+ DATABASE_PASSWORD="$db_pass"
+ ${PROJECT_NAME}-pass -u root -a mariadb -p "$DATABASE_PASSWORD"
fi
- shred -zu /root/tempmariadb/root/tempmariadb/db
- rm -rf /root/tempmariadb
-
- # Change database password file
- echo "$DATABASE_PASSWORD" > /root/dbpass
- chmod 600 /root/dbpass
+ rm -rf ${temp_restore_dir}
fi
}
@@ -282,6 +219,18 @@ function restore_letsencrypt {
fi
}
+function restore_passwordstore {
+ if [[ $RESTORE_APP != 'all' ]]; then
+ if [[ $RESTORE_APP != 'passwords' ]]; then
+ return
+ fi
+ fi
+ if [ -d $SERVER_DIRECTORY/backup/passwordstore ]; then
+ echo $"Restoring password store"
+ restore_directory_from_friend / passwordstore
+ fi
+}
+
function restore_tor {
if [[ $RESTORE_APP != 'all' ]]; then
if [[ $RESTORE_APP != 'tor' ]]; then
@@ -302,24 +251,25 @@ function restore_mutt_settings {
fi
for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/mutt/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring Mutt settings for $USERNAME"
- restore_directory_from_friend /root/tempmutt mutt/$USERNAME
- if [ -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc ]; then
- cp -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
+ temp_restore_dir=/root/tempmutt
+ restore_directory_from_friend ${temp_restore_dir} mutt/$USERNAME
+ if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc ]; then
+ cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
fi
- if [ -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc ]; then
- cp -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
+ if [ -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc ]; then
+ cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
fi
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempmutt
+ rm -rf ${temp_restore_dir}
exit 276
fi
- rm -rf /root/tempmutt
+ rm -rf ${temp_restore_dir}
fi
fi
done
@@ -333,19 +283,20 @@ function restore_gpg {
fi
for d in $SERVER_DIRECTORY/backup/gnupg/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/gnupg/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring gnupg settings for $USERNAME"
- restore_directory_from_friend /root/tempgnupg gnupg/$USERNAME
- cp -r /root/tempgnupg/home/$USERNAME/.gnupg /home/$USERNAME/
+ temp_restore_dir=/root/tempgnupg
+ restore_directory_from_friend ${temp_restore_dir} gnupg/$USERNAME
+ cp -r ${temp_restore_dir}/home/$USERNAME/.gnupg /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempgnupg
+ rm -rf ${temp_restore_dir}
exit 276
fi
- rm -rf /root/tempgnupg
+ rm -rf ${temp_restore_dir}
if [[ "$USERNAME" == "$ADMIN_USERNAME" ]]; then
cp -r /home/$USERNAME/.gnupg /root
if [ ! "$?" = "0" ]; then
@@ -365,19 +316,20 @@ function restore_procmail {
fi
for d in $SERVER_DIRECTORY/backup/procmail/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/procmail/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring procmail settings for $USERNAME"
- restore_directory_from_friend /root/tempprocmail procmail/$USERNAME
- cp -f /root/tempprocmail/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
+ temp_restore_dir=/root/tempprocmail
+ restore_directory_from_friend ${temp_restore_dir} procmail/$USERNAME
+ cp -f ${temp_restore_dir}/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempprocmail
+ rm -rf ${temp_restore_dir}
exit 276
fi
- rm -rf /root/tempprocmail
+ rm -rf ${temp_restore_dir}
fi
fi
done
@@ -391,19 +343,20 @@ function restore_spamassassin {
fi
for d in $SERVER_DIRECTORY/backup/spamassassin/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/spamassassin/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring spamassassin settings for $USERNAME"
- restore_directory_from_friend /root/tempspamassassin spamassassin/$USERNAME
- cp -rf /root/tempspamassassin/home/$USERNAME/.spamassassin /home/$USERNAME/
+ temp_restore_dir=/root/tempspamassassin
+ restore_directory_from_friend $temp_restore_dir spamassassin/$USERNAME
+ cp -rf $temp_restore_dir/home/$USERNAME/.spamassassin /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempspamassassin
+ rm -rf $temp_restore_dir
exit 276
fi
- rm -rf /root/tempspamassassin
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -417,31 +370,14 @@ function restore_admin_readme {
fi
if [ -d $SERVER_DIRECTORY/backup/readme ]; then
echo $"Restoring README"
- restore_directory_from_friend /root/tempreadme readme
- cp -f /root/tempreadme/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
+ temp_restore_dir=/root/tempreadme
+ restore_directory_from_friend $temp_restore_dir readme
+ cp -f $temp_restore_dir/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempreadme
+ rm -rf $temp_restore_dir
exit 276
fi
- rm -rf /root/tempreadme
- fi
-}
-
-function restore_ipfs {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'ipfs' ]]; then
- return
- fi
- fi
- if [ -d $SERVER_DIRECTORY/backup/ipfs ]; then
- echo $"Restoring IPFS"
- restore_directory_from_friend /root/tempipfs ipfs
- cp -rf /root/tempipfs/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempipfs
- exit 276
- fi
- rm -rf /root/tempipfs
+ rm -rf $temp_restore_dir
fi
}
@@ -453,19 +389,20 @@ function restore_ssh_keys {
fi
for d in $SERVER_DIRECTORY/backup/ssh/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/ssh/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring ssh keys for $USERNAME"
- restore_directory_from_friend /root/tempssh ssh/$USERNAME
- cp -r /root/tempssh/home/$USERNAME/.ssh /home/$USERNAME/
+ temp_restore_dir=/root/tempssh
+ restore_directory_from_friend $temp_restore_dir ssh/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.ssh /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempssh
+ rm -rf $temp_restore_dir
exit 664
fi
- rm -rf /root/tempssh
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -479,19 +416,20 @@ function restore_user_config {
fi
for d in $SERVER_DIRECTORY/backup/config/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/config/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring config files for $USERNAME"
- restore_directory_from_friend /root/tempconfig config/$USERNAME
- cp -r /root/tempconfig/home/$USERNAME/.config /home/$USERNAME/
+ temp_restore_dir=/root/tempconfig
+ restore_directory_from_friend $temp_restore_dir config/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.config /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempconfig
+ rm -rf $temp_restore_dir
exit 664
fi
- rm -rf /root/tempconfig
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -517,27 +455,26 @@ function restore_user_monkeysphere {
fi
for d in $SERVER_DIRECTORY/backup/monkeysphere/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/monkeysphere/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring monkeysphere ids for $USERNAME"
- restore_directory_from_friend /root/tempmonkeysphere monkeysphere/$USERNAME
- cp -r /root/tempmonkeysphere/home/$USERNAME/.monkeysphere /home/$USERNAME/
+ temp_restore_dir=/root/tempmonkeysphere
+ restore_directory_from_friend $temp_restore_dir monkeysphere/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.monkeysphere /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempmonkeysphere
+ rm -rf $temp_restore_dir
exit 664
fi
- rm -rf /root/tempmonkeysphere
+ rm -rf $temp_restore_dir
fi
fi
# The admin user is the identity certifier
MY_EMAIL_ADDRESS="${ADMIN_USERNAME}@${HOSTNAME}"
- if grep -q "MY_EMAIL_ADDRESS" $CONFIG_FILE; then
- MY_EMAIL_ADDRESS=$(grep "MY_EMAIL_ADDRESS" $CONFIG_FILE | awk -F '=' '{print $2}')
- fi
+ read_config_param MY_EMAIL_ADDRESS
MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$ADMIN_USERNAME" "$MY_EMAIL_ADDRESS")
fpr=$(gpg --with-colons --fingerprint $MY_GPG_PUBLIC_KEY_ID | grep fpr | head -n 1 | awk -F ':' '{print $10}')
monkeysphere-authentication add-identity-certifier $fpr
@@ -553,19 +490,20 @@ function restore_user_fin {
fi
for d in $SERVER_DIRECTORY/backup/fin/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/fin/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring fin files for $USERNAME"
- restore_directory_from_friend /root/tempfin fin/$USERNAME
- cp -r /root/tempfin/home/$USERNAME/.fin /home/$USERNAME/
+ temp_restore_dir=/root/tempfin
+ restore_directory_from_friend $temp_restore_dir fin/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.fin /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/tempfin
+ rm -rf $temp_restore_dir
exit 664
fi
- rm -rf /root/tempfin
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -579,19 +517,20 @@ function restore_user_local {
fi
for d in $SERVER_DIRECTORY/backup/local/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/local/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring local files for $USERNAME"
- restore_directory_from_friend /root/templocal local/$USERNAME
- cp -r /root/templocal/home/$USERNAME/.local /home/$USERNAME/
+ temp_restore_dir=/root/templocal
+ restore_directory_from_friend $temp_restore_dir local/$USERNAME
+ cp -r $temp_restore_dir/home/$USERNAME/.local /home/$USERNAME/
if [ ! "$?" = "0" ]; then
- rm -rf /root/templocal
+ rm -rf $temp_restore_dir
exit 664
fi
- rm -rf /root/templocal
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -646,21 +585,22 @@ function restore_personal_settings {
fi
for d in $SERVER_DIRECTORY/backup/personal/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/personal/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring personal settings for $USERNAME"
- restore_directory_from_friend /root/temppersonal personal/$USERNAME
+ temp_restore_dir=/root/temppersonal
+ restore_directory_from_friend $temp_restore_dir personal/$USERNAME
if [ -d /home/$USERNAME/personal ]; then
rm -rf /home/$USERNAME/personal
fi
- mv /root/temppersonal/home/$USERNAME/personal /home/$USERNAME
+ mv $temp_restore_dir/home/$USERNAME/personal /home/$USERNAME
if [ ! "$?" = "0" ]; then
exit 184
fi
- rm -rf /root/temppersonal
+ rm -rf $temp_restore_dir
fi
fi
done
@@ -674,384 +614,13 @@ function restore_mailing_list {
fi
if [ -d /var/spool/mlmmj ]; then
echo $"Restoring public mailing list"
- restore_directory_from_friend /root/tempmailinglist mailinglist
- cp -r /root/tempmailinglist/root/spool/mlmmj/* /var/spool/mlmmj
+ temp_restore_dir=/root/tempmailinglist
+ restore_directory_from_friend $temp_restore_dir mailinglist
+ cp -r $temp_restore_dir/root/spool/mlmmj/* /var/spool/mlmmj
if [ ! "$?" = "0" ]; then
exit 526
fi
- rm -rf /root/tempmailinglist
- fi
-}
-
-function restore_xmpp {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'xmpp' ]]; then
- return
- fi
- fi
- if [ -d /var/lib/prosody ]; then
- echo $"Restoring XMPP settings"
- restore_directory_from_friend /root/tempxmpp xmpp
- cp -r /root/tempxmpp/var/lib/prosody/* /var/lib/prosody
- if [ ! "$?" = "0" ]; then
- exit 725
- fi
- rm -rf /root/tempxmpp
- service prosody restart
- chown -R prosody:prosody /var/lib/prosody/*
- fi
-}
-
-function restore_gnu_social {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'gnusocial' ]]; then
- return
- fi
- fi
- if grep -q "GNU Social domain" $COMPLETION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
-
- # stop the daemons
- cd /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs
- scripts/stopdaemons.sh
-
- restore_database_from_friend gnusocial ${MICROBLOG_DOMAIN_NAME}
- if [ -d /root/tempgnusocial ]; then
- rm -rf /root/tempgnusocial
- fi
-
- # start the daemons
- cd /var/www/${MICROBLOG_DOMAIN_NAME}/htdocs
- scripts/startdaemons.sh
- fi
-}
-
-function restore_rss_reader {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'ttrss' ]]; then
- return
- fi
- fi
- if grep -q "RSS reader domain" $COMPLETION_FILE; then
- RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "RSS reader domain" | awk -F ':' '{print $2}')
- restore_database_from_friend ttrss ${RSS_READER_DOMAIN_NAME}
- if [ -d $SERVER_DIRECTORY/backup/ttrss ]; then
- chown -R www-data:www-data /etc/share/tt-rss
- fi
- if [ -d /root/tempttrss ]; then
- rm -rf /root/tempttrss
- fi
- fi
-}
-
-function restore_hubzilla {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'hubzilla' ]]; then
- return
- fi
- fi
- if grep -q "Hubzilla domain" $COMPLETION_FILE; then
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
- restore_database_from_friend hubzilla ${HUBZILLA_DOMAIN_NAME}
- if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then
- if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
- mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
- fi
- chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
- chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
- fi
- if [ -d /root/temphubzilla ]; then
- rm -rf /root/temphubzilla
- fi
- fi
-}
-
-function restore_syncthing {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'syncthing' ]]; then
- return
- fi
- fi
-
- if [ -f /etc/systemd/system/syncthing.service ]; then
- systemctl stop syncthing
- systemctl stop cron
- fi
-
- if [ -d $SERVER_DIRECTORY/backup/syncthingconfig ]; then
- echo $"Restoring syncthing configuration"
- restore_directory_from_friend /root/tempsyncthingconfig syncthingconfig
- cp -r /root/tempsyncthingconfig/* /
- if [ ! "$?" = "0" ]; then
- unmount_drive
- systemctl start syncthing
- systemctl start cron
- exit 6833
- fi
- rm -rf /root/tempsyncthingconfig
- fi
-
- if [ -d $SERVER_DIRECTORY/backup/syncthingshared ]; then
- echo $"Restoring syncthing shared files"
- restore_directory_from_friend /root/tempsyncthingshared syncthingshared
- cp -r /root/tempsyncthingshared/* /
- if [ ! "$?" = "0" ]; then
- unmount_drive
- systemctl start syncthing
- systemctl start cron
- exit 37904
- fi
- rm -rf /root/tempsyncthingshared
- fi
-
- if [ -d $SERVER_DIRECTORY/backup/syncthing ]; then
- for d in $SERVER_DIRECTORY/backup/syncthing/*/ ; do
- USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
- if [ ! -d /home/$USERNAME ]; then
- ${PROJECT_NAME}-adduser $USERNAME
- fi
- echo $"Restoring syncthing files for $USERNAME"
- restore_directory_from_friend /root/tempsyncthing syncthing/$USERNAME
- cp -r /root/tempsyncthing/home/$USERNAME/Sync /home/$USERNAME/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempsyncthing
- unmount_drive
- systemctl start syncthing
- systemctl start cron
- exit 68438
- fi
- rm -rf /root/tempsyncthing
-
- # restore device IDs from config settings
- if [ -f /home/$USERNAME/.config/syncthing/.syncthing-server-id ]; then
- cp /home/$USERNAME/.config/syncthing/.syncthing-server-id /home/$USERNAME/.syncthing-server-id
- chown $USERNAME:$USERNAME /home/$USERNAME/.syncthing-server-id
- fi
- if [ -f /home/$USERNAME/.config/syncthing/.syncthingids ]; then
- cp /home/$USERNAME/.config/syncthing/.syncthingids /home/$USERNAME/.syncthingids
- chown $USERNAME:$USERNAME /home/$USERNAME/.syncthingids
- fi
- fi
- done
- fi
-
- if [ -f /etc/systemd/system/syncthing.service ]; then
- systemctl start syncthing
- systemctl start cron
- fi
-}
-
-function restore_mediagoblin {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'mediagoblin' ]]; then
- return
- fi
- fi
- if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
- MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
- if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
- echo $"Restoring Mediagoblin installation"
- restore_directory_from_friend /root/tempmediagoblin mediagoblin
- cp -r /root/tempmediagoblin/* /
- if [ ! "$?" = "0" ]; then
- exit 5626
- fi
- rm -rf /root/tempmediagoblin
- fi
- chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
- fi
-}
-
-function restore_gogs {
- export GVM_ROOT=$GVM_HOME
- if [ -d $GVM_ROOT/bin ]; then
- cd $GVM_ROOT/bin
- [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
- gvm use go${GO_VERSION} --default
- systemctl set-environment GOPATH=$GOPATH
- fi
-
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'gogs' ]]; then
- return
- fi
- fi
- if grep -q "Gogs domain" $COMPLETION_FILE; then
- GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
- restore_database_from_friend gogs $GIT_DOMAIN_NAME
- if [ -d $SERVER_DIRECTORY/backup/gogs ]; then
- if [ ! -d $GOPATH/src/github.com/gogits/gogs/custom ]; then
- mkdir -p $GOPATH/src/github.com/gogits/gogs/custom
- fi
- cp -r /root/tempgogs/$GOPATH/src/github.com/gogits/gogs/custom/* $GOPATH/src/github.com/gogits/gogs/custom/
- if [ ! "$?" = "0" ]; then
- exit 5885
- fi
- echo $"Restoring Gogs repos"
- restore_directory_from_friend /root/tempgogsrepos gogsrepos
- cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
- if [ ! "$?" = "0" ]; then
- exit 7649
- fi
- echo $"Restoring Gogs authorized_keys"
- restore_directory_from_friend /root/tempgogsssh gogsssh
- if [ ! -d /home/git/.ssh ]; then
- mkdir /home/git/.ssh
- fi
- cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
- if [ ! "$?" = "0" ]; then
- exit 74239
- fi
- rm -rf /root/tempgogs
- rm -rf /root/tempgogsrepos
- rm -rf /root/tempgogsssh
- chown -R git:git /home/git
- fi
- fi
-}
-
-function restore_wiki {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'wiki' ]]; then
- return
- fi
- fi
- if [ -d $SERVER_DIRECTORY/backup/wiki ]; then
- WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Wiki domain" | awk -F ':' '{print $2}')
- echo $"Restoring Wiki installation $WIKI_DOMAIN_NAME"
- restore_directory_from_friend /root/tempwiki wiki
- cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
- if [ ! "$?" = "0" ]; then
- exit 868
- fi
- restore_directory_from_friend /root/tempwiki2 wiki2
- cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
- if [ ! "$?" = "0" ]; then
- exit 869
- fi
- rm -rf /root/tempwiki
- rm -rf /root/tempwiki2
- chown -R www-data:www-data /var/lib/dokuwiki/*
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
- sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
- fi
- if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
- ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
- ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
- fi
- fi
-}
-
-function restore_blog {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'blog' ]]; then
- return
- fi
- fi
- if [ -d $SERVER_DIRECTORY/backup/blog ]; then
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
- echo $"Restoring blog installation $FULLBLOG_DOMAIN_NAME"
- mkdir /root/tempblog
- restore_directory_from_friend /root/tempblog blog
- rm -rf /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
- cp -r /root/tempblog/var/www/${FULLBLOG_DOMAIN_NAME}/htdocs /var/www/${FULLBLOG_DOMAIN_NAME}/
- if [ ! "$?" = "0" ]; then
- exit 593
- fi
- rm -rf /root/tempblog
- if [ ! -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content ]; then
- echo $"No content directory found after restoring blog"
- exit 287
- fi
- # Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.bundle.crt ]; then
- sed -i "s|${FULLBLOG_DOMAIN_NAME}.crt|${FULLBLOG_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${FULLBLOG_DOMAIN_NAME}
- fi
- for d in /home/*/ ; do
- USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
- if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
- mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
- fi
- done
- if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then
- ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key
- ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem
- fi
- fi
-}
-
-function restore_cjdns {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'cjdns' ]]; then
- return
- fi
- fi
- if [ -d $SERVER_DIRECTORY/backup/cjdns ]; then
- echo $"Restoring cjdns installation"
- restore_directory_from_friend /root/tempcjdns cjdns
- rm -rf /etc/cjdns
- cp -r /root/tempcjdns/etc/cjdns /etc/
- if [ ! "$?" = "0" ]; then
- exit 7438
- fi
- rm -rf /root/tempcjdns
- fi
-}
-
-function restore_voip {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'voip' ]]; then
- return
- fi
- fi
- if [ -d $SERVER_DIRECTORY/backup/voip ]; then
- echo $"Restoring VoIP settings"
- restore_directory_from_friend /root/tempvoip voip
- cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempvoip
- exit 7823
- fi
- cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempvoip
- exit 7823
- fi
- cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
- if [ ! "$?" = "0" ]; then
- rm -rf /root/tempvoip
- exit 276
- fi
- rm -rf /root/tempvoip
- cp /etc/ssl/certs/mumble* /var/lib/mumble-server
- cp /etc/ssl/private/mumble* /var/lib/mumble-server
- chown -R mumble-server:mumble-server /var/lib/mumble-server
- service sipwitch restart
- service mumble-server restart
- fi
-}
-
-function restore_tox {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'tox' ]]; then
- return
- fi
- fi
- if [ -d $SERVER_DIRECTORY/backup/tox ]; then
- echo $"Restoring Tox node settings"
- restore_directory_from_friend / tox
- if [ ! "$?" = "0" ]; then
- exit 93653
- fi
- cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
- systemctl restart tox-bootstrapd.service
- if [ ! "$?" = "0" ]; then
- systemctl status tox-bootstrapd.service
- exit 59369
- fi
+ rm -rf $temp_restore_dir
fi
}
@@ -1063,51 +632,34 @@ function restore_email {
fi
for d in $SERVER_DIRECTORY/backup/mail/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then
if [ ! -d /home/$USERNAME ]; then
${PROJECT_NAME}-adduser $USERNAME
fi
echo $"Restoring emails for $USERNAME"
- restore_directory_from_friend /root/tempmail mail/$USERNAME
+ temp_restore_dir=/root/tempmail
+ restore_directory_from_friend $temp_restore_dir mail/$USERNAME
if [ ! -d /home/$USERNAME/Maildir ]; then
mkdir /home/$USERNAME/Maildir
fi
- tar -xzvf /root/tempmail/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
+ tar -xzvf $temp_restore_dir/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
if [ ! "$?" = "0" ]; then
exit 927
fi
- rm -rf /root/tempmail
+ rm -rf $temp_restore_dir
fi
fi
done
}
-function restore_dlna {
- if [[ $RESTORE_APP != 'all' ]]; then
- if [[ $RESTORE_APP != 'dlna' ]]; then
- return
- fi
- fi
- if [ -d /var/cache/minidlna ]; then
- if [ -d $SERVER_DIRECTORY/backup/dlna ]; then
- echo $"Restoring DLNA cache"
- restore_directory_from_friend /root/tempdlna dlna
- cp -r /root/tempdlna/var/cache/minidlna/* /var/cache/minidlna/
- if [ ! "$?" = "0" ]; then
- exit 982
- fi
- rm -rf /root/tempdlna
- fi
- fi
-}
-
# Social key management
# Recover any key fragments and reconstruct the gpg key
${PROJECT_NAME}-recoverkey -u ${ADMIN_USERNAME} -l $BACKUP_LIST
copy_gpg_keys
restore_configfiles
+restore_passwordstore
restore_mariadb
restore_letsencrypt
restore_mutt_settings
@@ -1115,7 +667,6 @@ restore_gpg
restore_procmail
restore_spamassassin
restore_admin_readme
-restore_ipfs
restore_ssh_keys
restore_user_config
restore_user_monkeysphere
@@ -1124,21 +675,12 @@ restore_user_local
restore_certs
restore_personal_settings
restore_mailing_list
-restore_xmpp
-restore_gnu_social
-restore_hubzilla
-restore_rss_reader
-restore_syncthing
-restore_mediagoblin
-restore_gogs
-restore_wiki
-restore_blog
-restore_cjdns
-restore_voip
-restore_tox
restore_email
-restore_dlna
+restore_apps remote
+set_user_permissions
+update_default_domain
+# ensure that all TLS certificates are pinned
#${PROJECT_NAME}-pin-cert all
echo $"*** Remote restore was successful ***"
diff --git a/src/freedombone-rmemail b/src/freedombone-rmemail
index 4830af47..bbb736b1 100755
--- a/src/freedombone-rmemail
+++ b/src/freedombone-rmemail
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-rmlist b/src/freedombone-rmlist
index 1577a1d0..6ede960a 100755
--- a/src/freedombone-rmlist
+++ b/src/freedombone-rmlist
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-rmsipuser b/src/freedombone-rmsipuser
index befde7ad..cb5d9d89 100755
--- a/src/freedombone-rmsipuser
+++ b/src/freedombone-rmsipuser
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-rmuser b/src/freedombone-rmuser
index 4e4b54c6..54fd8e30 100755
--- a/src/freedombone-rmuser
+++ b/src/freedombone-rmuser
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -34,112 +34,114 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-rmuser
export TEXTDOMAINDIR="/usr/share/locale"
-MY_USERNAME=$1
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
-if [ ! $MY_USERNAME ]; then
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+
+read_config_param MY_USERNAME
+
+REMOVE_USERNAME=$1
+REMOVE_OPTIONS="$2"
+
+if [ ! $REMOVE_USERNAME ]; then
echo $'Please specify a username to remove'
exit 1
fi
-if [[ $MY_USERNAME == 'git' || $MY_USERNAME == 'mirrors' ]]; then
- echo $'Cannot remove reserved users'
+if [[ "$REMOVE_USERNAME" == "$MY_USERNAME" ]]; then
+ echo $'You cannot remove the administrator user'
exit 2
fi
-if [ ! -d /home/$MY_USERNAME ]; then
- echo $"Home directory does not exist for $MY_USERNAME"
+if [[ $(is_valid_user "$REMOVE_USERNAME") == "0" ]]; then
+ echo $'Cannot remove reserved users'
exit 3
fi
+if [ ! -d /home/$REMOVE_USERNAME ]; then
+ echo $"Home directory does not exist for $REMOVE_USERNAME"
+ exit 4
+fi
+
if [ ! -f $COMPLETION_FILE ]; then
echo $"$COMPLETION_FILE not found"
- exit 4
+ exit 5
fi
if ! grep -q "Admin user" $COMPLETION_FILE; then
echo $"No admin user specified in $COMPLETION_FILE"
- exit 5
-fi
-
-ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
-if [ ! $ADMIN_USERNAME ]; then
- echo $"No admin username specified in $COMPLETION_FILE"
exit 6
fi
-if [[ $MY_USERNAME == $ADMIN_USERNAME ]]; then
- echo $"The administrator user cannot be removed"
+ADMIN_USERNAME=$(get_completion_param "Admin user")
+if [ ! $ADMIN_USERNAME ]; then
+ echo $"No admin username specified in $COMPLETION_FILE"
exit 7
fi
-echo $'>>> REMOVE USER <<<'
-read -p $"Do you really wish to remove the user '$MY_USERNAME' (y/n) ?" yn
-if [[ $yn != 'y' && $yn != 'Y' && $yn != 'yes' && $yn != 'Yes' && $yn != 'YES' ]]; then
- echo $"User $MY_USERNAME was not removed"
+if [[ $REMOVE_USERNAME == $ADMIN_USERNAME ]]; then
+ echo $"The administrator user cannot be removed"
exit 8
fi
-if grep -q "install_xmpp" $COMPLETION_FILE; then
- ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
-fi
-
-if grep -q "Blog domain" $COMPLETION_FILE; then
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
- if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
- rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- fi
-fi
-
-if grep -q "install_sip" $COMPLETION_FILE; then
- ${PROJECT_NAME}-rmsipuser $MY_USERNAME
-fi
-
-if grep -q "GNU Social domain" $COMPLETION_FILE; then
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
- if [ -d /var/www/$MICROBLOG_DOMAIN_NAME ]; then
- cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
- php scripts/deleteprofile.php -n $MY_USERNAME -y
- echo $'Removed GNU Social user'
+if [[ "$REMOVE_OPTIONS" != '-f' && "$REMOVE_OPTIONS" != '-y' && "$REMOVE_OPTIONS" != '--force' ]]; then
+ echo $'>>> REMOVE USER <<<'
+ read -p $"Do you really wish to remove the user '$REMOVE_USERNAME' (y/n) ?" yn
+ if [[ $yn != 'y' && $yn != 'Y' && $yn != 'yes' && $yn != 'Yes' && $yn != 'YES' ]]; then
+ echo $"User $REMOVE_USERNAME was not removed"
+ exit 9
fi
+else
+ echo $"Forced removal of user $REMOVE_USERNAME"
fi
if [ -f /etc/nginx/.htpasswd ]; then
- if grep "${MY_USERNAME}:" /etc/nginx/.htpasswd; then
- htpasswd -D /etc/nginx/.htpasswd $MY_USERNAME
+ if grep "${REMOVE_USERNAME}:" /etc/nginx/.htpasswd; then
+ htpasswd -D /etc/nginx/.htpasswd $REMOVE_USERNAME
fi
fi
-# remove user from SIP TURN/STUN
-if [ -d /etc/turnserver ]; then
- sed -i "/${MY_USERNAME}:/d" /etc/turnserver/turnusers.txt
-fi
-
# remove gpg keys
-if [ -d /home/$MY_USERNAME/.gnupg ]; then
- shred -zu /home/$MY_USERNAME/.gnupg/*
+if [ -d /home/$REMOVE_USERNAME/.gnupg ]; then
+ shred -zu /home/$REMOVE_USERNAME/.gnupg/*
fi
# remove ssh keys
-if [ -d /home/$MY_USERNAME/.ssh ]; then
- shred -zu /home/$MY_USERNAME/.ssh/*
+if [ -d /home/$REMOVE_USERNAME/.ssh ]; then
+ shred -zu /home/$REMOVE_USERNAME/.ssh/*
fi
-# remove tox indentity
-if [ -d /home/$MY_USERNAME/.config/tox ]; then
- if [ -d /home/$MY_USERNAME/.config/tox/chatlogs ]; then
- shred -zu /home/$MY_USERNAME/.config/tox/chatlogs/*
- rm -rf /home/$MY_USERNAME/.config/tox/chatlogs
+echo $'Detecting installed apps...'
+detect_apps
+get_apps_installed_names
+for app_name in "${APPS_INSTALLED_NAMES[@]}"
+do
+ if [[ $(function_exists remove_user_${app_name}) == "1" ]]; then
+ echo $"Removing user from ${app_name}"
+ app_load_variables ${app_name}
+ remove_user_${app_name} "$REMOVE_USERNAME"
+ if grep -q "${app_name}_${REMOVE_USERNAME}" $APP_USERS_FILE; then
+ sed -i "/${app_name}_${REMOVE_USERNAME}/d" $APP_USERS_FILE
+ fi
fi
- shred -zu /home/$MY_USERNAME/.config/tox/*
+done
+
+userdel -r $REMOVE_USERNAME
+
+if [ -d /home/$REMOVE_USERNAME ]; then
+ rm -rf /home/$REMOVE_USERNAME
fi
-userdel -r $MY_USERNAME
-
-if [ -d /home/$MY_USERNAME ]; then
- rm -rf /home/$MY_USERNAME
-fi
-
-echo $"User $MY_USERNAME was removed"
+echo $"User $REMOVE_USERNAME was removed"
exit 0
diff --git a/src/freedombone-rmxmpp b/src/freedombone-rmxmpp
index fc02b9cf..9e519d45 100755
--- a/src/freedombone-rmxmpp
+++ b/src/freedombone-rmxmpp
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-sec b/src/freedombone-sec
index c148863e..61ff7972 100755
--- a/src/freedombone-sec
+++ b/src/freedombone-sec
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -33,9 +33,15 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-sec
export TEXTDOMAINDIR="/usr/share/locale"
-CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
SSL_PROTOCOLS=
SSL_CIPHERS=
SSH_CIPHERS=
@@ -58,8 +64,6 @@ EXPORT_FILE=
CURRENT_DIR=$(pwd)
-REGENERATE_SSH_HOST_KEYS="no"
-REGENERATE_DH_KEYS="no"
DH_KEYLENGTH=2048
LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
@@ -79,25 +83,6 @@ function get_ciphers_from_website {
SSL_CIPHERS=$(cat $WEBSITES_DIRECTORY/$1 | grep 'ssl_ciphers ' | awk -F "ssl_ciphers " '{print $2}' | awk -F "'" '{print $2}')
}
-function get_website_settings {
- if [ ! -d $WEBSITES_DIRECTORY ]; then
- return
- fi
-
- cd $WEBSITES_DIRECTORY
- for file in `dir -d *` ; do
- get_protocols_from_website $file
- if [ ${#SSL_PROTOCOLS} -gt $MINIMUM_LENGTH ]; then
- get_ciphers_from_website $file
- if [ ${#SSL_CIPHERS} -gt $MINIMUM_LENGTH ]; then
- break
- else
- SSL_PROTOCOLS=""
- fi
- fi
- done
-}
-
function get_imap_settings {
if [ ! -f $DOVECOT_CIPHERS ]; then
return
@@ -123,19 +108,10 @@ function get_xmpp_settings {
function get_ssh_settings {
if [ -f $SSH_CONFIG ]; then
- SSH_CIPHERS=$(cat $SSH_CONFIG | grep 'Ciphers ' | awk -F 'Ciphers ' '{print $2}')
- SSH_MACS=$(cat $SSH_CONFIG | grep 'MACs ' | awk -F 'MACs ' '{print $2}')
- SSH_KEX=$(cat $SSH_CONFIG | grep 'KexAlgorithms ' | awk -F 'KexAlgorithms ' '{print $2}')
SSH_PASSWORDS=$(cat $SSH_CONFIG | grep 'PasswordAuthentication ' | awk -F 'PasswordAuthentication ' '{print $2}')
fi
if [ -f /etc/ssh/ssh_config ]; then
SSH_HOST_KEY_ALGORITHMS=$(cat /etc/ssh/ssh_config | grep 'HostKeyAlgorithms ' | awk -F 'HostKeyAlgorithms ' '{print $2}')
- if [ ! $SSH_CIPHERS ]; then
- SSH_CIPHERS=$(cat /etc/ssh/ssh_config | grep 'Ciphers ' | awk -F 'Ciphers ' '{print $2}')
- fi
- if [ ! $SSH_MACS ]; then
- SSH_MACS=$(cat /etc/ssh/ssh_config | grep 'MACs ' | awk -F 'MACs ' '{print $2}')
- fi
fi
}
@@ -199,12 +175,13 @@ function change_ssh_settings {
return
fi
if [ ! $SSH_PASSWORDS ]; then
- return
+ SSH_PASSWORDS='yes'
fi
sed -i "s|Ciphers .*|Ciphers $SSH_CIPHERS|g" $SSH_CONFIG
sed -i "s|MACs .*|MACs $SSH_MACS|g" $SSH_CONFIG
sed -i "s|KexAlgorithms .*|KexAlgorithms $SSH_KEX|g" $SSH_CONFIG
+ sed -i "s|#PasswordAuthentication .*|PasswordAuthentication $SSH_PASSWORDS|g" $SSH_CONFIG
sed -i "s|PasswordAuthentication .*|PasswordAuthentication $SSH_PASSWORDS|g" $SSH_CONFIG
systemctl restart ssh
echo $'ssh server security settings changed'
@@ -227,6 +204,18 @@ function change_xmpp_settings {
echo $'xmpp security settings changed'
}
+function allow_ssh_passwords {
+ dialog --title $"SSH Passwords" \
+ --backtitle $"Freedombone Security Configuration" \
+ --yesno $"\nAllow SSH login using passwords?" 7 60
+ sel=$?
+ case $sel in
+ 0) SSH_PASSWORDS="yes";;
+ 1) SSH_PASSWORDS="no";;
+ 255) exit 0;;
+ esac
+}
+
function interactive_setup {
if [ $SSL_CIPHERS ]; then
data=$(tempfile 2>/dev/null)
@@ -281,23 +270,6 @@ function interactive_setup {
esac
fi
- if [[ $SSH_PASSWORDS == "yes" ]]; then
- dialog --title $"SSH Passwords" \
- --backtitle $"Freedombone Security Configuration" \
- --yesno $"\nAllow SSH login using passwords?" 7 60
- else
- dialog --title $"SSH Passwords" \
- --backtitle $"Freedombone Security Configuration" \
- --defaultno \
- --yesno $"\nAllow SSH login using passwords?" 7 60
- fi
- sel=$?
- case $sel in
- 0) SSH_PASSWORDS="yes";;
- 1) SSH_PASSWORDS="no";;
- 255) exit 0;;
- esac
-
if [ $XMPP_CIPHERS ]; then
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
@@ -336,7 +308,7 @@ function send_monkeysphere_server_keys_to_users {
monkeysphere_server_keys=$(monkeysphere-host show-key | grep $"OpenPGP fingerprint" | awk -F ' ' '{print $3}')
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ ! -d /home/$USERNAME/.monkeysphere ]; then
mkdir /home/$USERNAME/.monkeysphere
fi
@@ -347,57 +319,51 @@ function send_monkeysphere_server_keys_to_users {
}
function regenerate_ssh_host_keys {
- if [[ $REGENERATE_SSH_HOST_KEYS == "yes" ]]; then
- rm -f /etc/ssh/ssh_host_*
- dpkg-reconfigure openssh-server
- echo $'ssh host keys regenerated'
- # remove small moduli
- awk '$5 > 2000' /etc/ssh/moduli > ~/moduli
- mv ~/moduli /etc/ssh/moduli
- echo $'ssh small moduli removed'
- # update monkeysphere
- DEFAULT_DOMAIN_NAME=
- if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
- DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$DEFAULT_DOMAIN_NAME
- SSH_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')
- monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$SSH_ONION_HOSTNAME
- monkeysphere-host publish-key
- send_monkeysphere_server_keys_to_users
- echo $'updated monkeysphere ssh host key'
- systemctl restart ssh
- fi
+ rm -f /etc/ssh/ssh_host_*
+ dpkg-reconfigure openssh-server
+ echo $'ssh host keys regenerated'
+ # remove small moduli
+ awk '$5 > 2000' /etc/ssh/moduli > ~/moduli
+ mv ~/moduli /etc/ssh/moduli
+ echo $'ssh small moduli removed'
+ # update monkeysphere
+ DEFAULT_DOMAIN_NAME=
+ read_config_param "DEFAULT_DOMAIN_NAME"
+ monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$DEFAULT_DOMAIN_NAME
+ SSH_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')
+ monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$SSH_ONION_HOSTNAME
+ monkeysphere-host publish-key
+ send_monkeysphere_server_keys_to_users
+ echo $'updated monkeysphere ssh host key'
+ systemctl restart ssh
}
function regenerate_dh_keys {
- if [[ $REGENERATE_DH_KEYS == "yes" ]]; then
- if [ ! -d /etc/ssl/mycerts ]; then
- echo $'No dhparam certificates were found'
- return
- fi
-
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle "Freedombone Security Configuration" \
- --title "Diffie-Hellman key length" \
- --radiolist "The smaller length is better suited to low power embedded systems:" 12 40 3 \
- 1 "2048 bits" off \
- 2 "3072 bits" on \
- 3 "4096 bits" off 2> $data
- sel=$?
- case $sel in
- 1) exit 1;;
- 255) exit 1;;
- esac
- case $(cat $data) in
- 1) DH_KEYLENGTH=2048;;
- 2) DH_KEYLENGTH=3072;;
- 3) DH_KEYLENGTH=4096;;
- esac
-
- ${PROJECT_NAME}-dhparam --recalc yes -l ${DH_KEYLENGTH}
+ if [ ! -d /etc/ssl/mycerts ]; then
+ echo $'No dhparam certificates were found'
+ return
fi
+
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle "Freedombone Security Configuration" \
+ --title "Diffie-Hellman key length" \
+ --radiolist "The smaller length is better suited to low power embedded systems:" 12 40 3 \
+ 1 "2048 bits" off \
+ 2 "3072 bits" on \
+ 3 "4096 bits" off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ case $(cat $data) in
+ 1) DH_KEYLENGTH=2048;;
+ 2) DH_KEYLENGTH=3072;;
+ 3) DH_KEYLENGTH=4096;;
+ esac
+
+ ${PROJECT_NAME}-dhparam --recalc yes -l ${DH_KEYLENGTH}
}
function renew_startssl {
@@ -513,9 +479,23 @@ function create_letsencrypt {
fi
if [ ! -d /var/www/${new_domain} ]; then
- dialog --title $"Create a new Let's Encrypt certificate" \
- --msgbox $'Domain not found within /var/www' 6 40
- return
+ domain_found=
+ if [ -f /etc/nginx/sites-available/radicale ]; then
+ if grep "${new_domain}" /etc/nginx/sites-available/radicale; then
+ domain_found=1
+ fi
+ fi
+ if [ -f /etc/nginx/sites-available/${new_domain} ]; then
+ domain_found=1
+ fi
+ if [[ "${new_domain}" == "jitsi"* || "${new_domain}" == "meet"* ]]; then
+ domain_found=1
+ fi
+ if [ ! $domain_found ]; then
+ dialog --title $"Create a new Let's Encrypt certificate" \
+ --msgbox $'Domain not found within /var/www' 6 40
+ return
+ fi
fi
${PROJECT_NAME}-addcert -e $new_domain -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
@@ -524,47 +504,27 @@ function create_letsencrypt {
}
function update_ciphersuite {
- project_filename=/usr/local/bin/${PROJECT_NAME}
- if [ ! -f $project_filename ]; then
- project_filename=/usr/bin/${PROJECT_NAME}
- fi
-
- RECOMMENDED_SSL_CIPHERS=$(cat $project_filename | grep 'SSL_CIPHERS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
- if [ ! "$RECOMMENDED_SSL_CIPHERS" ]; then
- return
- fi
+ RECOMMENDED_SSL_CIPHERS="$SSL_CIPHERS"
if [ ${#RECOMMENDED_SSL_CIPHERS} -lt 5 ]; then
return
fi
- RECOMMENDED_SSL_PROTOCOLS=$(cat $project_filename | grep 'SSL_PROTOCOLS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
- if [ ! "$RECOMMENDED_SSL_PROTOCOLS" ]; then
- return
- fi
+ RECOMMENDED_SSL_PROTOCOLS="$SSL_PROTOCOLS"
if [ ${#RECOMMENDED_SSL_PROTOCOLS} -lt 5 ]; then
return
fi
- RECOMMENDED_SSH_CIPHERS=$(cat $project_filename | grep 'SSH_CIPHERS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
- if [ ! "$RECOMMENDED_SSH_CIPHERS" ]; then
- return
- fi
+ RECOMMENDED_SSH_CIPHERS="$SSH_CIPHERS"
if [ ${#RECOMMENDED_SSH_CIPHERS} -lt 5 ]; then
return
fi
- RECOMMENDED_SSH_MACS=$(cat $project_filename | grep 'SSH_MACS=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
- if [ ! "$RECOMMENDED_SSH_MACS" ]; then
- return
- fi
+ RECOMMENDED_SSH_MACS="$SSH_MACS"
if [ ${#RECOMMENDED_SSH_MACS} -lt 5 ]; then
return
fi
- RECOMMENDED_SSH_KEX=$(cat $project_filename | grep 'SSH_KEX=' | head -n 1 | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
- if [ ! "$RECOMMENDED_SSH_KEX" ]; then
- return
- fi
+ RECOMMENDED_SSH_KEX="$SSH_KEX"
if [ ${#RECOMMENDED_SSH_KEX} -lt 5 ]; then
return
fi
@@ -575,12 +535,18 @@ function update_ciphersuite {
sed -i "s|ssl_ciphers .*|ssl_ciphers '$RECOMMENDED_SSL_CIPHERS';|g" $WEBSITES_DIRECTORY/$file
done
systemctl restart nginx
+ write_config_param "SSL_PROTOCOLS" "$RECOMMENDED_SSL_PROTOCOLS"
+ write_config_param "SSL_CIPHERS" "$RECOMMENDED_SSL_CIPHERS"
sed -i "s|Ciphers .*|Ciphers $RECOMMENDED_SSH_CIPHERS|g" $SSH_CONFIG
sed -i "s|MACs .*|MACs $RECOMMENDED_SSH_MACS|g" $SSH_CONFIG
sed -i "s|KexAlgorithms .*|KexAlgorithms $RECOMMENDED_SSH_KEX|g" $SSH_CONFIG
systemctl restart ssh
+ write_config_param "SSH_CIPHERS" "$RECOMMENDED_SSH_CIPHERS"
+ write_config_param "SSH_MACS" "$RECOMMENDED_SSH_MACS"
+ write_config_param "SSH_KEX" "$RECOMMENDED_SSH_KEX"
+
dialog --title $"Update ciphersuite" \
--msgbox $"The ciphersuite has been updated to recommended versions" 6 40
exit 0
@@ -611,9 +577,7 @@ function enable_monkeysphere {
esac
if [ $monkey ]; then
- if grep -q "MY_USERNAME" $CONFIGURATION_FILE; then
- MY_USERNAME=$(grep "MY_USERNAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
+ read_config_param "MY_USERNAME"
if [ ! -f /home/$MY_USERNAME/.monkeysphere/authorized_user_ids ]; then
dialog --title $"GPG based authentication" \
@@ -698,54 +662,147 @@ function register_website_interactive {
esac
}
-function housekeeping {
- cmd=(dialog --separate-output \
- --backtitle "Freedombone Security Configuration" \
- --title "Housekeeping options" \
- --checklist "If you don't need to do any of these things then just press Enter:" 17 76 17)
- options=(1 "Regenerate ssh host keys" off
- 2 "Regenerate Diffie-Hellman keys" off
- 3 "Update cipersuite" off
- 4 "Create a new Let's Encrypt certificate" off
- 5 "Renew Let's Encrypt certificate" off
- 6 "Enable GPG based authentication (monkeysphere)" off
- 7 "Register a website with monkeysphere" off
- 8 "Pin all TLS certificates" off
- 9 "Go Back/Exit" on)
- choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
+function pin_all_tls_certs {
+ ${PROJECT_NAME}-pin-cert all
+}
+
+function remove_pinning {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --title $"Remove pinning for a domain" \
+ --backtitle $"Freedombone Security Settings" \
+ --inputbox $"Enter the website domain name (without https://)" 8 60 2>$data
+ sel=$?
+ case $sel in
+ 0)
+ domain=$(<$data)
+ ${PROJECT_NAME}-pin-cert "$domain" remove
+ if [ ! "$?" = "0" ]; then
+ dialog --title $"Removed pinning from $domain" \
+ --msgbox "$?" 6 40
+ fi
+ ;;
+ esac
+}
+
+function store_passwords {
+ dialog --title $"Store Passwords" \
+ --backtitle $"Freedombone Security Configuration" \
+ --yesno $"\nDo you wish to store passwords on the system? Stored passwords are convenient but carry some additional security risk." 10 60
+ sel=$?
+ case $sel in
+ 0)
+ if [ -f /root/.nostore ]; then
+ read_config_param "MY_USERNAME"
+ if [ ! -f /home/$MY_USERNAME/.ssh/authorized_keys ]; then
+ dialog --title $"Store Passwords" \
+ --msgbox $"\nYou should first enable key based ssh login to improve security" 8 60
+ return
+ fi
+ if [[ $SSH_PASSWORDS == 'yes' ]]; then
+ dialog --title $"Store Passwords" \
+ --msgbox $"\nYou should disable ssh passwords to improve security" 8 60
+ return
+ fi
+ ${PROJECT_NAME}-pass --enable yes
+ dialog --title $"Store Passwords" \
+ --msgbox $"\nUser passwords will now be stored on the system" 8 60
+ fi
+ return
+ ;;
+ 1)
+ ${PROJECT_NAME}-pass --clear yes
+ dialog --title $"Passwords were removed and will not be stored" \
+ --msgbox $"\nFor the best security you should now manually change passwords via web interfaces so that there is no possibility of them being recovered from the disk" 9 60
+ return
+ ;;
+ 255) return;;
+ esac
+}
+
+function menu_security_settings {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Control Panel" \
+ --title $"Security Settings" \
+ --radiolist $"Choose an operation:" 18 76 18 \
+ 1 $"Show ssh host public key" off \
+ 2 $"Password storage" off \
+ 3 $"Regenerate ssh host keys" off \
+ 4 $"Regenerate Diffie-Hellman keys" off \
+ 5 $"Update cipersuite" off \
+ 6 $"Create a new Let's Encrypt certificate" off \
+ 7 $"Renew Let's Encrypt certificate" off \
+ 8 $"Enable GPG based authentication (monkeysphere)" off \
+ 9 $"Register a website with monkeysphere" off \
+ 10 $"Allow ssh login with passwords" off \
+ 11 $"Go Back/Exit" on 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+
clear
- for choice in $choices
- do
- case $choice in
- 1)
- REGENERATE_SSH_HOST_KEYS="yes"
- ;;
- 2)
- REGENERATE_DH_KEYS="yes"
- ;;
- 3)
- update_ciphersuite
- ;;
- 4)
- create_letsencrypt
- ;;
- 5)
- renew_letsencrypt
- ;;
- 6)
- enable_monkeysphere
- ;;
- 7)
- register_website
- ;;
- 8)
- ${PROJECT_NAME}-pin-cert all
- ;;
- 9)
- exit 0
- ;;
- esac
- done
+
+ read_config_param SSL_CIPHERS
+ read_config_param SSL_PROTOCOLS
+ read_config_param SSH_CIPHERS
+ read_config_param SSH_MACS
+ read_config_param SSH_KEX
+
+ get_imap_settings
+ get_ssh_settings
+ get_xmpp_settings
+ import_settings
+ export_settings
+
+ case $(cat $data) in
+ 1)
+ dialog --title $"SSH host public keys" \
+ --msgbox "\n$(get_ssh_server_key)" 12 60
+ exit 0
+ ;;
+ 2)
+ store_passwords
+ exit 0
+ ;;
+ 3)
+ regenerate_ssh_host_keys
+ ;;
+ 4)
+ regenerate_dh_keys
+ ;;
+ 5)
+ interactive_setup
+ update_ciphersuite
+ ;;
+ 6)
+ create_letsencrypt
+ ;;
+ 7)
+ renew_letsencrypt
+ ;;
+ 8)
+ enable_monkeysphere
+ ;;
+ 9)
+ register_website
+ ;;
+ 10)
+ allow_ssh_passwords
+ change_ssh_settings
+ exit 0
+ ;;
+ 11)
+ exit 0
+ ;;
+ esac
+
+ change_website_settings
+ change_imap_settings
+ change_ssh_settings
+ change_xmpp_settings
}
function import_settings {
@@ -925,7 +982,7 @@ function export_settings {
function refresh_gpg_keys {
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
su -c 'gpg --refresh-keys' - $USERNAME
fi
done
@@ -959,21 +1016,21 @@ function monkeysphere_sign_server_keys {
exit 0
}
-function blog_hash {
- # produces a hash corresponding to a blog password
+function htmly_hash {
+ # produces a hash corresponding to a htmly password
pass="$1"
- BLOGHASH_FILENAME=/usr/bin/bloghash
+ HTMLYHASH_FILENAME=/usr/bin/htmlyhash
- echo ' $BLOGHASH_FILENAME
- echo 'parse_str(implode("&", array_slice($argv, 1)), $_GET);' >> $BLOGHASH_FILENAME
- echo '$password = $_GET["password"];' >> $BLOGHASH_FILENAME
- echo '$hash = password_hash($password, PASSWORD_BCRYPT);' >> $BLOGHASH_FILENAME
- echo 'if (password_verify($password, $hash)) {' >> $BLOGHASH_FILENAME
- echo ' echo $hash;' >> $BLOGHASH_FILENAME
- echo '}' >> $BLOGHASH_FILENAME
- echo '?>' >> $BLOGHASH_FILENAME
+ echo ' $HTMLYHASH_FILENAME
+ echo 'parse_str(implode("&", array_slice($argv, 1)), $_GET);' >> $HTMLYHASH_FILENAME
+ echo '$password = $_GET["password"];' >> $HTMLYHASH_FILENAME
+ echo '$hash = password_hash($password, PASSWORD_BCRYPT);' >> $HTMLYHASH_FILENAME
+ echo 'if (password_verify($password, $hash)) {' >> $HTMLYHASH_FILENAME
+ echo ' echo $hash;' >> $HTMLYHASH_FILENAME
+ echo '}' >> $HTMLYHASH_FILENAME
+ echo '?>' >> $HTMLYHASH_FILENAME
- php $BLOGHASH_FILENAME password="$pass"
+ php $HTMLYHASH_FILENAME password="$pass"
}
function show_help {
@@ -983,13 +1040,13 @@ function show_help {
echo $'Alters the security settings'
echo ''
echo ''
- echo $' -h --help Show help'
- echo $' -e --export Export security settings to a file'
- echo $' -i --import Import security settings from a file'
- echo $' -r --refresh Refresh GPG keys for all users'
- echo $' -s --sign Sign monkeysphere server keys'
- echo $' --register [domain] Register a https domain with monkeysphere'
- echo $' -b --bloghash [password] Returns the hash of a password for the blog'
+ echo $' -h --help Show help'
+ echo $' -e --export Export security settings to a file'
+ echo $' -i --import Import security settings from a file'
+ echo $' -r --refresh Refresh GPG keys for all users'
+ echo $' -s --sign Sign monkeysphere server keys'
+ echo $' --register [domain] Register a https domain with monkeysphere'
+ echo $' -b --htmlyhash [password] Returns the hash of a password for a htmly blog'
echo ''
exit 0
}
@@ -1029,10 +1086,10 @@ do
shift
monkeysphere_sign_server_keys
;;
- # get a hash of the given blog password
- -b|--bloghash)
+ # get a hash of the given htmly password
+ -b|--htmlyhash)
shift
- blog_hash "$1"
+ htmly_hash "$1"
exit 0
;;
*)
@@ -1042,18 +1099,6 @@ do
shift
done
-housekeeping
-get_website_settings
-get_imap_settings
-get_ssh_settings
-get_xmpp_settings
-import_settings
-export_settings
-interactive_setup
-change_website_settings
-change_imap_settings
-change_ssh_settings
-change_xmpp_settings
-regenerate_ssh_host_keys
-regenerate_dh_keys
+menu_security_settings
+
exit 0
diff --git a/src/freedombone-sipfreeext b/src/freedombone-sipfreeext
index 400a1781..e771f36c 100755
--- a/src/freedombone-sipfreeext
+++ b/src/freedombone-sipfreeext
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -38,10 +38,10 @@ CONFIG_FILE=/etc/sipwitch.conf
maxnum=201
while (( maxnum < 299 )); do
- if ! grep -q "extension>$maxnum<" $CONFIG_FILE; then
- break;
- fi
- maxnum=$((maxnum + 1))
+ if ! grep -q "extension>$maxnum<" $CONFIG_FILE; then
+ break;
+ fi
+ maxnum=$((maxnum + 1))
done
echo $maxnum
exit 0
diff --git a/src/freedombone-splitkey b/src/freedombone-splitkey
index e285ebbd..3d08a2ff 100755
--- a/src/freedombone-splitkey
+++ b/src/freedombone-splitkey
@@ -19,7 +19,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-syncthing b/src/freedombone-syncthing
index c47fd077..b91b53ea 100755
--- a/src/freedombone-syncthing
+++ b/src/freedombone-syncthing
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2016 Bob Mottram
+# Copyright (C) 2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -36,6 +36,12 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=$PROJECT_NAME-syncthing
export TEXTDOMAINDIR="/usr/share/locale"
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
# File which keeps track of what has already been installed
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
@@ -51,6 +57,13 @@ SYNCTHING_UPDATE_FILE='.syncthing-update'
CHANGED=
TEMP_IDS_FILE=/root/.synthingids
+function remove_user_syncthing {
+ remove_username="$1"
+
+ sed -i "//d" $SYNCTHING_CONFIG_FILE
+ systemctl restart syncthing
+}
+
function new_syncthing_id {
for i in {1..8}
do
@@ -70,21 +83,17 @@ function new_syncthing_id {
}
function create_syncthing_config {
- if grep -q "Syncthing ID" $COMPLETION_FILE; then
- SYNCTHING_ID=$(cat $COMPLETION_FILE | grep "Syncthing ID" | awk -F ':' '{print $2}')
+ if grep -q "syncthing ID" $COMPLETION_FILE; then
+ SYNCTHING_ID=$(get_completion_param "syncthing ID")
else
if [ -f $SYNCTHING_CONFIG_FILE ]; then
SYNCTHING_ID=$(cat $SYNCTHING_CONFIG_FILE | grep "device id=" | head -n 1 | awk -F '"' '{print $2}')
else
- SYNCTHING_ID=$(new_syncthing_id)
- fi
+ SYNCTHING_ID=$(new_syncthing_id)
+ fi
fi
- if ! grep -q "Syncthing ID" $COMPLETION_FILE; then
- echo "Syncthing ID:$SYNCTHING_ID" >> $COMPLETION_FILE
- else
- sed -i "s|Syncthing ID.*|Syncthing ID:$SYNCTHING_ID|g" $COMPLETION_FILE
- fi
+ set_completion_param "syncthing ID" "$SYNCTHING_ID"
if [ ! -d $SYNCTHING_CONFIG_PATH ]; then
mkdir -p $SYNCTHING_CONFIG_PATH
@@ -97,7 +106,7 @@ function create_syncthing_config {
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
echo " " >> $SYNCTHING_CONFIG_FILE
# include any specified device IDs for this user
if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then
@@ -137,7 +146,7 @@ function create_syncthing_config {
echo "" > $TEMP_IDS_FILE
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then
while read -r line || [[ -n "$line" ]]; do
line2="$(echo -e "${line}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
@@ -169,7 +178,7 @@ function create_syncthing_config {
echo ' false ' >> $SYNCTHING_CONFIG_FILE
echo ' ' >> $SYNCTHING_CONFIG_FILE
-
+
echo " " >> $SYNCTHING_CONFIG_FILE
echo ' dynamic ' >> $SYNCTHING_CONFIG_FILE
echo ' ' >> $SYNCTHING_CONFIG_FILE
@@ -177,7 +186,7 @@ function create_syncthing_config {
echo "" > $TEMP_IDS_FILE
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then
while read -r line || [[ -n "$line" ]]; do
line2="$(echo -e "${line}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
@@ -195,7 +204,7 @@ function create_syncthing_config {
fi
fi
done
- rm $TEMP_IDS_FILE
+ rm $TEMP_IDS_FILE
echo ' ' >> $SYNCTHING_CONFIG_FILE
echo " tcp://0.0.0.0:$SYNCTHING_PORT " >> $SYNCTHING_CONFIG_FILE
@@ -236,7 +245,7 @@ function create_syncthing_config {
# This allows it to appear within the user control panel
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
echo "$SYNCTHING_ID" > /home/$USERNAME/.syncthing-server-id
chown $USERNAME:$USERNAME /home/$USERNAME/.syncthing-server-id
fi
@@ -254,14 +263,14 @@ function user_devices_changed {
CHANGED=1
return
fi
-
+
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
- if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
if [ -f /home/$USERNAME/$SYNCTHING_UPDATE_FILE ]; then
CHANGED=1
fi
-
+
if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then
while read -r line || [[ -n "$line" ]]; do
if [[ $line != *"#"* && $line != *"*"* && $line != *'/'* && $line == *"-"* ]]; then
@@ -273,6 +282,14 @@ function user_devices_changed {
fi
done < /home/$USERNAME/$SYNCTHING_USER_IDS_FILE
fi
+
+ # Permissions on user Sync directories
+ if [ -d /home/$USERNAME/Sync ]; then
+ chown $USERNAME:$USERNAME /home/$USERNAME /home/$USERNAME/Sync
+ fi
+ if [ -d /home/$USERNAME/SyncShared ]; then
+ chown $USERNAME:$USERNAME /home/$USERNAME /home/$USERNAME/SyncShared
+ fi
fi
done
}
diff --git a/src/freedombone-tests b/src/freedombone-tests
new file mode 100755
index 00000000..53ae1ffc
--- /dev/null
+++ b/src/freedombone-tests
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Run tests on the system
+
+# License
+# =======
+#
+# Copyright (C) 2015-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-tests
+export TEXTDOMAINDIR="/usr/share/locale"
+
+function show_help {
+ echo ''
+ echo $"${PROJECT_NAME}-tests"
+ echo ''
+ echo $'Runs tests on the system'
+ echo ''
+ echo $' --help Show help'
+ echo ''
+ exit 0
+}
+
+function test_app_function_type {
+ filename=$1
+ fn_type=$2
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+ app_function=$(cat "${filename}" | grep "function ${fn_type}_${app_name} {" | awk -F "${fn_type}_" '{print $2}' | awk -F ' ' '{print $1}')
+ if [ ! ${app_function} ]; then
+ echo $"Application ${app_name} does not contain a function called '${fn_type}_${app_name}'"
+ echo ''
+ echo "See ${filename}"
+ exit 72852
+ fi
+}
+
+function test_app_functions {
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ # check that these functions exist
+ interface_functions=( install remove backup_local backup_remote restore_local restore_remote upgrade reconfigure )
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ # for each expected interface function
+ for f in "${interface_functions[@]}"
+ do
+ test_app_function_type ${filename} $f
+ done
+ done
+}
+
+function test_unique_onion_ports {
+ # test that some services are not assigned the same onion port
+ FILES=src/${PROJECT_NAME}-app-*
+ ports=$(grep -r "_ONION_PORT=" $FILES | awk -F ':' '{print $2}' | uniq | awk -F '=' '{print $2}')
+ unique_ports=$(grep -r "_ONION_PORT=" $FILES | awk -F ':' '{print $2}' | uniq | awk -F '=' '{print $2}' | uniq)
+ if [[ "$ports" != "$unique_ports" ]]; then
+ echo $'Some onion ports are clashing'
+ grep -r "_ONION_PORT=" $FILES | awk -F ':' '{print $2}' | uniq
+ exit 637252
+ fi
+}
+
+while [[ $# > 1 ]]
+do
+ key="$1"
+
+ case $key in
+ -h|--help)
+ show_help
+ ;;
+ *)
+ # unknown option
+ ;;
+ esac
+ shift
+done
+
+echo $'Running tests'
+
+test_app_functions
+test_unique_onion_ports
+
+echo $'All tests passed'
+
+exit 0
diff --git a/src/freedombone-unignore b/src/freedombone-unignore
index 78db912f..04ce73d0 100755
--- a/src/freedombone-unignore
+++ b/src/freedombone-unignore
@@ -15,7 +15,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-update-date b/src/freedombone-update-date
deleted file mode 100755
index e5d7fb76..00000000
--- a/src/freedombone-update-date
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/bash
-#
-# .---. . .
-# | | |
-# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
-# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
-# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
-#
-# Freedom in the Cloud
-#
-# Updates the date
-
-# License
-# =======
-#
-# Copyright (C) 2015-2016 Bob Mottram
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-
-PROJECT_NAME='freedombone'
-
-export TEXTDOMAIN=${PROJECT_NAME}-update-date
-export TEXTDOMAINDIR="/usr/share/locale"
-
-COMPLETION_FILE=/root/${PROJECT_NAME}-completed.txt
-TIMESOURCE='google.com'
-TIMESOURCE2='www.ptb.de'
-LOGFILE=/var/log/tlsdate.log
-TIMEOUT=5
-EMAIL=
-if grep -q "Admin user" $COMPLETION_FILE; then
- ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
- EMAIL=$ADMIN_USER@$HOSTNAME
-fi
-
-# File which contains the previous date as a number
-BEFORE_DATE_FILE=/var/log/tlsdateprevious.txt
-
-# File which contains the previous date as a string
-BEFORE_FULLDATE_FILE=/var/log/tlsdate.txt
-DATE_BEFORE=$(date)
-BEFORE=$(date "+%s")
-BACKWARDS_BETWEEN=0
-re="^[0-9]+$"
-
-# If the date was previously set
-if [ -s "$BEFORE_DATE_FILE" ]; then
- filesize=$(wc -c "$BEFORE_DATE_FILE" | cut -f 1 -d " ")
- if [ $filesize -ge 5 ]; then
- BEFORE_FILE=$(cat $BEFORE_DATE_FILE)
- if [[ $BEFORE_FILE =~ $re ]]; then
- BEFORE_FULLDATE=$(cat $BEFORE_FULLDATE_FILE)
- # is the date going backwards?
- if (( $BEFORE_FILE > $BEFORE )); then
- echo -n $"Date went backwards between tlsdate updates. " >> $LOGFILE
- echo -n "$BEFORE_FILE > $BEFORE, " >> $LOGFILE
- echo "$BEFORE_FULLDATE > $DATE_BEFORE" >> $LOGFILE
- # Send a warning email
- if [ $EMAIL ]; then
- echo $(tail $LOGFILE -n 2) | mail -s $"tlsdate anomaly" $EMAIL
- fi
- # Try another time source
- TIMESOURCE=$TIMESOURCE2
- # try running without any parameters
- tlsdate >> $LOGFILE
- BACKWARDS_BETWEEN=1
- fi
- fi
- fi
-fi
-
-# Set the date
-/usr/bin/timeout $TIMEOUT tlsdate -l -t -H $TIMESOURCE -p 443 >> $LOGFILE
-DATE_AFTER=$(date)
-AFTER=$(date "+%s")
-
-# After setting the date did it go backwards?
-if (( $AFTER < $BEFORE )); then
- echo $"Incorrect date: $DATE_BEFORE -> $DATE_AFTER" >> $LOGFILE
- # Send a warning email
- if [ $EMAIL ]; then
- echo $(tail $LOGFILE -n 2) | mail -s $"tlsdate anomaly" $EMAIL
- fi
- # Try resetting the date from another time source
- /usr/bin/timeout $TIMEOUT tlsdate -l -t -H $TIMESOURCE2 -p 443 >> $LOGFILE
- DATE_AFTER=$(date)
- AFTER=$(date "+%s")
-else
- echo -n $TIMESOURCE >> $LOGFILE
- if [ -s "$BEFORE_DATE_FILE" ]; then
- echo -n " " >> $LOGFILE
- echo -n $BEFORE_FILE >> $LOGFILE
- fi
- echo -n " " >> $LOGFILE
- echo -n $BEFORE >> $LOGFILE
- echo -n " " >> $LOGFILE
- echo -n $AFTER >> $LOGFILE
- echo -n " " >> $LOGFILE
- echo $DATE_AFTER >> $LOGFILE
-fi
-
-# Log the last date
-if [[ $BACKWARDS_BETWEEN == 0 ]]; then
- echo "$AFTER" > $BEFORE_DATE_FILE
- echo "$DATE_AFTER" > $BEFORE_FULLDATE_FILE
- exit 0
-fi
-exit 1
diff --git a/src/freedombone-upgrade b/src/freedombone-upgrade
index daf1702b..80672252 100755
--- a/src/freedombone-upgrade
+++ b/src/freedombone-upgrade
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -30,10 +30,10 @@
PROJECT_NAME='freedombone'
-PROJECT_DIR="/root/${PROJECT_NAME}"
+PROJECT_DIR="$HOME/${PROJECT_NAME}"
# An optional configuration file which overrides some of these variables
-CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
+CONFIGURATION_FILE="$HOME/${PROJECT_NAME}.cfg"
PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
@@ -41,56 +41,30 @@ FRIENDS_MIRRORS_SERVER=
FRIENDS_MIRRORS_SSH_PORT=2222
FRIENDS_MIRRORS_PASSWORD=
MY_MIRRORS_PASSWORD=
+CURRENT_BRANCH=master
-source /usr/local/bin/${PROJECT_NAME}-utils-git
-if [ -f /usr/bin/${PROJECT_NAME}-utils-git ]; then
- source /usr/bin/${PROJECT_NAME}-utils-git
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+read_config_param PROJECT_REPO
+read_config_param DEVELOPMENT_BRANCH
+
+# TODO change this after release
+DEVELOPMENT_BRANCH=stockholm
+write_config_param "DEVELOPMENT_BRANCH" "$DEVELOPMENT_BRANCH"
+
+if [ $DEVELOPMENT_BRANCH ]; then
+ if [ ${#DEVELOPMENT_BRANCH} -gt 0 ]; then
+ CURRENT_BRANCH=$DEVELOPMENT_BRANCH
+ fi
fi
-function read_repo_servers {
- if [ -f $CONFIGURATION_FILE ]; then
- if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
- FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
- fi
-
- if [ ! $FRIENDS_MIRRORS_SERVER ]; then
- return
- fi
- if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
- return
- fi
-
- MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
- if [ ! -f $MAIN_COMMAND ]; then
- MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
- fi
-
- REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
-
- for line in "${REPOS[@]}"
- do
- repo_name=$(echo "$line" | awk -F '=' '{print $1}')
- mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
- friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
- ${repo_name}="${friends_repo_url}"
- done
-}
-
-if [ -f $CONFIGURATION_FILE ]; then
- # read the location of the main project repo
- if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
- PROJECT_REPO=$(grep "PROJECT_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
- fi
+if grep "cat /root/dbpass" /usr/bin/backupdatabases; then
+ # update to using the password manager
+ sed -i "s|cat /root/dbpass|freedombone-pass -u root -a mariadb|g" /usr/bin/backupdatabases
fi
update-ca-certificates
@@ -106,22 +80,23 @@ if [ -d $PROJECT_DIR ]; then
if [ -f $CONFIGURATION_FILE ]; then
cd $PROJECT_DIR
rm -rf $PROJECT_DIR/locale/*
- git_pull $PROJECT_REPO
+ if [[ "$CURRENT_BRANCH" == *"master" ]]; then
+ git_pull $PROJECT_REPO
+ else
+ git_pull $PROJECT_REPO origin/$DEVELOPMENT_BRANCH
+ fi
make install
${PROJECT_NAME} -c $CONFIGURATION_FILE
fi
fi
-# remove the original sipwitch daemon if it exists
-if [ -f /etc/init.d/sipwitch ]; then
- rm -f /etc/init.d/sipwitch
-fi
+# If logging was left on then turn it off
+${PROJECT_NAME}-logging off
-# update blog avatar
-${PROJECT_NAME}-blog
-
-echo '
+if [ -f /usr/bin/reset-tripwire ]; then
+ echo '
' | reset-tripwire
+fi
# deliberately there is no 'exit 0' here
diff --git a/src/freedombone-utils-avahi b/src/freedombone-utils-avahi
new file mode 100755
index 00000000..086d3230
--- /dev/null
+++ b/src/freedombone-utils-avahi
@@ -0,0 +1,144 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Avahi functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function create_avahi_service {
+ service_name=$1
+ service_type=$2
+ service_protocol=$3
+ service_port=$4
+ service_description="$5"
+
+ if [ ! -d /etc/avahi ]; then
+ echo $'create_avahi_service: avahi was not installed'
+ exit 52925
+ fi
+
+ echo '' > /etc/avahi/services/${service_name}.service
+ echo '' >> /etc/avahi/services/${service_name}.service
+ echo '' >> /etc/avahi/services/${service_name}.service
+ echo " %h ${service_type} " >> /etc/avahi/services/${service_name}.service
+ echo ' ' >> /etc/avahi/services/${service_name}.service
+ echo " _${service_type}._${service_protocol} " >> /etc/avahi/services/${service_name}.service
+ echo " ${service_port} " >> /etc/avahi/services/${service_name}.service
+ if [ "$service_description" ]; then
+ echo " $service_description " >> /etc/avahi/services/${service_name}.service
+ fi
+ echo ' ' >> /etc/avahi/services/${service_name}.service
+ echo ' ' >> /etc/avahi/services/${service_name}.service
+}
+
+function mesh_avahi {
+ chroot "$rootdir" apt-get -yq install avahi-utils avahi-autoipd avahi-dnsconfd
+
+ decarray=( 1 2 3 4 5 6 7 8 9 0 )
+ PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
+ sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" $rootdir/etc/avahi/avahi-daemon.conf
+
+ if [ ! -d $rootdir/etc/avahi/services ]; then
+ mkdir -p $rootdir/etc/avahi/services
+ fi
+
+ # remove an avahi service which isn't used
+ if [ -f $rootdir/etc/avahi/services/udisks.service ]; then
+ rm $rootdir/etc/avahi/services/udisks.service
+ fi
+
+ # Add an ssh service
+ echo '' > $rootdir/etc/avahi/services/ssh.service
+ echo '' >> $rootdir/etc/avahi/services/ssh.service
+ echo '' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' %h SSH ' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' ' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' _ssh._tcp ' >> $rootdir/etc/avahi/services/ssh.service
+ echo " $SSH_PORT " >> $rootdir/etc/avahi/services/ssh.service
+ echo ' ' >> $rootdir/etc/avahi/services/ssh.service
+ echo ' ' >> $rootdir/etc/avahi/services/ssh.service
+
+ # keep the daemon running
+ WATCHDOG_SCRIPT_NAME="keepon"
+ echo '' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo '# keep avahi daemon running' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'AVAHI_RUNNING=$(pgrep avahi-daemon > /dev/null && echo Running)' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'if [ ! $AVAHI_RUNNING ]; then' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' systemctl start avahi-daemon' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' echo -n $CURRENT_DATE >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' echo " Avahi daemon restarted" >> $LOGFILE' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'fi' >> $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+ chmod +x $rootdir/usr/bin/$WATCHDOG_SCRIPT_NAME
+}
+
+function install_avahi {
+ if [ $INSTALLING_MESH ]; then
+ mesh_avahi
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ # only enable avahi if we're doing mesh networking
+ if [[ $ENABLE_BATMAN != "yes" ]]; then
+ return
+ fi
+
+ ${PROJECT_NAME}-mesh-install -f avahi
+ if [ ! "$?" = "0" ]; then
+ echo $'Failed to install avahi'
+ exit 68442
+ fi
+
+ if [ $DEFAULT_DOMAIN_NAME ]; then
+ sed -i "s|#host-name=.*|host-name=$DEFAULT_DOMAIN_NAME|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|host-name=.*|host-name=$DEFAULT_DOMAIN_NAME|g" /etc/avahi/avahi-daemon.conf
+ else
+ decarray=( 1 2 3 4 5 6 7 8 9 0 )
+ PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
+ sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
+ sed -i "s|host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function configure_firewall_for_avahi {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ iptables -A INPUT -p tcp --dport 548 -j ACCEPT
+ iptables -A INPUT -p udp --dport 548 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 5353 -j ACCEPT
+ iptables -A INPUT -p udp --dport 5353 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 5354 -j ACCEPT
+ iptables -A INPUT -p udp --dport 5354 -j ACCEPT
+ function_check save_firewall_settings
+ save_firewall_settings
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-backup b/src/freedombone-utils-backup
new file mode 100755
index 00000000..51c4384c
--- /dev/null
+++ b/src/freedombone-utils-backup
@@ -0,0 +1,624 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Backup functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# whether a given site is being suspended during backup
+SUSPENDED_SITE=
+
+function suspend_site {
+ # suspends a given website
+ SUSPENDED_SITE="$1"
+ nginx_dissite $SUSPENDED_SITE
+ service nginx reload
+}
+
+function restart_site {
+ # restarts a given website
+ if [ ! $SUSPENDED_SITE ]; then
+ return
+ fi
+ nginx_ensite $SUSPENDED_SITE
+ service nginx reload
+ SUSPENDED_SITE=
+}
+
+function configure_backup_key {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install gnupg
+
+ BACKUP_KEY_EXISTS=$(gpg_key_exists "root" "$MY_NAME (backup key)")
+ if [[ $BACKUP_KEY_EXISTS == "yes" ]]; then
+ return
+ fi
+
+ # Generate a GPG key for backups
+ BACKUP_KEY_EXISTS=$(gpg_key_exists "$MY_USERNAME" "$MY_NAME (backup key)")
+ if [[ $BACKUP_KEY_EXISTS == "no" ]]; then
+ echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Key-Length: 4096' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Subkey-Type: 1' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Subkey-Length: 4096' >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Real: $MY_NAME" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Email: $MY_EMAIL_ADDRESS" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo "Name-Comment: backup key" >> /home/$MY_USERNAME/gpg-genkey.conf
+ echo 'Expire-Date: 0' >> /home/$MY_USERNAME/gpg-genkey.conf
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
+ echo $'Backup key does not exist. Creating it.'
+ su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
+ shred -zu /home/$MY_USERNAME/gpg-genkey.conf
+ echo $'Checking that the Backup key was created'
+ BACKUP_KEY_EXISTS=$(gpg_key_exists "$MY_USERNAME" "$MY_NAME (backup key)")
+ if [[ $BACKUP_KEY_EXISTS == "no" ]]; then
+ echo $'Backup key could not be created'
+ exit 43382
+ fi
+ fi
+ MY_BACKUP_KEY_ID=$(su -c "gpg --list-keys \"$MY_NAME (backup key)\" | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+ echo "Backup key: $MY_BACKUP_KEY_ID"
+ MY_BACKUP_KEY=/home/$MY_USERNAME/backup_key
+ su -c "gpg --output ${MY_BACKUP_KEY}_public.asc --armor --export $MY_BACKUP_KEY_ID" - $MY_USERNAME
+ su -c "gpg --output ${MY_BACKUP_KEY}_private.asc --armor --export-secret-key $MY_BACKUP_KEY_ID" - $MY_USERNAME
+ if [ ! -f ${MY_BACKUP_KEY}_public.asc ]; then
+ echo 'Public backup key could not be exported'
+ exit 36829
+ fi
+ if [ ! -f ${MY_BACKUP_KEY}_private.asc ]; then
+ echo 'Private backup key could not be exported'
+ exit 29235
+ fi
+
+ # import backup key to root user
+ gpg --import --import ${MY_BACKUP_KEY}_public.asc
+ gpg --allow-secret-key-import --import ${MY_BACKUP_KEY}_private.asc
+
+ shred -zu ${MY_BACKUP_KEY}_public.asc
+ shred -zu ${MY_BACKUP_KEY}_private.asc
+
+ mark_completed $FUNCNAME
+}
+
+function backup_to_friends_servers {
+ # update crontab
+ echo '#!/bin/bash' > /etc/cron.daily/backuptofriends
+ echo "if [ -f /usr/local/bin/${PROJECT_NAME}-backup-remote ]; then" >> /etc/cron.daily/backuptofriends
+ echo " /usr/local/bin/${PROJECT_NAME}-backup-remote" >> /etc/cron.daily/backuptofriends
+ echo 'else' >> /etc/cron.daily/backuptofriends
+ echo " /usr/bin/${PROJECT_NAME}-backup-remote" >> /etc/cron.daily/backuptofriends
+ echo 'fi' >> /etc/cron.daily/backuptofriends
+ chmod +x /etc/cron.daily/backuptofriends
+}
+
+function backup_mount_drive {
+ if [ $1 ]; then
+ if [[ "$1" == "/dev/"* ]]; then
+ USB_DRIVE=$1
+ else
+ USB_DRIVE=/dev/${1}1
+ fi
+ fi
+
+ # get the admin user
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
+ if [ $2 ]; then
+ ADMIN_USERNAME=$2
+ fi
+ ADMIN_NAME=$(getent passwd $ADMIN_USERNAME | cut -d: -f5 | cut -d, -f1)
+
+ if [ $3 ]; then
+ RESTORE_APP=$3
+ fi
+
+ # check that the backup destination is available
+ if [ ! -b $USB_DRIVE ]; then
+ echo $"Please attach a USB drive"
+ exit 1
+ fi
+
+ # unmount if already mounted
+ umount -f $USB_MOUNT
+ if [ ! -d $USB_MOUNT ]; then
+ mkdir $USB_MOUNT
+ fi
+ if [ -f /dev/mapper/encrypted_usb ]; then
+ rm -rf /dev/mapper/encrypted_usb
+ fi
+ cryptsetup luksClose encrypted_usb
+
+ # mount the encrypted backup drive
+ cryptsetup luksOpen $USB_DRIVE encrypted_usb
+ if [ "$?" = "0" ]; then
+ USB_DRIVE=/dev/mapper/encrypted_usb
+ fi
+ mount $USB_DRIVE $USB_MOUNT
+ if [ ! "$?" = "0" ]; then
+ echo $"There was a problem mounting the USB drive to $USB_MOUNT"
+ rm -rf $USB_MOUNT
+ exit 783452
+ fi
+}
+
+function backup_unmount_drive {
+ if [ $1 ]; then
+ USB_DRIVE=${1}
+ if [ $2 ]; then
+ USB_MOUNT=${2}
+ fi
+ fi
+ sync
+ umount $USB_MOUNT
+ if [ ! "$?" = "0" ]; then
+ echo $"Unable to unmount the drive."
+ rm -rf $USB_MOUNT
+ exit 9
+ fi
+ rm -rf $USB_MOUNT
+ if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then
+ echo $"Unmount encrypted USB"
+ cryptsetup luksClose encrypted_usb
+ fi
+ if [ -f /dev/mapper/encrypted_usb ]; then
+ rm -rf /dev/mapper/encrypted_usb
+ fi
+}
+
+function backup_database_local_usb {
+ if [ ${#DATABASE_PASSWORD} -lt 2 ]; then
+ echo $"No MariaDB password was given"
+ function_check restart_site
+ restart_site
+ exit 10
+ fi
+ if [ ! -d $USB_MOUNT/backup/${1} ]; then
+ mkdir -p $USB_MOUNT/backup/${1}
+ fi
+ if [ ! -d $USB_MOUNT/backup/${1}data ]; then
+ mkdir -p $USB_MOUNT/backup/${1}data
+ fi
+ local_database_dir=/root/temp${1}data
+ if [ ! -d ${local_database_dir} ]; then
+ mkdir -p ${local_database_dir}
+ fi
+ echo $"Obtaining ${1} database backup"
+ mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql
+ if [ -f ${local_database_dir}/${1}.sql ]; then
+ if [ ! -s ${local_database_dir}/${1}.sql ]; then
+ echo $"${1} database could not be saved"
+ shred -zu ${local_database_dir}/*
+ rm -rf ${local_database_dir}
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ restart_site
+ exit 6835872
+ fi
+ else
+ echo $"${1} database could not be dumped"
+ rm -rf ${local_database_dir}
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ restart_site
+ exit 738653
+ fi
+ echo $"Database dump was created for ${1}"
+}
+
+function set_obnam_client_name {
+ # obnam can backup multiple machines with different domain names to
+ # a repository. To be able to restore directories from different
+ # machines we need to enforce a single client name for all backups
+ echo '[config]' > /etc/obnam.conf
+ echo "client-name = ${PROJECT_NAME}" >> /etc/obnam.conf
+}
+
+function backup_directory_to_usb {
+ if [ ! -d ${1} ]; then
+ echo $"WARNING: directory does not exist: ${1}"
+ else
+ BACKUP_KEY_EXISTS=$(gpg --list-keys "$ADMIN_NAME (backup key)")
+ if [ ! "$?" = "0" ]; then
+ echo $"Backup key could not be found"
+ function_check restart_site
+ restart_site
+ exit 6
+ fi
+ MY_BACKUP_KEY_ID=$(gpg --list-keys "$ADMIN_NAME (backup key)" | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+ if [ ! -d $USB_MOUNT/backup/${2} ]; then
+ mkdir -p $USB_MOUNT/backup/${2}
+ fi
+ set_obnam_client_name
+ obnam force-lock -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
+ obnam backup -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
+ if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
+ obnam verify -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}
+ if [ ! "$?" = "0" ]; then
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
+ shred -zu ${1}/*
+ rm -rf ${1}
+ fi
+ function_check restart_site
+ restart_site
+ exit 683252
+ fi
+ fi
+ obnam forget --keep=30d -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID
+ if [ ! "$?" = "0" ]; then
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
+ shred -zu ${1}/*
+ rm -rf ${1}
+ fi
+ function_check restart_site
+ restart_site
+ exit 7
+ fi
+ if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
+ shred -zu ${1}/*
+ rm -rf ${1}
+ fi
+ fi
+}
+
+function restore_directory_from_usb {
+ if [ ! -d ${1} ]; then
+ mkdir ${1}
+ fi
+ set_obnam_client_name
+ obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
+}
+
+function restore_directory_from_friend {
+ if [ ! -d ${1} ]; then
+ mkdir ${1}
+ fi
+ set_obnam_client_name
+ obnam restore -r $SERVER_DIRECTORY/backup/${2} --to ${1}
+}
+
+function backup_database_to_usb {
+ database_name=$1
+ local_database_dir=/root/temp${1}data
+ backup_database_local_usb ${database_name}
+ if [ ! -f ${local_database_dir}/${1}.sql ]; then
+ echo $"Error backing up ${1} database to ${local_database_dir}/${1}.sql"
+ exit 62383
+ fi
+ backup_directory_to_usb ${local_database_dir} ${database_name}data
+}
+
+# after user files have been restored permissions may need to be set
+function set_user_permissions {
+ echo $"Setting permissions"
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ chown -R $USERNAME:$USERNAME /home/$USERNAME
+ fi
+ done
+}
+
+function backup_directory_to_friend {
+ BACKUP_KEY_EXISTS=$(gpg --list-keys "$ADMIN_NAME (backup key)")
+ if [ ! "$?" = "0" ]; then
+ echo $"Backup key could not be found"
+ function_check restart_site
+ restart_site
+ exit 43382
+ fi
+ ADMIN_BACKUP_KEY_ID=$(gpg --list-keys "$ADMIN_NAME (backup key)" | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
+ if [ ! -d $SERVER_DIRECTORY/backup/${2} ]; then
+ mkdir -p $SERVER_DIRECTORY/backup/${2}
+ fi
+ set_obnam_client_name
+ obnam force-lock -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
+ obnam backup -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
+ if [[ $ENABLE_VERIFICATION == "yes" ]]; then
+ obnam verify -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID} ${1}
+ if [ ! "$?" = "0" ]; then
+ if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
+ shred -zu /root/temp${2}/*
+ rm -rf /root/temp${2}
+ fi
+ # Send a warning email
+ echo "Unable to verify ${2}" | mail -s "${PROJECT_NAME} backup to friends" ${ADMIN_EMAIL_ADDRESS}
+ function_check restart_site
+ restart_site
+ exit 953
+ fi
+ fi
+ obnam forget --keep=30d -r $SERVER_DIRECTORY/backup/${2} --encrypt-with ${ADMIN_BACKUP_KEY_ID}
+ if [ ! "$?" = "0" ]; then
+ if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
+ shred -zu /root/temp${2}/*
+ rm -rf /root/temp${2}
+ fi
+ # Send a warning email
+ echo "Unable to backup ${2}" | mail -s "${PROJECT_NAME} backup to friends" ${ADMIN_EMAIL_ADDRESS}
+ function_check restart_site
+ restart_site
+ exit 853
+ fi
+ if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
+ shred -zu /root/temp${2}/*
+ rm -rf /root/temp${2}
+ fi
+}
+
+function backup_database_remote {
+ if [ ${#DATABASE_PASSWORD} -lt 2 ]; then
+ echo $"No MariaDB password was given"
+ function_check restart_site
+ restart_site
+ exit 5783
+ fi
+ if [ ! -d $SERVER_DIRECTORY/backup/${1} ]; then
+ mkdir -p $SERVER_DIRECTORY/backup/${1}
+ fi
+ if [ ! -d $SERVER_DIRECTORY/backup/${1}data ]; then
+ mkdir -p $SERVER_DIRECTORY/backup/${1}data
+ fi
+ local_database_dir=/root/temp${1}data
+ if [ ! -d ${local_database_dir} ]; then
+ mkdir -p ${local_database_dir}
+ fi
+ echo "Obtaining ${1} database backup"
+ mysqldump --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql
+ if [ -f ${local_database_dir}/${1}.sql ]; then
+ if [ ! -s ${local_database_dir}/${1}.sql ]; then
+ echo $"${1} database could not be saved"
+ shred -zu ${local_database_dir}/*
+ rm -rf ${local_database_dir}
+ # Send a warning email
+ echo $"Unable to export ${1} database" | mail -s $"${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
+ function_check restart_site
+ restart_site
+ exit 5738
+ fi
+ else
+ echo $"${1} database could not be dumped"
+ rm -rf ${local_database_dir}
+ # Send a warning email
+ echo $"Unable to dump ${1} database" | mail -s $"${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS
+ function_check restart_site
+ restart_site
+ exit 3687
+ fi
+}
+
+function backup_database_to_friend {
+ database_name=$1
+ backup_database_remote $database_name
+ backup_directory_to_friend /root/temp${database_name}data ${database_name}data
+}
+
+function backup_apps {
+ localremote=$1
+
+ BACKUP_APPS_COMPLETED=()
+
+ detect_installable_apps
+ get_apps_installed_names
+
+ for app_name in "${APPS_INSTALLED_NAMES[@]}"
+ do
+ echo $"Backup ${app_name}"
+ app_load_variables ${app_name}
+ function_check backup_${localremote}_${app_name}
+ backup_${localremote}_${app_name}
+ BACKUP_APPS_COMPLETED+=("${app_name}")
+ echo $"Backup ${app_name} completed"
+ done
+}
+
+function restore_apps {
+ localremote=$1
+ RESTORE_APP=$2
+
+ RESTORE_APPS_COMPLETED=()
+
+ detect_installable_apps
+ get_apps_installed_names
+
+ for app_name in "${APPS_INSTALLED_NAMES[@]}"
+ do
+ confirm_restore=
+ if [ ! $2 ]; then
+ confirm_restore=1
+ else
+ if [[ "$RESTORE_APP" == "$app_name" || "$RESTORE_APP" == "all" ]]; then
+ confirm_restore=1
+ fi
+ fi
+ if [ $confirm_restore ]; then
+ echo $"Restoring ${app_name}"
+ app_load_variables ${app_name}
+ function_check restore_${localremote}_${app_name}
+ restore_${localremote}_${app_name}
+ RESTORE_APPS_COMPLETED+=("${app_name}")
+ echo $"Restored ${app_name}"
+ fi
+ done
+}
+
+function restore_database_from_friend {
+ DATABASE_PASSWORD=
+ RESTORE_SUBDIR="root"
+
+ if [ -d $SERVER_DIRECTORY/backup/${1} ]; then
+ echo $"Restoring ${1} database"
+ local_database_dir=/root/temp${1}data
+ restore_directory_from_friend ${local_database_dir} ${1}data
+ if [ ! -f ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
+ echo $"Unable to restore ${1} database"
+ rm -rf ${local_database_dir}
+ exit 503
+ fi
+ mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
+ if [ ! "$?" = "0" ]; then
+ echo "$mysqlsuccess"
+ exit 964
+ fi
+ shred -zu ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/*
+ rm -rf ${local_database_dir}
+ echo $"Restoring ${1} installation"
+ restore_directory_from_friend /root/temp${1} ${1}
+ RESTORE_SUBDIR="var"
+ if [ ${1} ]; then
+ if [ -d /var/www/${2}/htdocs ]; then
+ if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
+ rm -rf /var/www/${2}/htdocs
+ mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
+ if [ ! "$?" = "0" ]; then
+ exit 683
+ fi
+ if [ -d /etc/letsencrypt/live/${2} ]; then
+ ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
+ ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
+ else
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
+ sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+}
+
+function restore_database {
+ RESTORE_SUBDIR="root"
+
+ if [ -d $USB_MOUNT/backup/${1} ]; then
+ echo $"Restoring ${1} database"
+ local_database_dir=/root/temp${1}data
+ function_check restore_directory_from_usb
+ restore_directory_from_usb "${local_database}" "${1}data"
+ if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
+ echo $"Unable to restore ${1} database"
+ rm -rf ${local_database}
+ function_check set_user_permissions
+ set_user_permissions
+ function_check backup_unmount_drive
+ backup_unmount_drive
+ exit 503
+ fi
+ mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < ${local_database}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
+ if [ ! "$?" = "0" ]; then
+ echo "$mysqlsuccess"
+ function_check set_user_permissions
+ set_user_permissions
+ function_check set_user_permissions
+ backup_unmount_drive
+ exit 964
+ fi
+ shred -zu ${local_database}/${RESTORE_SUBDIR}/temp${1}data/*
+ rm -rf ${local_database}
+ echo $"Restoring ${1} installation"
+ if [ ! -d /root/temp${1} ]; then
+ mkdir /root/temp${1}
+ fi
+ function_check restore_directory_from_usb
+ restore_directory_from_usb "/root/temp${1}" "${1}"
+ RESTORE_SUBDIR="var"
+ if [ ${2} ]; then
+ if [ -d /var/www/${2}/htdocs ]; then
+ if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
+ rm -rf /var/www/${2}/htdocs
+ mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
+ if [ ! "$?" = "0" ]; then
+ set_user_permissions
+ backup_unmount_drive
+ exit 683
+ fi
+ if [ -d /etc/letsencrypt/live/${2} ]; then
+ ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
+ ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
+ else
+ # Ensure that the bundled SSL cert is being used
+ if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
+ sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+}
+
+function valid_backup_destination {
+ # used to check whether any additional backup directories clash with
+ # exiting apps
+ destination_dir="$1"
+ is_valid="yes"
+
+ available_variants_list=()
+ available_system_variants
+
+ item_in_array "${destination_dir}" "${available_variants_list[@]}"
+ if [[ $? != 0 ]]; then
+ is_valid="no"
+ fi
+
+ echo $is_valid
+}
+
+function backup_extra_directories {
+ if [ ! -f $BACKUP_EXTRA_DIRECTORIES ]; then
+ return
+ fi
+
+ backup_type="$1"
+
+ echo $"Backing up some additional directories"
+ while read backup_line
+ do
+ backup_dir=$(echo "$backup_line" | awk -F ',' '{print $1}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+ if [ -d "$backup_dir" ]; then
+ destination_dir=$(echo "$backup_line" | awk -F ',' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+ if [[ $(valid_backup_destination "$destination_dir") == "yes" ]]; then
+ if [[ $backup_type == "local" ]]; then
+ backup_directory_to_usb "$backup_dir" "$destination_dir"
+ else
+ backup_directory_to_friend "$backup_dir" "$destination_dir"
+ fi
+ else
+ echo $"WARNING: The backup directory $destination_dir is already used."
+ echo $"Choose a different destination name for backing up $backup_dir"
+ fi
+ else
+ echo $"WARNING: Directory $backup_dir does not exist"
+ fi
+ done <$BACKUP_EXTRA_DIRECTORIES
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-cmake b/src/freedombone-utils-cmake
new file mode 100755
index 00000000..8341ae82
--- /dev/null
+++ b/src/freedombone-utils-cmake
@@ -0,0 +1,101 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Some things need a recent build of CMake to compile
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+CMAKE_REPO="https://github.com/Kitware/CMake"
+CMAKE_COMMIT='d6734eeb875ceca5d810e829ca90541918dca2b4'
+
+function mesh_install_cmake {
+ if [ ! -d $rootdir$INSTALL_DIR ]; then
+ chroot "$rootdir" mkdir -p $INSTALL_DIR
+ fi
+
+ chroot "$rootdir" apt-get -yq install build-essential
+
+ git clone $CMAKE_REPO $rootdir$INSTALL_DIR/cmake
+ cd $rootdir$INSTALL_DIR/cmake
+ git checkout $CMAKE_COMMIT -b $CMAKE_COMMIT
+
+ cat < $rootdir/root/install_cmake
+cd $INSTALL_DIR/cmake
+./bootstrap
+make
+if [ ! "$?" = "0" ]; then
+ exit 72581
+fi
+make install
+EOF
+ chroot "$rootdir" chmod +x /root/install_cmake
+ chroot "$rootdir" /root/install_cmake
+ chroot "$rootdir" rm /root/install_cmake
+}
+
+function install_cmake {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_cmake
+ return
+ fi
+
+ if [ -d $INSTALL_DIR/cmake ]; then
+ if ! grep -q "CMake commit:$CMAKE_COMMIT" $COMPLETION_FILE; then
+ set_repo_commit $INSTALL_DIR/cmake "CMake commit" "$CMAKE_COMMIT" $CMAKE_REPO
+ cd $INSTALL_DIR/cmake
+ ./bootstrap
+ make
+ if [ ! "$?" = "0" ]; then
+ exit 72581
+ fi
+ make install
+ fi
+ fi
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+
+ apt-get -yq install build-essential
+
+ git_clone $CMAKE_REPO $INSTALL_DIR/cmake
+ cd $INSTALL_DIR/cmake
+ git checkout $CMAKE_COMMIT -b $CMAKE_COMMIT
+ ./bootstrap
+ make
+ if [ ! "$?" = "0" ]; then
+ exit 72581
+ fi
+ make install
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-config b/src/freedombone-utils-config
new file mode 100755
index 00000000..cfa6e94a
--- /dev/null
+++ b/src/freedombone-utils-config
@@ -0,0 +1,366 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Initial reading of the configuration file, typically called freedombone.cfg
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+configuration_variables=(FRIENDS_MIRRORS_SERVER
+ FRIENDS_MIRRORS_SSH_PORT
+ FRIENDS_MIRRORS_PASSWORD
+ MY_MIRRORS_PASSWORD
+ SYSTEM_TYPE
+ SSL_PROTOCOLS
+ SSL_CIPHERS
+ SSH_CIPHERS
+ SSH_MACS
+ SSH_KEX
+ SSH_HOST_KEY_ALGORITHMS
+ SSH_PASSWORDS
+ REFRESH_GPG_KEYS_HOURS
+ GPG_KEYSERVER
+ ENABLE_SOCIAL_KEY_MANAGEMENT
+ MY_USERNAME
+ DOMAIN_NAME
+ DEFAULT_DOMAIN_NAME
+ DEFAULT_DOMAIN_CODE
+ EMAIL_DOMAIN_CODE
+ XMPP_DOMAIN_CODE
+ NAMESERVER1
+ NAMESERVER2
+ GET_IP_ADDRESS_URL
+ DDNS_PROVIDER
+ DDNS_USERNAME
+ DDNS_PASSWORD
+ LOCAL_NETWORK_STATIC_IP_ADDRESS
+ ROUTER_IP_ADDRESS
+ CPU_CORES
+ WEBSERVER_LOG_LEVEL
+ ROUTE_THROUGH_TOR
+ MY_NAME
+ MY_EMAIL_ADDRESS
+ INSTALLING_ON_BBB
+ SSH_PORT
+ INSTALLED_WITHIN_DOCKER
+ GPG_ENCRYPT_STORED_EMAIL
+ MY_GPG_PUBLIC_KEY
+ MY_GPG_PRIVATE_KEY
+ MY_GPG_PUBLIC_KEY_ID
+ USB_DRIVE
+ MAX_PHP_MEMORY
+ ONION_ONLY
+ DEFAULT_LANGUAGE
+ MINIMAL_INSTALL
+ LETSENCRYPT_SERVER
+ WIFI_INTERFACE
+ WIFI_SSID
+ WIFI_TYPE
+ WIFI_PASSPHRASE
+ WIFI_HOTSPOT
+ WIFI_NETWORKS_FILE
+ DEFAULT_SEARCH
+ SEARCH_ENGINE_PASSWORD
+ PROJECT_WEBSITE
+ PROJECT_REPO
+ GPGIT_REPO
+ GPGIT_COMMIT
+ NGINX_ENSITE_REPO
+ NGINX_ENSITE_REPO
+ NGINX_ENSITE_COMMIT
+ CLEANUP_MAILDIR_COMMIT
+ CLEANUP_MAILDIR_REPO
+ INADYN_REPO
+ INADYN_COMMIT
+ DH_KEYLENGTH
+ WIFI_CHANNEL
+ IPV6_NETWORK
+ HWRNG_TYPE
+ ENABLE_BATMAN
+ PUBLIC_MAILING_LIST)
+
+function get_completion_param {
+ param_name="$1"
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ $COMPLETION_FILE ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -q "${param_name}:" $COMPLETION_FILE; then
+ param_value=$(cat $COMPLETION_FILE | grep "${param_name}:" | head -n 1 | awk -F ':' '{print $2}')
+ echo "$param_value"
+ return
+ fi
+ fi
+ fi
+ fi
+ echo ""
+}
+
+function set_completion_param {
+ param_name="$1"
+ param_value="$2"
+
+ if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+ if [ ${#COMPLETION_FILE} -eq 0 ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ ${#param_value} -gt 0 ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -q "${param_name}:" $COMPLETION_FILE; then
+ sed -i "s|${param_name}:.*|${param_name}:${param_value}|g" $COMPLETION_FILE
+ else
+ echo "${param_name}:${param_value}" >> $COMPLETION_FILE
+ fi
+ else
+ echo "${param_name}:${param_value}" > $COMPLETION_FILE
+ fi
+ fi
+ fi
+}
+
+function mark_completed {
+ param_name="$1"
+
+ if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+ if [ ${#COMPLETION_FILE} -eq 0 ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if ! grep -Fxq "${param_name}" $COMPLETION_FILE; then
+ echo "${param_name}" >> $COMPLETION_FILE
+ fi
+ else
+ echo "${param_name}" > $COMPLETION_FILE
+ fi
+ fi
+}
+
+function is_completed {
+ param_name="$1"
+
+ if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+ if [ ${#COMPLETION_FILE} -eq 0 ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -Fxq "${param_name}" $COMPLETION_FILE; then
+ echo "1"
+ return
+ fi
+ fi
+ fi
+ echo "0"
+}
+
+function read_config_param {
+ param_name="$1"
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ $CONFIGURATION_FILE ]; then
+ if [ -f $CONFIGURATION_FILE ]; then
+ if grep -q "${param_name}=" $CONFIGURATION_FILE; then
+ param_value=$(cat $CONFIGURATION_FILE | grep "${param_name}=" | head -n 1 | awk -F '=' '{print $2}')
+ if [[ "${param_value}" != *" "* ]]; then
+ export ${param_name}=${param_value}
+ else
+ export ${param_name}="${param_value}"
+ fi
+ fi
+ fi
+ fi
+ fi
+}
+
+function config_param_exists {
+ param_name="$1"
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ $CONFIGURATION_FILE ]; then
+ if [ -f $CONFIGURATION_FILE ]; then
+ if grep -q "${param_name}=" $CONFIGURATION_FILE; then
+ param_value=$(cat $CONFIGURATION_FILE | grep "${param_name}=" | head -n 1 | awk -F '=' '{print $2}')
+ if [ ${#param_value} -gt 0 ]; then
+ echo "1"
+ return
+ fi
+ fi
+ fi
+ fi
+ fi
+ echo "0"
+}
+
+function write_config_param {
+ param_name="$1"
+ param_value="$2"
+
+ if [ ! $CONFIGURATION_FILE ]; then
+ CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
+ fi
+ if [ ${#CONFIGURATION_FILE} -eq 0 ]; then
+ CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ ${#param_value} -gt 0 ]; then
+ if [ -f $CONFIGURATION_FILE ]; then
+ if grep -q "${param_name}=" $CONFIGURATION_FILE; then
+ sed -i "s|${param_name}=.*|${param_name}=${param_value}|g" $CONFIGURATION_FILE
+ else
+ echo "${param_name}=${param_value}" >> $CONFIGURATION_FILE
+ fi
+ else
+ echo "${param_name}=${param_value}" > $CONFIGURATION_FILE
+ fi
+ fi
+ fi
+}
+
+function remove_config_param {
+ param_name="$1"
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ $CONFIGURATION_FILE ]; then
+ if [ -f $CONFIGURATION_FILE ]; then
+ if grep -q "${param_name}=" $CONFIGURATION_FILE; then
+ sed -i "/${param_name}=/d" $CONFIGURATION_FILE
+ fi
+ fi
+ fi
+ fi
+}
+
+function remove_completion_param {
+ param_name="$1"
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ $COMPLETION_FILE ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -Fxq "${param_name}" $COMPLETION_FILE; then
+ sed -i "/${param_name}/d" $COMPLETION_FILE
+ fi
+ if grep -q "${param_name}:" $COMPLETION_FILE; then
+ sed -i "/${param_name}:/d" $COMPLETION_FILE
+ fi
+ fi
+ fi
+ fi
+}
+
+function save_configuration_values {
+ for v in "${configuration_variables[@]}"
+ do
+ write_config_param "$v" "${!v}"
+ done
+}
+
+function read_configuration_values {
+ # if not installing on a Beaglebone then use sdb as the USB drive by default
+ if [ ! $INSTALLING_ON_BBB ]; then
+ if [[ $USB_DRIVE == /dev/sda1 ]]; then
+ USB_DRIVE=/dev/sdb1
+ fi
+ fi
+
+ if [ -f $CONFIGURATION_FILE ]; then
+ read_repo_servers
+
+ # Ensure that a copy of the config exists for upgrade purposes
+ if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
+ cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
+ fi
+
+ for v in "${configuration_variables[@]}"
+ do
+ read_config_param "$v"
+ done
+
+ if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
+ read_config_param "DEBIAN_REPO"
+ CHECK_MESSAGE=$"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."
+ fi
+ fi
+}
+
+function read_configuration {
+ if [[ $INSTALLING_FROM_CONFIGURATION_FILE == "yes" ]]; then
+ if [ ! -f $CONFIGURATION_FILE ]; then
+ echo $"The configuration file $CONFIGURATION_FILE was not found"
+ exit 8935
+ fi
+ fi
+
+ read_configuration_values
+}
+
+function check_system_type {
+ if [ ${#SYSTEM_TYPE} -eq 0 ]; then
+ echo $'Unknown system type'
+ exit 763572
+ fi
+ echo "System type: $SYSTEM_TYPE"
+}
+
+# check that domain names are valid and that they are unique for each app
+function check_domains {
+ specified_domains=$(cat $CONFIGURATION_FILE | grep "_DOMAIN_NAME" | uniq)
+ domains_array=($specified_domains)
+ checked_domains=()
+
+ for d in "${domains_array[@]}"
+ do
+ domain_param=$(echo "$d" | awk -F '=' '{print $1}')
+ if [[ "$domain_param" != "DEFAULT_DOMAIN_NAME" ]]; then
+ domain_value=$(echo "$d" | awk -F '=' '{print $2}')
+ if [[ "$domain_value" != "${PROJECT_NAME}.local" ]]; then
+ item_in_array "${domain_value}" "${checked_domains[@]}"
+ if [[ $? != 0 ]]; then
+ # test that this is a valid domain name
+ function_check test_domain_name
+ test_domain_name "$domain_value"
+ # add it to the list of domains
+ checked_domains+=("$domain_value")
+ else
+ echo $"Domain ${domain_value} collides with another app. The domain for each app should be unique."
+ exit 673925
+ fi
+ fi
+ fi
+ done
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-cron b/src/freedombone-utils-cron
new file mode 100755
index 00000000..61484f86
--- /dev/null
+++ b/src/freedombone-utils-cron
@@ -0,0 +1,80 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Cron functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function cron_add_mins {
+ if ! grep -q "${2}" /etc/crontab; then
+ job_user='root'
+ if [ $3 ]; then
+ job_user=$3
+ fi
+ echo "*/${1} * * * * ${job_user} ${2}" >> /etc/crontab
+ systemctl restart cron
+ fi
+}
+
+function randomize_cron {
+ # The predictable default timing of Debian cron jobs might
+ # be exploitable knowledge. Avoid too much predictability
+ # by randomizing the times when cron jobs run
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ # randomize the day on which the weekly cron job runs
+ randdow=$(($RANDOM%6+1))
+ sed -i "s|\* \* 7|* * $randdow|g" /etc/crontab
+
+ # randomize the time when the weekly cron job runs
+ randmin=$(($RANDOM%60))
+ randhr=$(($RANDOM%3+1))
+ sed -i "s|47 6|$randmin $randhr|g" /etc/crontab
+
+ # randomize the time when the daily cron job runs
+ randmin=$(($RANDOM%60))
+ randhr=$(($RANDOM%3+4))
+ sed -i "s|25 6\t\* \* \*|$randmin $randhr\t* * *|g" /etc/crontab
+
+ # randomize the time when the hourly cron job runs
+ randmin=$(($RANDOM%60))
+ sed -i "s|17 \*\t|$randmin *\t|g" /etc/crontab
+
+ # randomize monthly cron job time and day
+ randmin=$(($RANDOM%60))
+ randhr=$(($RANDOM%22+1))
+ randdom=$(($RANDOM%27+1))
+ sed -i "s|52 6\t|$randmin $randhr\t|g" /etc/crontab
+ sed -i "s|\t1 \* \*|\t$randdom * *|g" /etc/crontab
+
+ systemctl restart cron
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-cryptopp b/src/freedombone-utils-cryptopp
new file mode 100755
index 00000000..72944b52
--- /dev/null
+++ b/src/freedombone-utils-cryptopp
@@ -0,0 +1,104 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# A recent version of crypto++ is needed by some things
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+CRYPTOPP_REPO="https://github.com/weidai11/cryptopp"
+CRYPTOPP_COMMIT='65e91a8caa8c1846cb311bc83d8507e12699d6d3'
+
+function mesh_install_cryptopp {
+ if [ ! -d $rootdir$INSTALL_DIR ]; then
+ chroot "$rootdir" mkdir -p $INSTALL_DIR
+ fi
+
+ chroot "$rootdir" apt-get -yq install build-essential
+
+ git clone $CRYPTOPP_REPO $rootdir$INSTALL_DIR/cryptopp
+ cd $rootdir$INSTALL_DIR/cryptopp
+ git checkout $CRYPTOPP_COMMIT -b $CRYPTOPP_COMMIT
+ mkdir $rootdir$INSTALL_DIR/cryptopp/build
+
+ cat < $rootdir/root/install_cryptopp
+cd $INSTALL_DIR/cryptopp/build
+cmake ..
+make
+if [ ! "$?" = "0" ]; then
+ exit 62825
+fi
+make install
+EOF
+ chroot "$rootdir" chmod +x /root/install_cryptopp
+ chroot "$rootdir" /root/install_cryptopp
+ chroot "$rootdir" rm /root/install_cryptopp
+}
+
+function install_cryptopp {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_cryptopp
+ return
+ fi
+
+ if [ -d $INSTALL_DIR/cryptopp ]; then
+ if ! grep -q "Crypto++ commit:$CRYPTOPP_COMMIT" $COMPLETION_FILE; then
+ set_repo_commit $INSTALL_DIR/cryptopp "Crypto++ commit" "$CRYPTOPP_COMMIT" $CRYPTOPP_REPO
+ cd $INSTALL_DIR/cryptopp/build
+ cmake ..
+ make
+ if [ ! "$?" = "0" ]; then
+ exit 72581
+ fi
+ make install
+ fi
+ fi
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+
+ apt-get -yq install build-essential
+
+ git_clone $CRYPTOPP_REPO $INSTALL_DIR/cryptopp
+ cd $INSTALL_DIR/cryptopp
+ git checkout $CRYPTOPP_COMMIT -b $CRYPTOPP_COMMIT
+ mkdir -p $INSTALL_DIR/cryptopp/build
+ cd $INSTALL_DIR/cryptopp/build
+ cmake ..
+ make
+ if [ ! "$?" = "0" ]; then
+ exit 62826
+ fi
+ make install
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-database b/src/freedombone-utils-database
index 87ab126d..6b1d9ba4 100755
--- a/src/freedombone-utils-database
+++ b/src/freedombone-utils-database
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2014-2016 Bob Mottram
+# Copyright (C) 2014-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -28,272 +28,259 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
+# default MariaDB password
+MARIADB_PASSWORD=
+
+# Used to indicate whether the backup contains MariaDB databases or not
+BACKUP_INCLUDES_DATABASES="no"
+
+function remove_backup_database_local {
+ database_name=$1
+
+ sed -i "/# Backup the ${database_name} database/,/# End of ${database_name} database backup/d" /usr/bin/backupdatabases
+ sed -i "/# Backup ${database_name}/,/# End of backup for ${database_name}/d" /etc/cron.weekly/backupdatabasesweekly
+ sed -i "/# Backup ${database_name}/,/# End of backup for ${database_name}/d" /etc/cron.monthly/backupdatabasesmonthly
+ sed -i "/${database_name}/d" /etc/cron.hourly/repair
+}
+
function backup_database_local {
-# Makes local backups of databases which can then be automatically rolled
-# back if corruption is detected
-database_name=$1
+ # Makes local backups of databases which can then be automatically rolled
+ # back if corruption is detected
+ database_name=$1
-backup_databases_script=/usr/bin/backupdatabases
-echo '' >> $backup_databases_script
-echo "# Backup the ${database_name} database" >> $backup_databases_script
-echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
-echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
-echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
-echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
-echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
-echo ' if [ -f $DAILYFILE ]; then' >> $backup_databases_script
-echo ' cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
-echo '' >> $backup_databases_script
-echo ' # try to restore yesterdays database' >> $backup_databases_script
-echo " mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
-echo '' >> $backup_databases_script
-echo ' # Send a warning email' >> $backup_databases_script
-echo " echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
-echo ' else' >> $backup_databases_script
-echo ' # Send a warning email' >> $backup_databases_script
-echo " echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
-echo ' fi' >> $backup_databases_script
-echo 'else' >> $backup_databases_script
-echo ' chmod 600 $TEMPFILE' >> $backup_databases_script
-echo ' mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
-echo '' >> $backup_databases_script
-echo ' # Make the backup readable only by root' >> $backup_databases_script
-echo ' chmod 600 $DAILYFILE' >> $backup_databases_script
-echo 'fi' >> $backup_databases_script
+ backup_databases_script=/usr/bin/backupdatabases
+ if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
+ echo "# Backup the ${database_name} database" >> $backup_databases_script
+ echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
+ echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
+ echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
+ echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
+ echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
+ echo ' if [ -f $DAILYFILE ]; then' >> $backup_databases_script
+ echo ' cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
+ echo '' >> $backup_databases_script
+ echo ' # try to restore yesterdays database' >> $backup_databases_script
+ echo " mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
+ echo '' >> $backup_databases_script
+ echo ' # Send a warning email' >> $backup_databases_script
+ echo " echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
+ echo ' else' >> $backup_databases_script
+ echo ' # Send a warning email' >> $backup_databases_script
+ echo " echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
+ echo ' fi' >> $backup_databases_script
+ echo 'else' >> $backup_databases_script
+ echo ' chmod 600 $TEMPFILE' >> $backup_databases_script
+ echo ' mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
+ echo '' >> $backup_databases_script
+ echo ' # Make the backup readable only by root' >> $backup_databases_script
+ echo ' chmod 600 $DAILYFILE' >> $backup_databases_script
+ echo 'fi' >> $backup_databases_script
+ echo "# End of ${database_name} database backup" >> $backup_databases_script
+ fi
-weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
-if ! grep -q "${database_name}" ${weekly_backup_script}; then
-echo '' >> ${weekly_backup_script}
-echo "# ${database_name}" >> ${weekly_backup_script}
-echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${weekly_backup_script}
-echo " cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_2weekly.sql" >> ${weekly_backup_script}
-echo 'fi' >> ${weekly_backup_script}
-echo "if [ -f /var/backups/${database_name}_daily.sql ]; then" >> ${weekly_backup_script}
-echo " cp -f /var/backups/${database_name}_daily.sql /var/backups/${database_name}_weekly.sql" >> ${weekly_backup_script}
-echo 'fi' >> ${weekly_backup_script}
-fi
+ weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
+ if ! grep -q "Backup ${database_name}" ${weekly_backup_script}; then
+ echo "# Backup ${database_name}" >> ${weekly_backup_script}
+ echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${weekly_backup_script}
+ echo " cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_2weekly.sql" >> ${weekly_backup_script}
+ echo 'fi' >> ${weekly_backup_script}
+ echo "if [ -f /var/backups/${database_name}_daily.sql ]; then" >> ${weekly_backup_script}
+ echo " cp -f /var/backups/${database_name}_daily.sql /var/backups/${database_name}_weekly.sql" >> ${weekly_backup_script}
+ echo 'fi' >> ${weekly_backup_script}
+ echo "# End of backup for ${database_name}" >> ${weekly_backup_script}
+ fi
-monthly_backup_script=/etc/cron.monthly/backupdatabasesmonthly
-if ! grep -q "${database_name}" ${monthly_backup_script}; then
-echo '' >> ${monthly_backup_script}
-echo "# ${database_name}" >> ${monthly_backup_script}
-echo "if [ -f /var/backups/${database_name}_monthly.sql ]; then" >> ${monthly_backup_script}
-echo " cp -f /var/backups/${database_name}_monthly.sql /var/backups/${database_name}_2monthly.sql" >> ${monthly_backup_script}
-echo 'fi' >> ${monthly_backup_script}
-echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${monthly_backup_script}
-echo " cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_monthly.sql" >> ${monthly_backup_script}
-echo 'fi' >> ${monthly_backup_script}
-fi
+ monthly_backup_script=/etc/cron.monthly/backupdatabasesmonthly
+ if ! grep -q "Backup ${database_name}" ${monthly_backup_script}; then
+ echo "# Backup ${database_name}" >> ${monthly_backup_script}
+ echo "if [ -f /var/backups/${database_name}_monthly.sql ]; then" >> ${monthly_backup_script}
+ echo " cp -f /var/backups/${database_name}_monthly.sql /var/backups/${database_name}_2monthly.sql" >> ${monthly_backup_script}
+ echo 'fi' >> ${monthly_backup_script}
+ echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${monthly_backup_script}
+ echo " cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_monthly.sql" >> ${monthly_backup_script}
+ echo 'fi' >> ${monthly_backup_script}
+ echo "# End of backup for ${database_name}" >> ${monthly_backup_script}
+ fi
-if ! grep -q "${database_name}" /etc/cron.hourly/repair; then
-echo "${PROJECT_NAME}-repair-database ${database_name}" >> /etc/cron.hourly/repair
-# remove legacy stuff
-sed -i 's|/usr/bin/repairdatabase redmatrix||g' /etc/cron.hourly/repair
-fi
+ if ! grep -q "${database_name}" /etc/cron.hourly/repair; then
+ echo "${PROJECT_NAME}-repair-database ${database_name}" >> /etc/cron.hourly/repair
+ # remove legacy stuff
+ sed -i 's|/usr/bin/repairdatabase redmatrix||g' /etc/cron.hourly/repair
+ fi
}
function get_mariadb_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "MariaDB password" /home/$MY_USERNAME/README; then
-if [ -f $DATABASE_PASSWORD_FILE ]; then
-MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
-else
-MARIADB_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
-chmod 600 $DATABASE_PASSWORD_FILE
-fi
-fi
-fi
-}
-
-function get_mariadb_media_server_admin_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "Media server administrator password" /home/$MY_USERNAME/README; then
-MEDIA_SERVER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Media server administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-fi
-}
-
-function get_mariadb_gnusocial_admin_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "MariaDB gnusocial admin password" /home/$MY_USERNAME/README; then
-MICROBLOG_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB gnusocial admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-if grep -q "Microblog administrator password" /home/$MY_USERNAME/README; then
-MICROBLOG_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Microblog administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-fi
-}
-
-function get_mariadb_webmail_admin_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "MariaDB webmail admin password" /home/$MY_USERNAME/README; then
-WEBMAIL_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB webmail admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-fi
-}
-
-function get_mariadb_rss_reader_admin_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "RSS reader admin password" /home/$MY_USERNAME/README; then
-RSS_READER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "RSS reader admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-fi
-}
-
-function get_mariadb_git_admin_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "Gogs admin user password" /home/$MY_USERNAME/README; then
-GIT_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Gogs admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-fi
-}
-
-function get_mariadb_hubzilla_admin_password {
-if [ -f /home/$MY_USERNAME/README ]; then
-if grep -q "MariaDB Hubzilla admin password" /home/$MY_USERNAME/README; then
-HUBZILLA_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB Hubzilla admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
-fi
-fi
+ # migrate from database password file to using the password store
+ DATABASE_PASSWORD_FILE=/root/dbpass
+ if [ -f $DATABASE_PASSWORD_FILE ]; then
+ MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
+ ${PROJECT_NAME}-pass -u root -a mariadb -p "$MARIADB_PASSWORD"
+ stored_password=$(${PROJECT_NAME}-pass -u root -a mariadb)
+ if [[ "$stored_password" == "$MARIADB_PASSWORD" ]]; then
+ shred -zu $DATABASE_PASSWORD_FILE
+ echo $'MariaDB password moved into password store'
+ return
+ fi
+ fi
+ MARIADB_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
}
function install_mariadb {
-if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
-return
-fi
-apt-get -y install python-software-properties debconf-utils
-apt-get -y install software-properties-common
-apt-get -y update
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install python-software-properties debconf-utils
+ apt-get -yq install software-properties-common
+ apt-get -yq update
-get_mariadb_password
-if [ ! $MARIADB_PASSWORD ]; then
-if [ -f $IMAGE_PASSWORD_FILE ]; then
-MARIADB_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
-else
-MARIADB_PASSWORD="$(openssl rand -base64 32 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
-fi
-echo "$MARIADB_PASSWORD" > $DATABASE_PASSWORD_FILE
-chmod 600 $DATABASE_PASSWORD_FILE
+ function_check get_mariadb_password
+ get_mariadb_password
+ if [ ! $MARIADB_PASSWORD ]; then
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
+ MARIADB_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ else
+ MARIADB_PASSWORD="$(openssl rand -base64 32 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
+ fi
+ ${PROJECT_NAME}-pass -u root -a mariadb -p "$MARIADB_PASSWORD"
+ fi
-echo '' >> /home/$MY_USERNAME/README
-echo '' >> /home/$MY_USERNAME/README
-echo 'MariaDB / MySql' >> /home/$MY_USERNAME/README
-echo '===============' >> /home/$MY_USERNAME/README
-echo $"Your MariaDB password is: $MARIADB_PASSWORD" >> /home/$MY_USERNAME/README
-echo '' >> /home/$MY_USERNAME/README
-chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
-chmod 600 /home/$MY_USERNAME/README
-fi
+ debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
+ debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
+ apt-get -yq install mariadb-server
+ apt-get -yq remove --purge apache*
+ if [ -d /etc/apache2 ]; then
+ rm -rf /etc/apache2
+ echo $'Removed Apache installation after MariaDB install'
+ fi
-debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
-debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
-apt-get -y install mariadb-server
-apt-get -y remove --purge apache*
-if [ -d /etc/apache2 ]; then
-rm -rf /etc/apache2
-echo $'Removed Apache installation after MariaDB install'
-fi
+ if [ ! -d /etc/mysql ]; then
+ echo $"ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE"
+ exit 54
+ fi
-if [ ! -d /etc/mysql ]; then
-echo $"ERROR: mariadb-server does not appear to have installed. $CHECK_MESSAGE"
-exit 54
-fi
-
-mysqladmin -u root password "$MARIADB_PASSWORD"
-echo 'install_mariadb' >> $COMPLETION_FILE
+ mysqladmin -u root password "$MARIADB_PASSWORD"
+ mark_completed $FUNCNAME
}
function backup_databases_script_header {
-if [ ! -f /usr/bin/backupdatabases ]; then
-# daily
-echo '#!/bin/sh' > /usr/bin/backupdatabases
-echo '' >> /usr/bin/backupdatabases
-echo "EMAIL='$MY_EMAIL_ADDRESS'" >> /usr/bin/backupdatabases
-echo '' >> /usr/bin/backupdatabases
-echo -n 'MYSQL_PASSWORD=$(cat ' >> /usr/bin/backupdatabases
-echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/backupdatabases
-echo 'umask 0077' >> /usr/bin/backupdatabases
-echo '' >> /usr/bin/backupdatabases
-echo '# exit if we are backing up to friends servers' >> /usr/bin/backupdatabases
-echo "if [ -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backupdatabases
-echo ' exit 1' >> /usr/bin/backupdatabases
-echo 'fi' >> /usr/bin/backupdatabases
-chmod 600 /usr/bin/backupdatabases
-chmod +x /usr/bin/backupdatabases
+ if [ ! -f /usr/bin/backupdatabases ]; then
+ # daily
+ echo '#!/bin/sh' > /usr/bin/backupdatabases
+ echo '' >> /usr/bin/backupdatabases
+ echo "EMAIL='$MY_EMAIL_ADDRESS'" >> /usr/bin/backupdatabases
+ echo '' >> /usr/bin/backupdatabases
+ echo "MYSQL_PASSWORD=\$(${PROJECT_NAME}-pass -u root -a mariadb)" >> /usr/bin/backupdatabases
+ echo 'umask 0077' >> /usr/bin/backupdatabases
+ echo '' >> /usr/bin/backupdatabases
+ echo '# exit if we are backing up to friends servers' >> /usr/bin/backupdatabases
+ echo "if [ -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backupdatabases
+ echo ' exit 1' >> /usr/bin/backupdatabases
+ echo 'fi' >> /usr/bin/backupdatabases
+ chmod 600 /usr/bin/backupdatabases
+ chmod +x /usr/bin/backupdatabases
-echo '#!/bin/sh' > /etc/cron.daily/backupdatabasesdaily
-echo '/usr/bin/backupdatabases' >> /etc/cron.daily/backupdatabasesdaily
-chmod 600 /etc/cron.daily/backupdatabasesdaily
-chmod +x /etc/cron.daily/backupdatabasesdaily
+ echo '#!/bin/sh' > /etc/cron.daily/backupdatabasesdaily
+ echo '/usr/bin/backupdatabases' >> /etc/cron.daily/backupdatabasesdaily
+ chmod 600 /etc/cron.daily/backupdatabasesdaily
+ chmod +x /etc/cron.daily/backupdatabasesdaily
-# weekly
-echo '#!/bin/sh' > /etc/cron.weekly/backupdatabasesweekly
-echo '' >> /etc/cron.weekly/backupdatabasesweekly
-echo 'umask 0077' >> /etc/cron.weekly/backupdatabasesweekly
+ # weekly
+ echo '#!/bin/sh' > /etc/cron.weekly/backupdatabasesweekly
+ echo '' >> /etc/cron.weekly/backupdatabasesweekly
+ echo 'umask 0077' >> /etc/cron.weekly/backupdatabasesweekly
-chmod 600 /etc/cron.weekly/backupdatabasesweekly
-chmod +x /etc/cron.weekly/backupdatabasesweekly
+ chmod 600 /etc/cron.weekly/backupdatabasesweekly
+ chmod +x /etc/cron.weekly/backupdatabasesweekly
-# monthly
-echo '#!/bin/sh' > /etc/cron.monthly/backupdatabasesmonthly
-echo '' >> /etc/cron.monthly/backupdatabasesmonthly
-echo 'umask 0077' >> /etc/cron.monthly/backupdatabasesmonthly
+ # monthly
+ echo '#!/bin/sh' > /etc/cron.monthly/backupdatabasesmonthly
+ echo '' >> /etc/cron.monthly/backupdatabasesmonthly
+ echo 'umask 0077' >> /etc/cron.monthly/backupdatabasesmonthly
-chmod 600 /etc/cron.monthly/backupdatabasesmonthly
-chmod +x /etc/cron.monthly/backupdatabasesmonthly
-fi
+ chmod 600 /etc/cron.monthly/backupdatabasesmonthly
+ chmod +x /etc/cron.monthly/backupdatabasesmonthly
+ fi
}
function repair_databases_script {
-if [ -f /etc/cron.hourly/repair ]; then
-sed -i "s|/usr/bin/repairdatabase|${PROJECT_NAME}-repair-database|g" /etc/cron.hourly/repair
-fi
+ if [ -f /etc/cron.hourly/repair ]; then
+ sed -i "s|/usr/bin/repairdatabase|${PROJECT_NAME}-repair-database|g" /etc/cron.hourly/repair
+ fi
-if grep -Fxq "repair_databases_script" $COMPLETION_FILE; then
-return
-fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
-if [ ! -f $DATABASE_PASSWORD_FILE ]; then
-return
-fi
+ db_pass=$(${PROJECT_NAME}-pass -u root -p mariadb)
+ if [[ "$db_pass" == 'Error:'* ]]; then
+ return
+ fi
-echo '#!/bin/bash' > /etc/cron.hourly/repair
-echo '' >> /etc/cron.hourly/repair
-chmod 600 /etc/cron.hourly/repair
-chmod +x /etc/cron.hourly/repair
+ echo '#!/bin/bash' > /etc/cron.hourly/repair
+ echo '' >> /etc/cron.hourly/repair
+ chmod 600 /etc/cron.hourly/repair
+ chmod +x /etc/cron.hourly/repair
-echo 'repair_databases_script' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function remove_database {
-app_name="$1"
-if [ ! -d $INSTALL_DIR ]; then
-mkdir $INSTALL_DIR
-fi
-echo "drop database ${app_name};
+ app_name="$1"
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir $INSTALL_DIR
+ fi
+ echo "drop database ${app_name};
quit" > $INSTALL_DIR/batch.sql
-chmod 600 $INSTALL_DIR/batch.sql
-mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
-shred -zu $INSTALL_DIR/batch.sql
+ chmod 600 $INSTALL_DIR/batch.sql
+ mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
+ shred -zu $INSTALL_DIR/batch.sql
}
function create_database {
-app_name="$1"
-app_admin_password="$2"
-app_admin_username=$3
-if [ ! -d $INSTALL_DIR ]; then
-mkdir $INSTALL_DIR
-fi
-if [ ! $app_admin_username ]; then
-app_admin_username=${app_name}admin
-fi
-echo "create database ${app_name};
+ app_name="$1"
+ app_admin_password="$2"
+ app_admin_username=$3
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir $INSTALL_DIR
+ fi
+ if [ ! $app_admin_username ]; then
+ app_admin_username=${app_name}admin
+ fi
+ echo "create database ${app_name};
CREATE USER '$app_admin_username@localhost' IDENTIFIED BY '${app_admin_password}';
GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost';
quit" > $INSTALL_DIR/batch.sql
-chmod 600 $INSTALL_DIR/batch.sql
-mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
-shred -zu $INSTALL_DIR/batch.sql
+ chmod 600 $INSTALL_DIR/batch.sql
+ mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
+ shred -zu $INSTALL_DIR/batch.sql
+}
+
+function initialise_database {
+ database_name=$1
+ database_file=$2
+ mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file
+ if [ ! "$?" = "0" ]; then
+ exit 62952
+ fi
+}
+
+function run_query {
+ database_name=$1
+ database_query=$2
+ mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name
+}
+
+function drop_database {
+ database_name=$1
+ get_mariadb_password
+ mysqladmin -uroot -p"$MARIADB_PASSWORD" -f drop $database_name
+}
+
+function database_reinstall {
+ apt-get -yq purge mariadb*
+ rm -rf /var/lib/mysql
+ rm -rf /etc/mysql
+ apt-get -yq install mariadb-server
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-depends b/src/freedombone-utils-depends
new file mode 100755
index 00000000..74e06b38
--- /dev/null
+++ b/src/freedombone-utils-depends
@@ -0,0 +1,46 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Dependency checking functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function function_check {
+ if [ ! "$(type ${1} 2>/dev/null)" ]; then
+ echo $"Dependency error: The function ${1} has not been defined"
+ exit 72528
+ fi
+}
+
+function function_exists {
+ if [ ! "$(type ${1} 2>/dev/null)" ]; then
+ echo "0"
+ else
+ echo "1"
+ fi
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-dns b/src/freedombone-utils-dns
new file mode 100755
index 00000000..52e6b4a4
--- /dev/null
+++ b/src/freedombone-utils-dns
@@ -0,0 +1,242 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# DNS functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# DNS
+NAMESERVER1='213.73.91.35'
+NAMESERVER2='85.214.20.141'
+
+# parameters used when adding a new domain
+DDNS_PROVIDER="default@freedns.afraid.org"
+DDNS_USERNAME=
+DDNS_PASSWORD=
+
+INADYN_REPO="https://github.com/bashrc/inadyn"
+INADYN_COMMIT='fadbe17f520d337dfb8d69ee4bf1fcaa23fce0d6'
+
+# web site used to obtain the external IP address of the system
+GET_IP_ADDRESS_URL="checkip.two-dns.de"
+
+# other possible services to obtain the external IP address
+EXTERNAL_IP_SERVICES=( \
+ 'https://check.torproject.org/' \
+ 'https://www.whatsmydns.net/whats-my-ip-address.html' \
+ 'https://www.privateinternetaccess.com/pages/whats-my-ip/' \
+ 'http://checkip.two-dns.de' \
+ 'http://ip.dnsexit.com' \
+ 'http://ifconfig.me/ip' \
+ 'http://ipecho.net/plain' \
+ 'http://checkip.dyndns.org/plain' \
+ 'http://ipogre.com/linux.php' \
+ 'http://whatismyipaddress.com/' \
+ 'http://ip.my-proxy.com/' \
+ 'http://websiteipaddress.com/WhatIsMyIp' \
+ 'http://getmyipaddress.org/' \
+ 'http://www.my-ip-address.net/' \
+ 'http://myexternalip.com/raw' \
+ 'http://www.canyouseeme.org/' \
+ 'http://www.trackip.net/' \
+ 'http://icanhazip.com/' \
+ 'http://www.iplocation.net/' \
+ 'http://www.howtofindmyipaddress.com/' \
+ 'http://www.ipchicken.com/' \
+ 'http://whatsmyip.net/' \
+ 'http://www.ip-adress.com/' \
+ 'http://checkmyip.com/' \
+ 'http://www.tracemyip.org/' \
+ 'http://checkmyip.net/' \
+ 'http://www.lawrencegoetz.com/programs/ipinfo/' \
+ 'http://www.findmyip.co/' \
+ 'http://ip-lookup.net/' \
+ 'http://www.dslreports.com/whois' \
+ 'http://www.mon-ip.com/en/my-ip/' \
+ 'http://www.myip.ru' \
+ 'http://ipgoat.com/' \
+ 'http://www.myipnumber.com/my-ip-address.asp' \
+ 'http://www.whatsmyipaddress.net/' \
+ 'http://formyip.com/' \
+ 'http://www.displaymyip.com/' \
+ 'http://www.bobborst.com/tools/whatsmyip/' \
+ 'http://www.geoiptool.com/' \
+ 'http://checkip.dyndns.com/' \
+ 'http://myexternalip.com/' \
+ 'http://www.ip-adress.eu/' \
+ 'http://www.infosniper.net/' \
+ 'http://wtfismyip.com/' \
+ 'http://ipinfo.io/' \
+ 'http://httpbin.org/ip')
+
+function create_freedns_updater {
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ # currently inadyn doesn't work as expected with freeDNS, so this is a workaround
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $DDNS_PROVIDER != *"freedns"* ]]; then
+ return
+ fi
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+
+ # remove any legacy command
+ if [ -f /usr/bin/dynamicdns ]; then
+ rm /usr/bin/dynamicdns
+ fi
+ if grep -q "dynamicdns" /etc/crontab; then
+ sed -i '/dynamicdns/d' /etc/crontab
+ fi
+
+ # add the update command to cron
+ if ! grep -q "/usr/local/bin/freedombone-freedns" /etc/crontab; then
+ function_check cron_add_mins
+ cron_add_mins 3 '/usr/local/bin/freedombone-freedns'
+ systemctl restart cron
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function add_ddns_domain {
+ if [ ! $1 ]; then
+ echo $'ddns domain not specified'
+ exit 5638
+ fi
+ CURRENT_DDNS_DOMAIN="$1"
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ if [ ! -f /etc/inadyn.conf ]; then
+ echo $'Unable to find inadyn configuration file /etc/inadyn.conf'
+ exit 5745
+ fi
+ if ! grep -q "$DDNS_PROVIDER" /etc/inadyn.conf; then
+ echo '' >> /etc/inadyn.conf
+ echo "system $DDNS_PROVIDER" >> /etc/inadyn.conf
+ echo ' ssl' >> /etc/inadyn.conf
+ echo " checkip-url $GET_IP_ADDRESS_URL /" >> /etc/inadyn.conf
+ if [ $DDNS_USERNAME ]; then
+ echo " username $DDNS_USERNAME" >> /etc/inadyn.conf
+ fi
+ if [ $DDNS_PASSWORD ]; then
+ echo " password $DDNS_PASSWORD" >> /etc/inadyn.conf
+ fi
+ fi
+
+ if ! grep -q "$CURRENT_DDNS_DOMAIN" /etc/inadyn.conf; then
+ echo " alias $CURRENT_DDNS_DOMAIN" >> /etc/inadyn.conf
+ fi
+ chmod 600 /etc/inadyn.conf
+ systemctl restart inadyn
+ systemctl daemon-reload
+}
+
+function remove_ddns_domain {
+ if [ ! $1 ]; then
+ echo $'ddns domain not specified'
+ exit 5638
+ fi
+ CURRENT_DDNS_DOMAIN="$1"
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ if [ ! -f /etc/inadyn.conf ]; then
+ echo $'Unable to find inadyn configuration file /etc/inadyn.conf'
+ exit 5745
+ fi
+ if grep -q "$CURRENT_DDNS_DOMAIN" /etc/inadyn.conf; then
+ systemctl stop inadyn
+ sed -i "/alias $CURRENT_DDNS_DOMAIN/d" /etc/inadyn.conf
+ systemctl start inadyn
+ systemctl daemon-reload
+ fi
+}
+
+function configure_dns {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ # allow changes to resolv.conf
+ chattr -i /etc/resolv.conf
+
+ echo 'domain localdomain' > /etc/resolv.conf
+ echo 'search localdomain' >> /etc/resolv.conf
+ echo "nameserver $NAMESERVER1" >> /etc/resolv.conf
+ echo "nameserver $NAMESERVER2" >> /etc/resolv.conf
+
+ # prevent resolv.conf from changing
+ chattr +i /etc/resolv.conf
+
+ mark_completed $FUNCNAME
+}
+
+function set_hostname {
+ DEFAULT_DOMAIN_NAME="$1"
+
+ echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
+ hostname $DEFAULT_DOMAIN_NAME
+ echo "$DEFAULT_DOMAIN_NAME" > /etc/mailname
+
+ if grep -q "127.0.1.1" /etc/hosts; then
+ sed -i "s/127.0.1.1.*/127.0.1.1 $DEFAULT_DOMAIN_NAME/g" /etc/hosts
+ else
+ echo "127.0.1.1 $DEFAULT_DOMAIN_NAME" >> /etc/hosts
+ fi
+}
+
+function set_your_domain_name {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ function_check set_hostname
+ set_hostname $DEFAULT_DOMAIN_NAME
+
+ mark_completed $FUNCNAME
+}
+
+function configure_firewall_for_dns {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ iptables -A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT
+ function_check save_firewall_settings
+ save_firewall_settings
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-ffmpeg b/src/freedombone-utils-ffmpeg
new file mode 100755
index 00000000..b3e6155d
--- /dev/null
+++ b/src/freedombone-utils-ffmpeg
@@ -0,0 +1,53 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# ffmpeg functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+FFMPEG_VERSION=3.1.2
+
+function mesh_install_ffmpeg
+{
+ chroot "${rootdir}" apt-get -yq remove ffmpeg libav-tools
+ chroot "${rootdir}" apt-get -yq install build-essential
+ chroot "${rootdir}" apt-get -yq install --reinstall libmp3lame-dev libvorbis-dev libtheora-dev libspeex-dev yasm pkg-config libopenjpeg-dev libx264-dev mjpegtools libmjpegtools-dev
+ mkdir -p ${rootdir}$INSTALL_DIR/ffmpeg-release
+ cd ${rootdir}$INSTALL_DIR
+ wget http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2
+ tar xvjf ffmpeg-${FFMPEG_VERSION}.tar.bz2
+ chroot ${rootdir} /bin/bash -x <
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+TOMB_REPO="https://github.com/dyne/Tomb"
+TOMB_COMMIT='c80ebd6d6ed77980eb5b559757e03ea13a29bdd1'
+
+function mesh_install_tomb {
+ chroot ${rootdir} apt-get -yq install cryptsetup zsh pinentry-curses
+
+ if [ ! -d ${rootdir}/$INSTALL_DIR ]; then
+ mkdir -p ${rootdir}/$INSTALL_DIR
+ fi
+
+ git_clone $TOMB_REPO ${rootdir}/$INSTALL_DIR/tomb
+ cd ${rootdir}/$INSTALL_DIR/tomb
+
+ git checkout $TOMB_COMMIT -b $TOMB_COMMIT
+
+ chroot ${rootdir} /bin/bash -x <
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function install_final {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ # unmount any attached usb drive
+ if [ -d $USB_MOUNT ]; then
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ fi
+ function_check split_gpg_key_into_fragments
+ split_gpg_key_into_fragments
+
+ mark_completed $FUNCNAME
+ clear
+ echo ''
+
+ echo $"
+*** ${PROJECT_NAME} installation is complete ***
+
+If you wish to verify the server ssh public key at next login it is:
+$(get_ssh_server_key)
+
+Ensure that ports are forwarded from your internet router
+"
+ echo ''
+
+ if [ -f "/home/$MY_USERNAME/README" ]; then
+ echo $"See /home/$MY_USERNAME/README for post-installation instructions."
+ echo ''
+ fi
+ # add user menu on ssh login
+ if ! grep -q 'control' /home/$MY_USERNAME/.bashrc; then
+ echo 'control' >> /home/$MY_USERNAME/.bashrc
+ fi
+ if [ ! -f $IMAGE_PASSWORD_FILE ]; then
+ if [ -f /root/${PROJECT_NAME}-wifi.cfg ]; then
+ create_wifi_startup_script
+ echo ''
+ echo $'Shutting down the system. Detatch the ethernet cable, attach wifi dongle, then power on again.'
+ echo ''
+ ${PROJECT_NAME}-logging off
+ shutdown now
+ return
+ fi
+ ${PROJECT_NAME}-logging off
+ reboot
+ fi
+ ${PROJECT_NAME}-logging off
+}
+
+function update_installed_apps_list {
+ # Why does this secondary file exist, apart from COMPLETION_FILE ?
+ # It's so that it is visible to unprivileged users from the user control panel
+ cat $COMPLETION_FILE | grep "install_" > /usr/share/${PROJECT_NAME}/installed.txt
+}
+
+function setup_final {
+ function_check update_installed_apps_list
+ update_installed_apps_list
+
+ function_check install_tripwire
+ install_tripwire
+
+ function_check install_final
+ install_final
+
+ export DEBIAN_FRONTEND=
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-firewall b/src/freedombone-utils-firewall
new file mode 100755
index 00000000..6313dc39
--- /dev/null
+++ b/src/freedombone-utils-firewall
@@ -0,0 +1,291 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Firewall functions
+#
+# TODO: in future investigate using nftables
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+FIREWALL_CONFIG=$HOME/${PROJECT_NAME}-firewall.cfg
+
+function save_firewall_settings {
+ iptables-save > /etc/firewall.conf
+ ip6tables-save > /etc/firewall6.conf
+ printf '#!/bin/sh\n' > /etc/network/if-up.d/iptables
+ printf 'iptables-restore < /etc/firewall.conf\n' >> /etc/network/if-up.d/iptables
+ printf 'ip6tables-restore < /etc/firewall6.conf\n' >> /etc/network/if-up.d/iptables
+ if [ -f /etc/network/if-up.d/iptables ]; then
+ chmod +x /etc/network/if-up.d/iptables
+ fi
+}
+
+function global_rate_limit {
+ if ! grep -q "tcp_challenge_ack_limit" /etc/sysctl.conf; then
+ echo 'net.ipv4.tcp_challenge_ack_limit = 999999999' >> /etc/sysctl.conf
+ else
+ sed -i 's|net.ipv4.tcp_challenge_ack_limit.*|net.ipv4.tcp_challenge_ack_limit = 999999999|g' /etc/sysctl.conf
+ fi
+ sysctl -p -q
+}
+
+function enable_ipv6 {
+ # endure that ipv6 is enabled and can route
+ sed -i 's/net.ipv6.conf.all.disable_ipv6.*/net.ipv6.conf.all.disable_ipv6 = 0/g' /etc/sysctl.conf
+ #sed -i "s/net.ipv6.conf.all.accept_redirects.*/net.ipv6.conf.all.accept_redirects = 1/g" /etc/sysctl.conf
+ #sed -i "s/net.ipv6.conf.all.accept_source_route.*/net.ipv6.conf.all.accept_source_route = 1/g" /etc/sysctl.conf
+ sed -i "s/net.ipv6.conf.all.forwarding.*/net.ipv6.conf.all.forwarding=1/g" /etc/sysctl.conf
+ echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+}
+
+function configure_firewall {
+ if [ $INSTALLING_MESH ]; then
+ mesh_firewall
+ return
+ fi
+ if grep -q "RELATED" /etc/firewall.conf; then
+ # recreate the firewall to remove RELATED
+ sed -i "/firewall/d" $COMPLETION_FILE
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ iptables -P INPUT ACCEPT
+ ip6tables -P INPUT ACCEPT
+ iptables -F
+ ip6tables -F
+ iptables -t nat -F
+ ip6tables -t nat -F
+ iptables -X
+ ip6tables -X
+ iptables -P INPUT DROP
+ ip6tables -P INPUT DROP
+ iptables -A INPUT -i lo -j ACCEPT
+ iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
+
+ # Make sure incoming tcp connections are SYN packets
+ iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
+
+ # Drop packets with incoming fragments
+ iptables -A INPUT -f -j DROP
+
+ # Drop bogons
+ iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
+ iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
+ iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
+
+ # Incoming malformed NULL packets:
+ iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
+
+ mark_completed $FUNCNAME
+}
+
+function configure_firewall_ping {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ # Only allow ping for mesh installs
+ if [[ $SYSTEM_TYPE != "mesh"* ]]; then
+ return
+ fi
+ iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
+ iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
+ function_check save_firewall_settings
+ save_firewall_settings
+ mark_completed $FUNCNAME
+}
+
+function configure_internet_protocol {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ sed -i "s/#net.ipv4.tcp_syncookies=1/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv4.conf.all.accept_redirects = 0/net.ipv4.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv6.conf.all.accept_redirects = 0/net.ipv6.conf.all.accept_redirects = 0/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv4.conf.all.send_redirects = 0/net.ipv4.conf.all.send_redirects = 0/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv4.conf.all.accept_source_route = 0/net.ipv4.conf.all.accept_source_route = 0/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv6.conf.all.accept_source_route = 0/net.ipv6.conf.all.accept_source_route = 0/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv4.conf.default.rp_filter=1/net.ipv4.conf.default.rp_filter=1/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv4.conf.all.rp_filter=1/net.ipv4.conf.all.rp_filter=1/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/g" /etc/sysctl.conf
+ sed -i "s/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=0/g" /etc/sysctl.conf
+ if ! grep -q "ignore pings" /etc/sysctl.conf; then
+ echo '# ignore pings' >> /etc/sysctl.conf
+ echo 'net.ipv4.icmp_echo_ignore_all = 1' >> /etc/sysctl.conf
+ echo 'net.ipv6.icmp_echo_ignore_all = 1' >> /etc/sysctl.conf
+ fi
+ if ! grep -q "disable ipv6" /etc/sysctl.conf; then
+ echo '# disable ipv6' >> /etc/sysctl.conf
+ echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
+ fi
+ if ! grep -q "net.ipv4.tcp_synack_retries" /etc/sysctl.conf; then
+ echo 'net.ipv4.tcp_synack_retries = 2' >> /etc/sysctl.conf
+ echo 'net.ipv4.tcp_syn_retries = 1' >> /etc/sysctl.conf
+ fi
+ if ! grep -q "keepalive" /etc/sysctl.conf; then
+ echo '# keepalive' >> /etc/sysctl.conf
+ echo 'net.ipv4.tcp_keepalive_probes = 9' >> /etc/sysctl.conf
+ echo 'net.ipv4.tcp_keepalive_intvl = 75' >> /etc/sysctl.conf
+ echo 'net.ipv4.tcp_keepalive_time = 7200' >> /etc/sysctl.conf
+ fi
+ mark_completed $FUNCNAME
+}
+
+function mesh_firewall {
+ FIREWALL_FILENAME=${rootdir}/etc/systemd/system/meshfirewall.service
+ MESH_FIREWALL_SCRIPT=${rootdir}/usr/bin/mesh-firewall
+
+ echo '#!/bin/bash' > $MESH_FIREWALL_SCRIPT
+ echo 'iptables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -P INPUT ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -t nat -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -t nat -F' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -X' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -X' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'ip6tables -P INPUT DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -i lo -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Make sure incoming tcp connections are SYN packets' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Drop packets with incoming fragments' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -f -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Drop bogons' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo '# Incoming malformed NULL packets:' >> $MESH_FIREWALL_SCRIPT
+ echo 'iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP' >> $MESH_FIREWALL_SCRIPT
+ echo '' >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -p tcp --dport $TOX_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ echo "iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
+ chmod +x $MESH_FIREWALL_SCRIPT
+
+ echo '[Unit]' > $FIREWALL_FILENAME
+ echo 'Description=Mesh Firewall' >> $FIREWALL_FILENAME
+ echo '' >> $FIREWALL_FILENAME
+ echo '[Service]' >> $FIREWALL_FILENAME
+ echo 'Type=oneshot' >> $FIREWALL_FILENAME
+ echo 'ExecStart=/usr/bin/mesh-firewall' >> $FIREWALL_FILENAME
+ echo 'RemainAfterExit=no' >> $FIREWALL_FILENAME
+ echo '' >> $FIREWALL_FILENAME
+ echo 'TimeoutSec=30' >> $FIREWALL_FILENAME
+ echo '' >> $FIREWALL_FILENAME
+ echo '[Install]' >> $FIREWALL_FILENAME
+ echo 'WantedBy=multi-user.target' >> $FIREWALL_FILENAME
+ chmod +x $FIREWALL_FILENAME
+ chroot "$rootdir" systemctl enable meshfirewall
+}
+
+function firewall_add {
+ firewall_name=$(echo "$1" | sed "s| |-|g")
+ firewall_port=$2
+ firewall_protocol="$3"
+
+ if ! grep -q "${firewall_name}=${firewall_port}" $FIREWALL_CONFIG; then
+ echo "${firewall_name}=${firewall_port}" >> $FIREWALL_CONFIG
+ if [ ! ${firewall_protocol} ]; then
+ iptables -A INPUT -p udp --dport ${firewall_port} -j ACCEPT
+ iptables -A INPUT -p tcp --dport ${firewall_port} -j ACCEPT
+ else
+ if [[ "${firewall_protocol}" == *"udp"* ]]; then
+ iptables -A INPUT -p udp --dport ${firewall_port} -j ACCEPT
+ fi
+ if [[ "${firewall_protocol}" == *"tcp"* ]]; then
+ iptables -A INPUT -p tcp --dport ${firewall_port} -j ACCEPT
+ fi
+ fi
+ save_firewall_settings
+ fi
+}
+
+function firewall_add_range {
+ firewall_name=$(echo "$1" | sed "s| |-|g")
+ firewall_port_start=$2
+ firewall_port_end=$3
+ firewall_protocol="$4"
+
+ if ! grep -q "${firewall_name}=${firewall_port_start}:${firewall_port_end}" $FIREWALL_CONFIG; then
+ echo "${firewall_name}=${firewall_port_start}:${firewall_port_end}" >> $FIREWALL_CONFIG
+ if [ ! ${firewall_protocol} ]; then
+ iptables -A INPUT -p udp --dport ${firewall_port_start}:${firewall_port_end} -j ACCEPT
+ iptables -A INPUT -p tcp --dport ${firewall_port_start}:${firewall_port_end} -j ACCEPT
+ else
+ if [[ "${firewall_protocol}" == *"udp"* ]]; then
+ iptables -A INPUT -p udp --dport ${firewall_port_start}:${firewall_port_end} -j ACCEPT
+ fi
+ if [[ "${firewall_protocol}" == *"tcp"* ]]; then
+ iptables -A INPUT -p tcp --dport ${firewall_port_start}:${firewall_port_end} -j ACCEPT
+ fi
+ fi
+ save_firewall_settings
+ fi
+}
+
+
+function firewall_remove {
+ firewall_port=$1
+ firewall_protocol="$2"
+
+ if [ ! -f $FIREWALL_CONFIG ]; then
+ return
+ fi
+
+ if grep -q "=${firewall_port}" $FIREWALL_CONFIG; then
+ if [ ! ${firewall_protocol} ]; then
+ iptables -D INPUT -p udp --dport ${firewall_port} -j ACCEPT
+ iptables -D INPUT -p tcp --dport ${firewall_port} -j ACCEPT
+ else
+ if [[ "${firewall_protocol}" == *"udp"* ]]; then
+ iptables -D INPUT -p udp --dport ${firewall_port} -j ACCEPT
+ fi
+ if [[ "${firewall_protocol}" == *"tcp"* ]]; then
+ iptables -D INPUT -p tcp --dport ${firewall_port} -j ACCEPT
+ fi
+ fi
+ sed -i "/=${firewall_port}/d" $FIREWALL_CONFIG
+ save_firewall_settings
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-git b/src/freedombone-utils-git
index ee138a6a..1a4d7a1f 100755
--- a/src/freedombone-utils-git
+++ b/src/freedombone-utils-git
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2014-2016 Bob Mottram
+# Copyright (C) 2014-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -29,177 +29,128 @@
# along with this program. If not, see .
function git_clone {
- repo_url="$1"
- destination_dir="$2"
+ repo_url="$1"
+ destination_dir="$2"
- if [[ "$repo_url" == "ssh:"* ]]; then
- retval=$(get_friends_servers)
- if [[ $retval == "0" ]]; then
- if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
- if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
- if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
- if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
- echo "sshpass -p \"$FRIENDS_MIRRORS_PASSWORD\" git clone $repo_url $destination_dir"
- sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git clone "$repo_url" "$destination_dir"
- return
- fi
- fi
- fi
- fi
- fi
- fi
- echo "git clone $repo_url $destination_dir"
- git clone "$repo_url" "$destination_dir"
+ if [[ "$repo_url" == 'ssh:'* ]]; then
+ if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
+ if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
+ if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
+ if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
+ echo "sshpass -p \"$FRIENDS_MIRRORS_PASSWORD\" git clone $repo_url $destination_dir"
+ sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git clone "$repo_url" "$destination_dir"
+ return
+ fi
+ fi
+ fi
+ fi
+ fi
+ echo "git clone $repo_url $destination_dir"
+ git clone --recursive "$repo_url" "$destination_dir"
}
function git_pull {
- if [ ! $1 ]; then
- echo $'git_pull no repo specified'
- fi
+ if [ ! $1 ]; then
+ echo $'git_pull no repo specified'
+ fi
- git stash
- git remote set-url origin $1
- git checkout master
- retval=$(get_friends_servers)
- if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
- if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
- if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
- if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
- sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git pull
- if [ $2 ]; then
- git checkout $2 -b $2
- fi
- return
- fi
- fi
- fi
- fi
- git pull
+ git merge --abort
+ git stash
+ git remote set-url origin $1
+ git checkout master
+ if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
+ if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
+ if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
+ if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
+ sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git pull
+ if [ $2 ]; then
+ git checkout $2 -b $2
+ fi
+ return
+ fi
+ fi
+ fi
+ fi
+ git pull
- if [ $2 ]; then
- # delete any existing branch
- git branch -D $2
- # check out the new branch
- git checkout $2 -b $2
- if [ ! "$?" = "0" ]; then
- echo $"Unable to checkout $1 $2"
- exit 72357
- fi
- fi
+ if [ $2 ]; then
+ # delete any existing branch
+ git branch -D $2
+ # check out the new branch
+ git checkout $2 -b $2
+ if [ ! "$?" = "0" ]; then
+ echo $"Unable to checkout $1 $2"
+ exit 72357
+ fi
+ fi
}
-# This might be replaced in future with a separate rss reader script
-function rss_reader_modifications {
- # modify the rss reader to use a socks5 proxy rather than a http proxy
- if [ ! -d $RSS_READER_PATH ]; then
- return
- fi
-
- # ensure that socks5 proxy is used
- if ! grep -q "CURLOPT_PROXYTYPE" $RSS_READER_PATH/plugins/af_unburn/init.php; then
- sed -i '/curl_setopt($ch, CURLOPT_PROXY, _CURL_HTTP_PROXY);/a \\t\t\t\t\tcurl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);' $RSS_READER_PATH/plugins/af_unburn/init.php
- fi
- if ! grep -q "CURLOPT_PROXYTYPE" $RSS_READER_PATH/include/functions.php; then
- sed -i '/curl_setopt($ch, CURLOPT_PROXY, _CURL_HTTP_PROXY);/a \\t\t\t\tcurl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);' $RSS_READER_PATH/include/functions.php
- fi
- chown -R www-data:www-data $RSS_READER_PATH
- chmod a+x $RSS_READER_PATH
+function commit_has_changed {
+ repo_dir=$1
+ repo_commit_name=$2
+ repo_commit=$3
+ if [ -d $repo_dir ]; then
+ if grep -q "$repo_commit_name" $COMPLETION_FILE; then
+ CURRENT_REPO_COMMIT=$(get_completion_param "$repo_commit_name")
+ if [[ "$CURRENT_REPO_COMMIT" != "$repo_commit" ]]; then
+ echo "1"
+ fi
+ fi
+ fi
+ echo "0"
}
# This ensures that a given repo is on a given commit
# If it isn't then it attempts to upgrade
function set_repo_commit {
- repo_dir=$1
- repo_commit_name=$2
- repo_commit=$3
- repo_url=$4
- if [ -d $repo_dir ]; then
- if grep -q "$repo_commit_name" $COMPLETION_FILE; then
- CURRENT_REPO_COMMIT=$(grep "$repo_commit_name" $COMPLETION_FILE | awk -F ':' '{print $2}')
- if [[ "$CURRENT_REPO_COMMIT" != "$repo_commit" ]]; then
- cd $repo_dir
- git_pull $repo_url $repo_commit
+ repo_dir=$1
+ repo_commit_name=$2
+ repo_commit=$3
+ repo_url=$4
- # application specific stuff after updating the repo
- if [[ $repo_dir == *"www"* ]]; then
- chown -R www-data:www-data $repo_dir
- fi
- if [[ $repo_dir == *"cjdns" ]]; then
- ./do
- fi
- if [[ $repo_dir == *"tlsdate" ]]; then
- cd $INSTALL_DIR/tlsdate
- make clean
- ./configure
- if [ ! "$?" = "0" ]; then
- echo $'Failed to configure tlsdate'
- exit 727824
- fi
- make
- if [ ! "$?" = "0" ]; then
- echo $'Failed to build tlsdate'
- exit 728752
- fi
- make install
- fi
- if [[ $repo_dir == *"gpgit" ]]; then
- cp gpgit.pl /usr/bin/gpgit.pl
- fi
- if [[ $repo_dir == *"cleanup-maildir" ]]; then
- cp $INSTALL_DIR/cleanup-maildir/cleanup-maildir /usr/bin
- fi
- if [[ $repo_dir == *"nginx_ensite" ]]; then
- make install
- fi
- if [[ $repo_dir == *"gogs" ]]; then
- git checkout master
- go get -u ./...
- if [ ! "$?" = "0" ]; then
- echo $'Failed to get gogs'
- exit 52792
- fi
- git checkout $repo_commit
- go build
- if [ ! "$?" = "0" ]; then
- echo $'Failed to build gogs'
- exit 36226
- fi
- systemctl restart gogs
- fi
- if [[ $repo_dir == *"toxcore" ]]; then
- sed -i 's|ExecStart=.*|ExecStart=/usr/local/bin/tox-bootstrapd --config /etc/tox-bootstrapd.conf|g' $rootdir/etc/systemd/system/tox-bootstrapd.service
- autoreconf -i
- ./configure --enable-daemon
- make
- make install
- systemctl daemon-reload
- systemctl restart tox-bootstrapd.service
- fi
- if [[ $repo_dir == *"toxic" ]]; then
- make
- make install
- fi
- if [[ $repo_dir == $RSS_READER_PATH ]]; then
- rss_reader_modifications
- fi
- if [[ $repo_dir == *"inadyn" ]]; then
- ./configure
- USE_OPENSSL=1 make
- make install
- systemctl restart inadyn
- fi
- if [[ $repo_dir == *"ipfs" ]]; then
- chown -R git:git /home/git
- systemctl restart ipfs
- systemctl daemon-reload
- fi
+ if [[ $(commit_has_changed $repo_dir $repo_commit_name $repo_commit) == "1" ]]; then
+ cd $repo_dir
+ git_pull $repo_url $repo_commit
- sed -i "s/${repo_commit_name}.*/${repo_commit_name}:$repo_commit/g" $COMPLETION_FILE
- fi
- else
- echo "${repo_commit_name}:${repo_commit}" >> $COMPLETION_FILE
- fi
- fi
+ # application specific stuff after updating the repo
+ if [[ $repo_dir == *"www"* ]]; then
+ chown -R www-data:www-data $repo_dir
+ fi
+ if [[ $repo_dir == *"gpgit" ]]; then
+ cp gpgit.pl /usr/bin/gpgit.pl
+ fi
+ if [[ $repo_dir == *"cleanup-maildir" ]]; then
+ cp $INSTALL_DIR/cleanup-maildir/cleanup-maildir /usr/bin
+ fi
+ if [[ $repo_dir == *"nginx_ensite" ]]; then
+ make install
+ fi
+ if [[ $repo_dir == *"inadyn" ]]; then
+ ./configure
+ USE_OPENSSL=1 make
+ make install
+ systemctl restart inadyn
+ fi
+
+ function_check set_completion_param
+ set_completion_param "${repo_commit_name}" "${repo_commit}"
+ fi
+}
+
+function configure_firewall_for_git {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ firewall_add Git 9418 tcp
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-go b/src/freedombone-utils-go
new file mode 100755
index 00000000..9c18bcd6
--- /dev/null
+++ b/src/freedombone-utils-go
@@ -0,0 +1,213 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Go functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# For reasons unknown we initially have to upgrade to an intermediate version
+# before getting to the version we want
+GO_INTERMEDIATE_VERSION=1.4.2
+
+GO_VERSION=1.7
+
+GO_REPO="https://go.googlesource.com/go"
+GO_PACKAGE_MANAGER_REPO="https://github.com/gpmgo/gopm"
+GVM_HOME=/home/git/gvm
+GVM_REPO="https://github.com/moovweb/gvm"
+GVM_COMMIT='25ea8ae158e2861c92e2b22c458e60840157832f'
+
+function select_go_version {
+ if [ ! -d $GVM_HOME/bin ]; then
+ echo $'GVM was not installed'
+ exit 629532
+ fi
+ export GVM_ROOT=$GVM_HOME
+ if ! grep -q "GVM_ROOT=" ~/.bashrc; then
+ echo "export GVM_ROOT=$GVM_ROOT" >> ~/.bashrc
+ else
+ sed -i "s|export GVM_ROOT=.*|export GVM_ROOT=$GVM_ROOT|g" ~/.bashrc
+ fi
+ cd $GVM_ROOT/bin
+ [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
+ gvm use go${GO_VERSION} --default
+
+ if [ ${#GOPATH} -lt 2 ]; then
+ echo $'GOPATH was not set'
+ exit 629825
+ fi
+
+ systemctl set-environment GOPATH=$GOPATH
+}
+
+function mesh_upgrade_golang_from_source {
+ chroot "$rootdir" adduser --disabled-login --gecos 'go' ipfs
+
+ git clone $GO_REPO $rootdir/home/go/go${GO_VERSION}
+ cd $rootdir/home/go/go${GO_VERSION}
+ git checkout go${GO_VERSION} -b go${GO_VERSION}
+
+ git clone $GO_REPO $rootdir/home/go/go${GO_INTERMEDIATE_VERSION}
+ cd $rootdir/home/go/go${GO_INTERMEDIATE_VERSION}
+ git checkout go${GO_INTERMEDIATE_VERSION} -b go${GO_INTERMEDIATE_VERSION}
+
+ cat < ${rootdir}/root/upgrade_golang.sh
+#!/bin/bash
+
+apt-get -yq install build-essential libc6-dev
+apt-get -yq install gcc-multilib g++-multilib make
+apt-get -yq install curl git mercurial binutils bison
+
+if [ -d /home/go/Maildir ]; then
+ rm -rf /home/go/Maildir
+fi
+
+export GOROOT=/home/go
+export GOPATH=/home/go/go${GO_INTERMEDIATE_VERSION}
+
+cd /home/go/go${GO_INTERMEDIATE_VERSION}/src
+./all.bash
+if [ ! -f /home/go/go${GO_INTERMEDIATE_VERSION}/bin/go ]; then
+ exit 63722
+fi
+
+export GOROOT_BOOTSTRAP=/home/go/go${GO_INTERMEDIATE_VERSION}
+
+cd /home/go/go${GO_VERSION}/src
+./all.bash
+if [ ! -f /home/go/go${GO_VERSION}/bin/go ]; then
+ exit 528352
+fi
+
+chown -R go:go /home/go
+
+export GOPATH=/home/go/go${GO_VERSION}
+export GOROOT=/home/go
+echo "export GOPATH=/home/go/go${GO_VERSION}" >> /home/go/.bashrc
+echo "export GOPATH=/home/go/go${GO_VERSION}" >> ~/.bashrc
+echo "export GOROOT=/home/go" >> /home/go/.bashrc
+echo "export GOROOT=/home/go" >> ~/.bashrc
+echo "systemctl set-environment GOPATH=\$GOPATH" >> ~/.bashrc
+echo "systemctl set-environment GOROOT=\$GOROOT" >> ~/.bashrc
+echo "systemctl set-environment GOPATH=\$GOPATH" >> /home/go/.bashrc
+echo "systemctl set-environment GOROOT=\$GOROOT" >> /home/go/.bashrc
+systemctl set-environment GOPATH=\$GOPATH
+systemctl set-environment GOROOT=\$GOROOT
+
+exit 0
+EOF
+ chroot ${rootdir} chmod +x /root/upgrade_golang.sh
+ chroot ${rootdir} /root/upgrade_golang.sh
+ if [ ! -f ${rootdir}/home/go/go${GO_VERSION}/bin/go ]; then
+ echo $'Failed to upgrade golang'
+ cat ${rootdir}/root/upgrade_golang.sh
+ rm -f ${rootdir}/root/upgrade_golang.sh
+ exit 836535
+ fi
+ rm -f ${rootdir}/root/upgrade_golang.sh
+}
+
+function mesh_upgrade_golang {
+ prefix=
+ if [ $rootdir ]; then
+ prefix="chroot $rootdir"
+ fi
+ $prefix adduser --disabled-login --gecos 'go' go
+
+ GOARCH=
+ if [[ $ARCHITECTURE == *"386" || $ARCHITECTURE == *"686" ]]; then
+ GOARCH=386
+ fi
+ if [[ $ARCHITECTURE == *"amd64" || $ARCHITECTURE == "x86_64" ]]; then
+ GOARCH=amd64
+ fi
+ if [[ $ARCHITECTURE == *"arm"* ]]; then
+ GOARCH=armv6l
+ fi
+ if [ ! $GOARCH ]; then
+ echo $'No architecture specified'
+ ARCHITECTURE=$(uname -m)
+ if [[ $ARCHITECTURE == "arm"* ]]; then
+ GOARCH=armv6l
+ fi
+ if [[ $ARCHITECTURE == "amd"* || $ARCHITECTURE == "x86_64" ]]; then
+ GOARCH=amd64
+ fi
+ if [[ $ARCHITECTURE == *"386" || $ARCHITECTURE == *"686" ]]; then
+ GOARCH=386
+ fi
+ fi
+ GO_SOURCE=https://storage.googleapis.com/golang/go${GO_VERSION}.linux-${GOARCH}.tar.gz
+
+ if [ ! -d ${rootdir}${INSTALL_DIR} ]; then
+ chroot "$rootdir" mkdir -p ${INSTALL_DIR}
+ fi
+ cd ${rootdir}${INSTALL_DIR}
+ wget ${GO_SOURCE}
+ if [ ! -f ${rootdir}${INSTALL_DIR}/go${GO_VERSION}.linux-${GOARCH}.tar.gz ]; then
+ exit 26524
+ fi
+ $prefix tar -C /home/go -xzf ${INSTALL_DIR}/go${GO_VERSION}.linux-${GOARCH}.tar.gz
+ if [ ! -d ${rootdir}/home/go/go/bin ]; then
+ echo 'Go binary not installed'
+ exit 763562
+ fi
+ mv ${rootdir}/home/go/go ${rootdir}/home/go/go${GO_VERSION}
+ echo "export GOROOT=/home/go" >> ${rootdir}/root/.bashrc
+ echo "export GOROOT=/home/go" >> ${rootdir}/home/$MY_USERNAME/.bashrc
+ echo "export GOROOT=/home/go" >> ${rootdir}/home/go/.bashrc
+
+ echo "export GOPATH=\$GOROOT/go${GO_VERSION}/bin" >> ${rootdir}/root/.bashrc
+ echo "export GOPATH=\$GOROOT/go${GO_VERSION}/bin" >> ${rootdir}/home/$MY_USERNAME/.bashrc
+ echo "export GOPATH=\$GOROOT/go${GO_VERSION}/bin" >> ${rootdir}/home/go/.bashrc
+
+ echo 'export PATH=$PATH:$GOPATH' >> ${rootdir}/root/.bashrc
+ echo 'export PATH=$PATH:$GOPATH' >> ${rootdir}/home/$MY_USERNAME/.bashrc
+ echo 'export PATH=$PATH:$GOPATH' >> ${rootdir}/home/go/.bashrc
+ $prefix chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME
+ $prefix chown -R go:go /home/go
+ cp ${rootdir}/home/go/go${GO_VERSION}/bin/* ${rootdir}/usr/bin
+}
+
+function upgrade_golang {
+ if grep -Fxq "upgrade_golang:$GO_VERSION" $COMPLETION_FILE; then
+ return
+ fi
+
+ rootdir=
+ mesh_upgrade_golang
+
+ # alter the go version used by the gogs daemon
+ if [ -f /etc/systemd/system/gogs.service ]; then
+ sed -i "s|Environment=.*|Environment=\"USER=gogs\" \"HOME=/home/gogs\" \"GOPATH=/home/go/go${GO_VERSION}\"|g" /etc/systemd/system/gogs.service
+ systemctl daemon-reload
+ systemctl restart gogs
+ fi
+
+ set_completion_param "$FUNCNAME" "$GO_VERSION"
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-gpg b/src/freedombone-utils-gpg
new file mode 100755
index 00000000..d43adad9
--- /dev/null
+++ b/src/freedombone-utils-gpg
@@ -0,0 +1,65 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# gpg functions
+#
+# License
+# =======
+#
+# Copyright (C) 2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function enable_email_encryption_at_rest {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if grep '#| /usr/bin/gpgit.pl' /home/$USERNAME/.procmailrc; then
+ sed -i 's@#| /usr/bin/gpgit.pl@| /usr/bin/gpgit.pl@g' /home/$USERNAME/.procmailrc
+ sed -i 's|#:0 f|:0 f|g' /home/$USERNAME/.procmailrc
+ fi
+ fi
+ done
+
+ if grep '#| /usr/bin/gpgit.pl' /etc/skel/.procmailrc; then
+ sed -i 's@#| /usr/bin/gpgit.pl@| /usr/bin/gpgit.pl@g' /etc/skel/.procmailrc
+ sed -i 's|#:0 f|:0 f|g' /etc/skel/.procmailrc
+ fi
+}
+
+function disable_email_encryption_at_rest {
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if ! grep '#| /usr/bin/gpgit.pl' /home/$USERNAME/.procmailrc; then
+ sed -i 's@| /usr/bin/gpgit.pl@#| /usr/bin/gpgit.pl@g' /home/$USERNAME/.procmailrc
+ sed -i 's|:0 f|#:0 f|g' /home/$USERNAME/.procmailrc
+ fi
+ fi
+ done
+
+ if ! grep '#| /usr/bin/gpgit.pl' /etc/skel/.procmailrc; then
+ sed -i 's@| /usr/bin/gpgit.pl@#| /usr/bin/gpgit.pl@g' /etc/skel/.procmailrc
+ sed -i 's|:0 f|#:0 f|g' /etc/skel/.procmailrc
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-help b/src/freedombone-utils-help
new file mode 100755
index 00000000..a5c8f87b
--- /dev/null
+++ b/src/freedombone-utils-help
@@ -0,0 +1,68 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Show help
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function show_help {
+ echo ''
+ echo $"${PROJECT_NAME} -c [configuration file]"
+ echo ''
+ echo $' -h --help Show help'
+ echo $' menuconfig Easy interactive installation'
+ echo $' menuconfig-full Full interactive installation'
+ echo $' menuconfig-onion Interactive installation for onion-only sites'
+ echo $' -c --config Installing from a configuration file'
+ echo $' --bbb Installing on Beaglebone Black'
+ echo $' -u --user User to install the system as'
+ echo $' -d --domain Default domain name'
+ echo $' -s --system System type'
+ echo $' --ip Static LAN IP address of the system'
+ echo $' --iprouter LAN IP address of the internet router'
+ echo $' --ddns Dynamic DNS provider domain'
+ echo $' --ddnsuser Dynamic DNS provider username'
+ echo $' --ddnspass Dynamic DNS provider password'
+ echo ''
+ echo $' -t --time Domain used as a TLS time source'
+ echo $' --ssh ssh port number'
+ echo $' --list Public mailing list name'
+ echo $' --cores Number of CPU cores'
+ echo $' --name Your name'
+ echo $' --email Your email address'
+ echo $' --usb Path for the USB drive (eg. /dev/sdb1)'
+ echo $' --vpass Mumble server password'
+ echo $' --vport Mumble server port'
+ echo $' --ns1 First DNS nameserver'
+ echo $' --ns2 Second DNS nameserver'
+ echo $' --repo Debian repository'
+ echo ''
+ echo 'Possible variants are:'
+ show_available_variants
+ exit 0
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-interactive b/src/freedombone-utils-interactive
new file mode 100755
index 00000000..53d6daac
--- /dev/null
+++ b/src/freedombone-utils-interactive
@@ -0,0 +1,245 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Interactive install functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function interactive_configuration_remote_backups {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [ ! -f /usr/local/bin/${PROJECT_NAME}-remote ]; then
+ if [ ! -f /usr/bin/${PROJECT_NAME}-remote ]; then
+ echo $"The command ${PROJECT_NAME}-remote was not found"
+ exit 87354
+ fi
+ fi
+ ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes
+ if [ ! "$?" = "0" ]; then
+ echo $'Command failed:'
+ echo ''
+ echo $" ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes"
+ echo ''
+ exit 65892
+ fi
+}
+
+function interactive_configuration {
+ if [ ! -f /usr/local/bin/${PROJECT_NAME}-config ]; then
+ if [ ! -f /usr/bin/${PROJECT_NAME}-config ]; then
+ echo $"The command ${PROJECT_NAME}-config was not found"
+ exit 63935
+ fi
+ fi
+ if [ -f /tmp/meshuserdevice ]; then
+ rm -f /tmp/meshuserdevice
+ fi
+
+ if [[ $ONION_ONLY == "no" ]]; then
+ if [[ $MINIMAL_INSTALL == "no" ]]; then
+ ${PROJECT_NAME}-config \
+ -f $CONFIGURATION_FILE \
+ -w $PROJECT_WEBSITE \
+ -m $MINIMUM_PASSWORD_LENGTH
+ else
+ ${PROJECT_NAME}-config \
+ -f $CONFIGURATION_FILE \
+ -w $PROJECT_WEBSITE \
+ -m $MINIMUM_PASSWORD_LENGTH \
+ --minimal "yes"
+ fi
+ else
+ ${PROJECT_NAME}-config \
+ -f $CONFIGURATION_FILE \
+ -w $PROJECT_WEBSITE \
+ -m $MINIMUM_PASSWORD_LENGTH \
+ --onion "yes"
+ fi
+ if [ -f /tmp/meshuserdevice ]; then
+ # mesh network user device installation
+ rm -f /tmp/meshuserdevice
+ exit 0
+ fi
+ if [ ! "$?" = "0" ]; then
+ echo $'Command failed:'
+ echo ''
+ echo $" ${PROJECT_NAME}-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $PROJECT_WEBSITE -b $PROJECT_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH --minimal [yes|no]"
+ echo ''
+ exit 73594
+ fi
+
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
+
+ dialog --title $"Encrypted backup to other servers" \
+ --backtitle $"${PROJECT_NAME} Configuration" \
+ --defaultno \
+ --yesno $"\nDo you wish to configure some remote backup locations?" 7 60
+ sel=$?
+ case $sel in
+ 0) interactive_configuration_remote_backups;;
+ esac
+ fi
+}
+
+function interactive_site_details {
+ site_name="$1"
+ site_name_upper=${site_name^^}
+
+ SITE_BACKTITLE=$"Freedombone Configuration"
+ SITE_CONFIG_TITLE=$"${site_name^} Configuration"
+ SITE_FORM_TEXT=$"\nPlease enter your ${site_name^} details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:"
+ SITE_DOMAIN_NAME=
+ SITE_CODE=
+ SITE_DETAILS_COMPLETE=
+ while [ ! $SITE_DETAILS_COMPLETE ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ dialog --backtitle "$SITE_BACKTITLE" \
+ --title "$SITE_CONFIG_TITLE" \
+ --form "$SITE_FORM_TEXT" 14 55 3 \
+ $"Domain:" 1 1 "$(grep '${site_name_upper}_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
+ $"Code:" 2 1 "$(grep '${site_name_upper}_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
+ 2> $data
+ else
+ dialog --backtitle "$SITE_BACKTITLE" \
+ --title "$SITE_CONFIG_TITLE" \
+ --form "$SITE_FORM_TEXT" 11 55 3 \
+ $"Domain:" 1 1 "$(grep '${site_name_upper}_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
+ 2> $data
+ fi
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ SITE_DOMAIN_NAME=$(cat $data | sed -n 1p)
+ if [ $SITE_DOMAIN_NAME ]; then
+ TEST_DOMAIN_NAME=$SITE_DOMAIN_NAME
+ validate_domain_name
+ if [[ $TEST_DOMAIN_NAME != $SITE_DOMAIN_NAME ]]; then
+ SITE_DOMAIN_NAME=
+ dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
+ else
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ SITE_CODE=$(cat $data | sed -n 2p)
+ validate_freedns_code "$SITE_CODE"
+ if [ ! $VALID_CODE ]; then
+ SITE_DOMAIN_NAME=
+ fi
+ fi
+ fi
+ fi
+ if [ $SITE_DOMAIN_NAME ]; then
+ SITE_DETAILS_COMPLETE="yes"
+ fi
+ done
+
+ # save the results in the config file
+ write_config_param "${site_name_upper}_DOMAIN_NAME" "$SITE_DOMAIN_NAME"
+ site_code_str="$SITE_CODE"
+ if [ ${#site_code_str} -gt 1 ]; then
+ write_config_param "${site_name_upper}_CODE" "${SITE_CODE}"
+ fi
+}
+
+function interactive_site_details_with_title {
+ site_name="${1}"
+
+ SITE_BACKTITLE=$"Freedombone Configuration"
+ SITE_CONFIG_TITLE=$"${site_name^} Configuration"
+ SITE_FORM_TEXT=$"\nPlease enter your ${site_name^} details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:"
+
+ SITE_TITLE=
+ SITE_DOMAIN_NAME=
+ SITE_CODE=
+
+ SITE_DETAILS_COMPLETE=
+ while [ ! $SITE_DETAILS_COMPLETE ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ dialog --backtitle $"Freedombone Configuration" \
+ --title "$SITE_BACKTITLE" \
+ --form "$SITE_FORM_TEXT" 14 55 4 \
+ $"Title:" 1 1 "$(grep '$SITE_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
+ $"Domain:" 2 1 "$(grep '$SITE_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
+ $"Code:" 3 1 "$(grep '$SITE_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 16 33 255 \
+ 2> $data
+ else
+ dialog --backtitle "$SITE_BACKTITLE" \
+ --title "$SITE_CONFIG_TITLE" \
+ --form "$SITE_FORM_TEXT" 11 55 3 \
+ $"Title:" 1 1 "$(grep '$SITE_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
+ $"Domain:" 2 1 "$(grep '$SITE_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
+ 2> $data
+ fi
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 1;;
+ esac
+ SITE_TITLE=$(cat $data | sed -n 1p)
+ SITE_DOMAIN_NAME=$(cat $data | sed -n 2p)
+ site_domain_name_str="$SITE_DOMAIN_NAME"
+ if [ ${#site_domain_name_str} -gt 1 ]; then
+ TEST_DOMAIN_NAME="$SITE_DOMAIN_NAME"
+ validate_domain_name
+ if [[ "$TEST_DOMAIN_NAME" != "${SITE_DOMAIN_NAME}" ]]; then
+ SITE_DOMAIN_NAME=
+ dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
+ else
+ if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
+ SITE_CODE=$(cat $data | sed -n 3p)
+ validate_freedns_code "${SITE_CODE}"
+ if [ ! $VALID_CODE ]; then
+ SITE_DOMAIN_NAME=
+ fi
+ fi
+ fi
+ fi
+ site_title_str="$SITE_TITLE"
+ if [ ${#site_title_str} -gt 0 ]; then
+ if [ ${SITE_DOMAIN_NAME} ]; then
+ SITE_DETAILS_COMPLETE="yes"
+ fi
+ fi
+ done
+
+ # save the results in the config file
+ write_config_param "$2" "${SITE_TITLE}"
+ write_config_param "$3" "${SITE_DOMAIN_NAME}"
+ site_code_str="$SITE_CODE"
+ if [ ${#site_code_str} -gt 1 ]; then
+ write_config_param "$4" "${SITE_CODE}"
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-international b/src/freedombone-utils-international
new file mode 100755
index 00000000..66dbda58
--- /dev/null
+++ b/src/freedombone-utils-international
@@ -0,0 +1,55 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# International/language functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function locale_setup {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install locales locales-all debconf
+
+ if [ ! "$DEFAULT_LANGUAGE" ]; then
+ DEFAULT_LANGUAGE='en_GB.UTF-8'
+ fi
+ if [ ${#DEFAULT_LANGUAGE} -lt 2 ]; then
+ DEFAULT_LANGUAGE='en_GB.UTF-8'
+ fi
+
+ locale-gen "${DEFAULT_LANGUAGE}"
+ update-locale LANG=${DEFAULT_LANGUAGE}
+ update-locale LANGUAGE=${DEFAULT_LANGUAGE}
+ update-locale LC_MESSAGES=${DEFAULT_LANGUAGE}
+ update-locale LC_ALL=${DEFAULT_LANGUAGE}
+ update-locale LC_CTYPE=${DEFAULT_LANGUAGE}
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-keys b/src/freedombone-utils-keys
new file mode 100755
index 00000000..cc112853
--- /dev/null
+++ b/src/freedombone-utils-keys
@@ -0,0 +1,257 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Encryption key related functions
+
+# License
+# =======
+#
+# Copyright (C) 2015-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function reconstruct_key {
+ if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
+ return
+ fi
+ cd /home/$MY_USERNAME/.gnupg_fragments
+ no_of_shares=$(ls -afq keyshare.asc.* | wc -l)
+ if (( no_of_shares < 4 )); then
+ dialog --title $"Recover Encryption Keys" --msgbox $'Not enough fragments to reconstruct the key' 6 70
+ exit 7348
+ fi
+ apt-get -yq install libgfshare-bin gnupg
+ gfcombine /home/$MY_USERNAME/.gnupg_fragments/keyshare*
+ if [ ! "$?" = "0" ]; then
+ dialog --title $"Recover Encryption Keys" --msgbox $'Unable to reconstruct the key' 6 70
+ exit 7348
+ fi
+
+ KEYS_FILE=/home/$MY_USERNAME/.gnupg_fragments/keyshare.asc
+ if [ ! -f $KEYS_FILE ]; then
+ dialog --title $"Recover Encryption Keys" --msgbox $'Unable to reconstruct the key' 6 70
+ fi
+
+ su -c "gpg --allow-secret-key-import --import $KEYS_FILE" - $MY_USERNAME
+ if [ ! "$?" = "0" ]; then
+ echo $'Unable to import gpg key'
+ shred -zu $KEYS_FILE
+ rm -rf /home/$MY_USERNAME/.tempgnupg
+ exit 9654
+ fi
+ shred -zu $KEYS_FILE
+
+ dialog --title $"Recover Encryption Keys" --msgbox $'Key has been reconstructed' 6 70
+}
+
+function interactive_gpg_from_usb {
+ dialog --title $"Recover Encryption Keys" \
+ --msgbox $'Plug in a USB keydrive containing a copy of your full key or key fragment' 6 70
+
+ HOME_DIR=/home/$MY_USERNAME
+ GPG_LOADING="yes"
+ SSH_IMPORTED="no"
+ GPG_CTR=0
+ while [[ $GPG_LOADING == "yes" ]]
+ do
+ detect_usb_drive
+
+ if [ ! -b $USB_DRIVE ]; then
+ if (( GPG_CTR > 0 )); then
+ reconstruct_key
+ return 0
+ fi
+ dialog --title $"Recover Encryption Keys" --msgbox $'No USB drive found' 6 30
+ exit 739836
+ fi
+
+ backup_mount_drive ${USB_DRIVE} ${MY_USERNAME}
+
+ if [ ! -d $USB_MOUNT ]; then
+ if (( GPG_CTR > 0 )); then
+ backup_unmount_drive ${USB_DRIVE}
+ reconstruct_key
+ return 0
+ fi
+ dialog --title $"Recover Encryption Keys" \
+ --msgbox $"There was a problem mounting the USB drive $USB_DRIVE to $USB_MOUNT" 6 70
+ backup_unmount_drive ${USB_DRIVE}
+ exit 74393
+ fi
+
+ if [ ! -d $USB_MOUNT/.gnupg ]; then
+ if [ ! -d $USB_MOUNT/.gnupg_fragments ]; then
+ if (( GPG_CTR > 0 )); then
+ backup_unmount_drive ${USB_DRIVE}
+ reconstruct_key
+ return 0
+ fi
+ dialog --title $"Recover Encryption Keys" \
+ --msgbox $"The directory $USB_MOUNT/.gnupg or $USB_MOUNT/.gnupg_fragments was not found" 6 70
+ backup_unmount_drive ${USB_DRIVE}
+ exit 723814
+ fi
+ fi
+
+ if [ -d $USB_MOUNT/letsencrypt ]; then
+ if [ ! -d /etc/letsencrypt ]; then
+ mkdir /etc/letsencrypt
+ fi
+ echo $'Recovering LetsEncrypt keys'
+ cp -r $USB_MOUNT/letsencrypt/* /etc/letsencrypt
+ fi
+
+ if [ -d $USB_MOUNT/.gnupg ]; then
+ if [ ! -d $HOME_DIR/.gnupg ]; then
+ mkdir $HOME_DIR/.gnupg
+ fi
+ echo $'Recovering GPG keys'
+ cp -r $USB_MOUNT/.gnupg/* $HOME_DIR/.gnupg
+ GPG_LOADING="no"
+ dialog --title $"Recover Encryption Keys" \
+ --msgbox $"GPG Keyring loaded to $HOME_DIR" 6 70
+ else
+ if [ ! -d $HOME_DIR/.gnupg_fragments ]; then
+ mkdir $HOME_DIR/.gnupg_fragments
+ fi
+ cp -r $USB_MOUNT/.gnupg_fragments/* $HOME_DIR/.gnupg_fragments
+ fi
+
+ if [[ $SSH_IMPORTED == "no" ]]; then
+ if [ -d $USB_MOUNT/.ssh ]; then
+ if [ ! -d $HOME_DIR/.ssh ]; then
+ mkdir $HOME_DIR/.ssh
+ fi
+ cp $USB_MOUNT/.ssh/* $HOME_DIR/.ssh
+ dialog --title $"Recover Encryption Keys" \
+ --msgbox $"ssh keys imported" 6 70
+ SSH_IMPORTED="yes"
+ fi
+ fi
+
+ if [ -d $USB_MOUNT ]; then
+ backup_unmount_drive ${USB_DRIVE}
+ fi
+ if [[ $GPG_LOADING == "yes" ]]; then
+ dialog --title $"Recover Encryption Keys" \
+ --msgbox $"Now remove the USB drive. Insert the next drive containing a key fragment, or select Ok to finish" 6 70
+ fi
+ GPG_CTR=$((GPG_CTR + 1))
+ done
+}
+
+function interactive_gpg_from_remote {
+ REMOTE_SERVERS_LIST=/home/$MY_USERNAME/keyshareservers.txt
+
+ # get a list of remote servers
+ ${PROJECT_NAME}-remote -u $MY_USERNAME -l $REMOTE_SERVERS_LIST -t "Remote server"
+
+ if [ ! -f $REMOTE_SERVERS_LIST ]; then
+ dialog --title $"Encryption Keys Recovery" --msgbox $'Error obtaining server list' 6 70
+ return 1
+ fi
+
+ # check the number of entries in the file
+ no_of_servers=$(cat $REMOTE_SERVERS_LIST | wc -l)
+ if (( no_of_servers < 3 )); then
+ dialog --title $"Encryption Keys Recovery" \
+ --msgbox $'There must be at least three servers to recover the key' 6 70
+ return 2
+ fi
+
+ # try to recover the key from the servers
+ apt-get -yq install libgfshare-bin gnupg
+ ${PROJECT_NAME}-recoverkey -u $MY_USERNAME -l $REMOTE_SERVERS_LIST
+ if [ ! "$?" = "0" ]; then
+ dialog --title $"Encryption Keys Recovery" --msgbox $'Your key could not be recovered' 6 70
+ return 3
+ fi
+
+ dialog --title $"Encryption Keys Recovery" --msgbox $'Your key has been recovered' 6 70
+
+ return 0
+}
+
+function interactive_gpg {
+ GPG_CONFIGURED="no"
+ while [[ $GPG_CONFIGURED != "yes" ]]
+ do
+ GPG_CONFIGURED="yes"
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --radiolist $"GPG/PGP keys for your system:" 13 70 3 \
+ 1 $"Generate new keys (new user)" on \
+ 2 $"Import keys from USB drive/s" off \
+ 3 $"Retrieve keys from friends servers" off 2> $data
+ sel=$?
+ case $sel in
+ 1) exit 1;;
+ 255) exit 2;;
+ esac
+ case $(cat $data) in
+ 1) if [ -d /home/${MY_USERNAME}/.gnupg ]; then
+ rm -rf /home/${MY_USERNAME}/.gnupg
+ fi
+ break;;
+ 2) interactive_gpg_from_usb
+ break;;
+ 3) interactive_gpg_from_remote
+ if [ ! "$?" = "0" ]; then
+ GPG_CONFIGURED="no"
+ fi;;
+ esac
+ done
+}
+
+function interactive_key_recovery {
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+
+ dialog --title $"Encryption Keys Recovery" \
+ --backtitle $"Freedombone Configuration" \
+ --defaultno \
+ --yesno $"Do you wish to recover your previous encryption keys from a USB master keydrive?" 7 60
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ apt-get -yq install cryptsetup
+ ${PROJECT_NAME}-recoverkey -u $MY_USERNAME
+ if [ -d /home/$MY_USERNAME/.gnupg ]; then
+ cp -rf /home/$MY_USERNAME/.gnupg /root
+ fi
+}
+
+function set_password_for_all_users {
+ app_name="$1"
+ change_password="$2"
+
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ ${PROJECT_NAME}-pass -u "${USERNAME}" -a "${app_name}" -p "${change_password}"
+ fi
+ done
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-login b/src/freedombone-utils-login
new file mode 100755
index 00000000..8a6f55e2
--- /dev/null
+++ b/src/freedombone-utils-login
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# login functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function change_login_message {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ # remove automatic motd creator if it exists
+ if [ -f /etc/init.d/motd ]; then
+ rm -f /etc/init.d/motd
+ fi
+
+ echo '' > /etc/motd
+ echo ".---. . . " >> /etc/motd
+ echo "| | | " >> /etc/motd
+ echo "|--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. " >> /etc/motd
+ echo "| | (.-' (.-' ( | ( )| | | | )( )| | (.-' " >> /etc/motd
+ echo "' ' --' --' -' - -' ' ' -' -' -' ' - --'" >> /etc/motd
+ echo $' Freedom in the Cloud' >> /etc/motd
+ echo '' >> /etc/motd
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-monkeysphere b/src/freedombone-utils-monkeysphere
new file mode 100755
index 00000000..cdf16cfc
--- /dev/null
+++ b/src/freedombone-utils-monkeysphere
@@ -0,0 +1,66 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# monkeysphere functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function install_monkeysphere {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install monkeysphere msva-perl
+ #su -c "monkeysphere gen-subkey $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
+ mkdir /home/$MY_USERNAME/.monkeysphere
+ chmod 755 /home/$MY_USERNAME/.monkeysphere
+ echo "$MY_NAME <${MY_EMAIL_ADDRESS}>" > /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
+ chmod 644 /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.monkeysphere
+ monkeysphere-authentication update-users
+
+ if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
+ echo $'monkeysphere import: ssh host key not found'
+ exit 76295
+ fi
+ monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$DEFAULT_DOMAIN_NAME
+ SSH_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')
+ monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$SSH_ONION_HOSTNAME
+
+ if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_USERNAME@$HOSTNAME")
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
+ echo $'monkeysphere unable to get GPG key ID for user $MY_USERNAME'
+ exit 52825
+ fi
+ fi
+ # The admin user is the identity certifier
+ fpr=$(gpg --with-colons --fingerprint $MY_GPG_PUBLIC_KEY_ID | grep fpr | head -n 1 | awk -F ':' '{print $10}')
+ monkeysphere-authentication add-identity-certifier $fpr
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-network b/src/freedombone-utils-network
new file mode 100755
index 00000000..8797d131
--- /dev/null
+++ b/src/freedombone-utils-network
@@ -0,0 +1,99 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Network functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# If the system is on an IPv6 network
+IPV6_NETWORK='2001:470:26:307'
+
+# The static IP address of the system within the local network
+# By default the IP address is dynamic within your LAN
+LOCAL_NETWORK_STATIC_IP_ADDRESS=
+
+# IP address of the router (gateway)
+ROUTER_IP_ADDRESS="192.168.1.254"
+
+MESH_INSTALL_DIR=/var/lib
+
+function install_static_network {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLING_ON_BBB == "yes" ]]; then
+ return
+ fi
+ if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
+ return
+ fi
+
+ echo '# The loopback network interface' > /etc/network/interfaces
+ echo 'auto lo' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The primary network interface' >> /etc/network/interfaces
+ echo 'auto eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet static' >> /etc/network/interfaces
+ echo " address $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/network/interfaces
+ echo ' netmask 255.255.255.0' >> /etc/network/interfaces
+ echo " gateway $ROUTER_IP_ADDRESS" >> /etc/network/interfaces
+ echo " dns-nameservers $NAMESERVER1 $NAMESERVER2" >> /etc/network/interfaces
+ echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
+ echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The secondary network interface' >> /etc/network/interfaces
+ echo '#auto eth1' >> /etc/network/interfaces
+ echo '#iface eth1 inet dhcp' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# WiFi Example' >> /etc/network/interfaces
+ echo "#auto $WIFI_INTERFACE" >> /etc/network/interfaces
+ echo "#iface $WIFI_INTERFACE inet dhcp" >> /etc/network/interfaces
+ echo '# wpa-ssid "essid"' >> /etc/network/interfaces
+ echo '# wpa-psk "password"' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# Ethernet/RNDIS gadget (g_ether)' >> /etc/network/interfaces
+ echo '# ... or on host side, usbnet and random hwaddr' >> /etc/network/interfaces
+ echo '# Note on some boards, usb0 is automaticly setup with an init script' >> /etc/network/interfaces
+ echo '#iface usb0 inet static' >> /etc/network/interfaces
+ echo '# address 192.168.7.2' >> /etc/network/interfaces
+ echo '# netmask 255.255.255.0' >> /etc/network/interfaces
+ echo '# network 192.168.7.0' >> /etc/network/interfaces
+ echo '# gateway 192.168.7.1' >> /etc/network/interfaces
+
+ mark_completed $FUNCNAME
+}
+
+function get_ipv4_address {
+ IPv4dev=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++)if($i~/dev/)print $(i+1)}')
+ echo $(ip -o -f inet addr show dev "$IPv4dev" | awk '{print $4}' | awk 'END {print}' | awk -F '/' '{print $1}')
+}
+
+function get_ipv6_address {
+ echo $(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-nodejs b/src/freedombone-utils-nodejs
new file mode 100755
index 00000000..ff7ae811
--- /dev/null
+++ b/src/freedombone-utils-nodejs
@@ -0,0 +1,157 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# nodejs functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# For reasons unknown we initially have to upgrade to an intermediate version
+# before getting to the version we want
+
+VARIANTS='mesh'
+
+# change these versions at your peril. Things will often crash if you don't
+# have specifically the correct versions
+NODEJS_VERSION='6.9.0'
+NODEJS_N_VERSION='2.1.4'
+NPM_VERSION='4.0.2'
+
+# This file keeps track of the apps needing nodejs
+# so that it can be removed if tere are no apps which need it
+NODEJS_INSTALLED_APPS_FILE=$HOME/.nodejs-apps
+
+function mesh_install_nodejs {
+ chroot "${rootdir}" apt-get -yq install nodejs
+ chroot "${rootdir}" apt-get -yq install npm curl
+
+ if [ ! -f ${rootdir}/usr/bin/nodejs ]; then
+ echo $'nodejs was not installed'
+ exit 63962
+ fi
+
+ cat < ${rootdir}/root/install-nodejs.sh
+#!/bin/bash
+PATH="/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin"
+NODE_PATH="/usr/lib/node_modules"
+cp /usr/bin/nodejs /usr/local/bin/node
+cp /usr/bin/nodejs /usr/bin/node
+/usr/bin/curl -0 -L https://npmjs.org/install.sh | sh
+npm install -g n@${NODEJS_N_VERSION} --save
+n ${NODEJS_VERSION}
+exit 0
+EOF
+ chroot "${rootdir}" chmod +x /root/install-nodejs.sh
+ chroot "${rootdir}" /root/install-nodejs.sh
+ if [ ! "$?" = "0" ]; then
+ chroot "${rootdir}" rm -f /root/install-nodejs.sh
+ exit 7632572
+ fi
+ chroot "${rootdir}" rm -f /root/install-nodejs.sh
+}
+
+function remove_nodejs {
+ if [ ! $1 ]; then
+ return
+ fi
+ if [ ! -f $NODEJS_INSTALLED_APPS_FILE ]; then
+ remove_app nodejs
+ return
+ fi
+ sed -i "/install_${1}/d" $NODEJS_INSTALLED_APPS_FILE
+ if ! grep "install_" $NODEJS_INSTALLED_APPS_FILE; then
+ apt-get -yq remove --purge nodejs
+
+ if [ -f /usr/bin/nodejs ]; then
+ rm /usr/bin/nodejs
+ fi
+ if [ -f /usr/local/bin/node ]; then
+ rm /usr/local/bin/node
+ fi
+ if [ -f /usr/bin/node ]; then
+ rm /usr/bin/node
+ fi
+ if [ -d /usr/lib/node_modules ]; then
+ rm -rf /usr/lib/node_modules
+ fi
+
+ remove_app nodejs
+
+ rm $NODEJS_INSTALLED_APPS_FILE
+
+ apt-get -yq autoremove
+ fi
+}
+
+function install_nodejs {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_nodejs
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install nodejs
+ apt-get -yq install npm curl
+
+ if [ ! -f /usr/bin/nodejs ]; then
+ echo $'nodejs was not installed'
+ exit 63962
+ fi
+
+ cat < /root/install-nodejs.sh
+#!/bin/bash
+PATH="/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin"
+NODE_PATH="/usr/lib/node_modules"
+cp /usr/bin/nodejs /usr/local/bin/node
+cp /usr/bin/nodejs /usr/bin/node
+/usr/bin/curl -0 -L https://npmjs.org/install.sh | sh
+npm install -g n@${NODEJS_N_VERSION} --save
+n ${NODEJS_VERSION}
+npm upgrade -g npm@${NPM_VERSION} --save
+npm install -g pug@2.0.0-beta6 --save
+npm install -g graceful-fs@4.1.10 --save
+npm install -g minimatch@3.0.3 --save
+exit 0
+EOF
+ chmod +x /root/install-nodejs.sh
+ /root/install-nodejs.sh
+ if [ ! "$?" = "0" ]; then
+ rm -f /root/install-nodejs.sh
+ exit 7632572
+ fi
+ rm -f /root/install-nodejs.sh
+
+ if [ $1 ]; then
+ if ! grep "install_${1}" $NODEJS_INSTALLED_APPS_FILE; then
+ echo "install_${1}" >> $NODEJS_INSTALLED_APPS_FILE
+ fi
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-onion b/src/freedombone-utils-onion
new file mode 100755
index 00000000..ebec438a
--- /dev/null
+++ b/src/freedombone-utils-onion
@@ -0,0 +1,399 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Onion functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function onion_update {
+ # update so that new onion services appear
+ systemctl reload tor
+}
+
+function onion_service_exists {
+ onion_service_name="$1"
+
+ if [ -f /var/lib/tor/hidden_service_${onion_service_name}/hostname ]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+function wait_for_onion_service_base {
+ onion_service_name="$1"
+
+ sleep_ctr=0
+ while [ $(onion_service_exists ${onion_service_name}) == "0" ]; do
+ sleep 1
+ sleep_ctr=$((sleep_ctr + 1))
+ if [ $sleep_ctr -gt 10 ]; then
+ break
+ fi
+ done
+}
+
+function wait_for_onion_service {
+ onion_service_name="$1"
+
+ wait_for_onion_service_base ${onion_service_name}
+
+ if [ $(onion_service_exists ${onion_service_name}) == "0" ]; then
+ # try a second time
+ onion_update
+ wait_for_onion_service_base ${onion_service_name}
+ fi
+}
+
+function remove_onion_service {
+ onion_service_name="$1"
+ onion_service_port_to=$2
+ #sed -i "/stealth ${onion_service_name}/d" /etc/tor/torrc
+ sed -i "/hidden_service_${onion_service_name}/d" /etc/tor/torrc
+ sed -i "/127.0.0.1:${onion_service_port_to}/d" /etc/tor/torrc
+ if [ $3 ]; then
+ sed -i "/127.0.0.1:${3}/d" /etc/tor/torrc
+ if [ $4 ]; then
+ sed -i "/127.0.0.1:${4}/d" /etc/tor/torrc
+ if [ $5 ]; then
+ sed -i "/127.0.0.1:${5}/d" /etc/tor/torrc
+ fi
+ fi
+ fi
+ if [ $(onion_service_exists ${onion_service_name}) == "1" ]; then
+ shred -zu /var/lib/tor/hidden_service_${onion_service_name}/*
+ rm -rf /var/lib/tor/hidden_service_${onion_service_name}
+ fi
+ remove_completion_param "${onion_service_name} onion domain"
+ onion_update
+}
+
+function add_onion_service {
+ onion_service_name="$1"
+ onion_service_port_from=$2
+ onion_service_port_to=$3
+
+ if [ $(onion_service_exists ${onion_service_name}) == "1" ]; then
+ echo $(cat /var/lib/tor/hidden_service_${onion_service_name}/hostname)
+ return
+ fi
+
+ if [ ! -d /var/lib/tor ]; then
+ echo $"No Tor installation found. ${onion_service_name} onion site cannot be configured."
+ exit 877367
+ fi
+ if ! grep -q "hidden_service_${onion_service_name}" /etc/tor/torrc; then
+ echo "HiddenServiceDir /var/lib/tor/hidden_service_${onion_service_name}/" >> /etc/tor/torrc
+ echo "HiddenServicePort ${onion_service_port_from} 127.0.0.1:${onion_service_port_to}" >> /etc/tor/torrc
+ #echo "HiddenServiceAuthorizeClient stealth ${onion_service_name}" >> /etc/tor/torrc
+ fi
+
+ onion_update
+
+ function_check wait_for_onion_service
+ wait_for_onion_service ${onion_service_name}
+
+ if [ $(onion_service_exists ${onion_service_name}) == "0" ]; then
+ echo $"${onion_service_name} onion site hostname not found"
+ exit 76362
+ fi
+
+ onion_address=$(cat /var/lib/tor/hidden_service_${onion_service_name}/hostname)
+
+ # Record the domain in the completion file
+ set_completion_param "${onion_service_name} onion domain" "${onion_address}"
+
+ echo $onion_address
+}
+
+function set_default_onion_domains {
+ # If sites are only visible via Tor then for installation
+ # purposes assign them some default domain names
+ if [[ $ONION_ONLY == "no" ]]; then
+ return
+ fi
+
+ POSTACTIV_DOMAIN_NAME='postactiv.local'
+ GNUSOCIAL_DOMAIN_NAME='gnusocial.local'
+ HTMLY_DOMAIN_NAME='htmly.local'
+ GHOST_DOMAIN_NAME='ghost.local'
+ DOKUWIKI_DOMAIN_NAME='dokuwiki.local'
+ DEFAULT_DOMAIN_NAME="${PROJECT_NAME}.local"
+ GIT_DOMAIN_NAME='gogs.local'
+}
+
+function create_avahi_onion_domains {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [ ! -d /etc/avahi/services ]; then
+ return
+ fi
+ if [ $GNUSOCIAL_DOMAIN_NAME ]; then
+ function_check create_avahi_service
+ create_avahi_service gnusocial http tcp $GNUSOCIAL_ONION_PORT
+ fi
+ if [ $HTMLY_DOMAIN_NAME ]; then
+ function_check create_avahi_service
+ create_avahi_service blog http tcp $HTMLY_ONION_PORT
+ fi
+ if [ $GIT_DOMAIN_NAME ]; then
+ function_check create_avahi_service
+ create_avahi_service git http tcp $GIT_ONION_PORT
+ fi
+ if [ $DOKUWIKI_DOMAIN_NAME ]; then
+ function_check create_avahi_service
+ create_avahi_service dokuwiki http tcp $DOKUWIKI_ONION_PORT
+ fi
+}
+
+function allow_ssh_to_onion_address {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [ ! -d /home/$MY_USERNAME/.ssh ]; then
+ mkdir /home/$MY_USERNAME/.ssh
+ fi
+ if [ ! -d /etc/tor ]; then
+ echo $'Tor not found when updating ssh'
+ exit 528257
+ fi
+ if ! grep -q "onion" /home/$MY_USERNAME/.ssh/config; then
+ echo 'Host *.onion' >> /home/$MY_USERNAME/.ssh/config
+ echo 'ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p' >> /home/$MY_USERNAME/.ssh/config
+ fi
+}
+
+function enable_ssh_via_onion {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install tor connect-proxy
+ if ! grep -q 'Host *.onion' /home/$MY_USERNAME/.ssh/config; then
+ if [ ! -d /home/$MY_USERNAME/.ssh ]; then
+ mkdir /home/$MY_USERNAME/.ssh
+ fi
+ echo 'Host *.onion' >> /home/$MY_USERNAME/.ssh/config
+ echo 'ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p' >> /home/$MY_USERNAME/.ssh/config
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh/config
+ fi
+ if ! grep -q 'Host *.onion' /root/.ssh/config; then
+ if [ ! -d /root/.ssh ]; then
+ mkdir /root/.ssh
+ fi
+ echo 'Host *.onion' >> /root/.ssh/config
+ echo 'ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p' >> /root/.ssh/config
+ fi
+ mark_completed $FUNCNAME
+}
+
+function configure_ssh_onion {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+
+ SSH_ONION_HOSTNAME=$(add_onion_service ssh ${SSH_PORT} ${SSH_PORT})
+
+ set_completion_param "ssh onion domain" "${SSH_ONION_HOSTNAME}"
+
+ mark_completed $FUNCNAME
+}
+
+function install_tor {
+ if [[ $SYSTEM_TYPE == "mesh*" ]]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install tor
+ if [ ! -f /etc/tor/torrc ]; then
+ echo 'Tor failed to install'
+ exit 38259
+ fi
+
+ # turn off logging
+ sed -i 's|#Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
+ sed -i 's|Log notice file.*|Log notice file /dev/null|g' /etc/tor/torrc
+
+ mark_completed $FUNCNAME
+}
+
+function resolve_dns_via_tor {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [ ! -f /etc/tor/torrc ]; then
+ echo $'tor was not installed'
+ exit 52952
+ fi
+
+ # resolve DNS via tor
+ if ! grep 'DNSPort 53' /etc/tor/torrc; then
+ echo 'DNSPort 53' >> /etc/tor/torrc
+ echo 'AutomapHostsOnResolve 1' >> /etc/tor/torrc
+ echo 'AutomapHostsSuffixes .exit,.onion' >> /etc/tor/torrc
+ onion_update
+ fi
+
+ # don't change resolv.conf
+ sed -i 's|, domain-name-servers||g' /etc/dhcp/dhclient.conf
+
+ # point resolv.conf to tor
+ echo 'nameserver 127.0.0.1:53' > /etc/resolv.conf
+
+ # prevent resolv.conf from changing
+ chattr +i /etc/resolv.conf
+
+ mark_completed $FUNCNAME
+}
+
+# see https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
+# Local Redirection and Anonymizing Middlebox
+function route_outgoing_traffic_through_tor {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $ROUTE_THROUGH_TOR != "yes" ]]; then
+ return
+ fi
+ apt-get -yq install tor tor-arm
+
+ ### set variables
+ # Destinations you don't want routed through Tor
+ _non_tor="192.168.1.0/24 192.168.0.0/24"
+
+ # The user that Tor runs as
+ _tor_uid="debian-tor"
+
+ # Tor's TransPort
+ _trans_port="9040"
+
+ # Your internal interface
+ _int_if="eth0"
+
+ ### Set iptables *nat
+ iptables -t nat -A OUTPUT -o lo -j RETURN
+ iptables -t nat -A OUTPUT -m owner --uid-owner $_tor_uid -j RETURN
+ iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53
+
+ # Allow clearnet access for hosts in $_non_tor
+ for _clearnet in $_non_tor; do
+ iptables -t nat -A OUTPUT -d $_clearnet -j RETURN
+ iptables -t nat -A PREROUTING -i $_int_if -d $_clearnet -j RETURN
+ done
+
+ # Redirect all other pre-routing and output to Tor
+ iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $_trans_port
+ iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53
+ iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
+
+ ### set iptables *filter
+ iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+
+ # Allow clearnet access for hosts in $_non_tor
+ for _clearnet in $_non_tor 127.0.0.0/8; do
+ iptables -A OUTPUT -d $_clearnet -j ACCEPT
+ done
+
+ # Allow only Tor output
+ iptables -A OUTPUT -m owner --uid-owner $_tor_uid -j ACCEPT
+ iptables -A OUTPUT -j REJECT
+
+ function_check save_firewall_settings
+ save_firewall_settings
+
+ if ! grep -q "fs.file-max" /etc/sysctl.conf; then
+ echo "fs.file-max=100000" >> /etc/sysctl.conf
+ /sbin/sysctl -p -q
+ fi
+
+ echo 'domain localdomain' > /etc/resolv.conf
+ echo 'search localdomain' >> /etc/resolv.conf
+ echo 'nameserver 127.0.0.1' >> /etc/resolv.conf
+
+ if ! grep -q "VirtualAddrNetworkIPv4" /etc/tor/torrc; then
+ echo 'VirtualAddrNetworkIPv4 10.192.0.0/10' >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "AutomapHostsOnResolve" /etc/tor/torrc; then
+ echo 'AutomapHostsOnResolve 1' >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "TransPort" /etc/tor/torrc; then
+ echo 'TransPort 9040' >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "TransListenAddress 127.0.0.1" /etc/tor/torrc; then
+ echo 'TransListenAddress 127.0.0.1' >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "TransListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" /etc/tor/torrc; then
+ echo "TransListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "DNSPort" /etc/tor/torrc; then
+ echo 'DNSPort 53' >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "DNSListenAddress 127.0.0.1" /etc/tor/torrc; then
+ echo 'DNSListenAddress 127.0.0.1' >> /etc/tor/torrc
+ fi
+
+ if ! grep -q "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" /etc/tor/torrc; then
+ echo "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function get_app_onion_address {
+ app_name="$1"
+ mobilestr="$2"
+
+ if [ ${#mobilestr} -gt 0 ]; then
+ mobilestr="_${mobilestr}"
+ fi
+ if grep -q "${app_name}${mobilestr} onion domain" $COMPLETION_FILE; then
+ if grep -q "${app_name}${mobilestr} onion domain" $COMPLETION_FILE; then
+ echo $(cat ${COMPLETION_FILE} | grep "${app_name}${mobilestr} onion domain" | head -n 1 | awk -F ':' '{print $2}')
+ return
+ fi
+ fi
+ echo ""
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-passwords b/src/freedombone-utils-passwords
new file mode 100755
index 00000000..f9b5c1f4
--- /dev/null
+++ b/src/freedombone-utils-passwords
@@ -0,0 +1,57 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Password functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# If this file exists it contains a global password used with
+# disk image installs. This simplifies password management for
+# deployment at scale
+IMAGE_PASSWORD_FILE=/root/login.txt
+
+# Minimum number of characters in a password
+MINIMUM_PASSWORD_LENGTH=10
+
+# The default password length used in images
+DEFAULT_PASSWORD_LENGTH=20
+
+function enforce_good_passwords {
+ # because humans are generally bad at choosing passwords
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install libpam-cracklib
+
+ sed -i 's/password.*requisite.*pam_cracklib.so.*/password required pam_cracklib.so retry=2 dcredit=-4 ucredit=-1 ocredit=-1 lcredit=0 minlen=10 reject_username/g' /etc/pam.d/common-password
+ mark_completed $FUNCNAME
+}
+
+function create_password {
+ echo "$(openssl rand -base64 32 | cut -c1-${1})"
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-repos b/src/freedombone-utils-repos
new file mode 100755
index 00000000..aada4963
--- /dev/null
+++ b/src/freedombone-utils-repos
@@ -0,0 +1,150 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Functions to set repositories
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# The Debian package repository to use.
+DEBIAN_REPO="ftp.us.debian.org"
+
+# password used for accessing your repo mirrors
+MY_MIRRORS_PASSWORD=
+# friend's repo mirrors
+FRIENDS_MIRRORS_PASSWORD=
+FRIENDS_MIRRORS_SERVER=
+FRIENDS_MIRRORS_SSH_PORT=2222
+
+function create_repo_sources {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ rm -rf /var/lib/apt/lists/*
+ apt-get clean
+
+ echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION} main" > /etc/apt/sources.list
+ echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION} main" >> /etc/apt/sources.list
+ echo '' >> /etc/apt/sources.list
+ echo "deb http://security.debian.org/ ${DEBIAN_VERSION}/updates main" >> /etc/apt/sources.list
+ echo "deb-src http://security.debian.org/ ${DEBIAN_VERSION}/updates main" >> /etc/apt/sources.list
+ echo '' >> /etc/apt/sources.list
+ echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-updates main" >> /etc/apt/sources.list
+ echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-updates main" >> /etc/apt/sources.list
+ echo '' >> /etc/apt/sources.list
+ echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> /etc/apt/sources.list
+ echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> /etc/apt/sources.list
+
+ apt-get update
+ apt-get -yq install apt-transport-https
+
+ mark_completed $FUNCNAME
+}
+
+function read_repo_servers {
+ read_config_param FRIENDS_MIRRORS_SERVER
+ read_config_param FRIENDS_MIRRORS_SSH_PORT
+ read_config_param MY_MIRRORS_PASSWORD
+ read_config_param FRIENDS_MIRRORS_PASSWORD
+
+ if [ ! $FRIENDS_MIRRORS_SERVER ]; then
+ return
+ fi
+ if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
+ return
+ fi
+
+ APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+ for f in $APP_FILES
+ do
+ REPOS=($(cat ${f} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
+ for line in "${REPOS[@]}"
+ do
+ repo_name=$(echo "$line" | awk -F '=' '{print $1}')
+ mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
+ friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
+ export ${repo_name}="${friends_repo_url}"
+ done
+ done
+
+ APP_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+ for f in $APP_FILES
+ do
+ REPOS=($(cat ${f} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
+ for line in "${REPOS[@]}"
+ do
+ repo_name=$(echo "$line" | awk -F '=' '{print $1}')
+ mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
+ friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
+ export ${repo_name}="${friends_repo_url}"
+ done
+ done
+}
+
+# A command to create a git repository for a project
+function create_git_project {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install git
+
+ echo '#!/bin/bash' > /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'GIT_PROJECT_NAME=$1' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'if [ ! $GIT_PROJECT_NAME ]; then' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo ' echo "Please specify a project name, without any spaces"' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo ' exit 1' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'fi' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'if [ ! -d /home/$USER/projects/$GIT_PROJECT_NAME ]; then' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo ' mkdir -p /home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'fi' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'cd /home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'git init --bare' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo -n 'echo "Your project has been created, ' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'use the following command to clone the repository"' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo -n " git clone ssh://$MY_USERNAME@$DEFAULT_DOMAIN_NAME:$SSH_PORT" >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo '/home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ echo 'exit 0' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+ chmod +x /usr/bin/$CREATE_GIT_PROJECT_COMMAND
+
+ mark_completed $FUNCNAME
+}
+
+function create_mirrors {
+ if [ -d /home/trove ]; then
+ userdel -r trove
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ ${PROJECT_NAME}-mirrors
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-rng b/src/freedombone-utils-rng
new file mode 100755
index 00000000..906f62cd
--- /dev/null
+++ b/src/freedombone-utils-rng
@@ -0,0 +1,167 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Random number generation functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# The type of hardware random number generator being used
+# This can be empty, "beaglebone" or "onerng"
+HWRNG_TYPE=
+
+# Download location for OneRNG driver
+ONERNG_PACKAGE="onerng_3.4-1_all.deb"
+ONERNG_PACKAGE_DOWNLOAD="https://github.com/OneRNG/onerng.github.io/blob/master/sw/$ONERNG_PACKAGE?raw=true"
+# Hash for OneRNG driver
+ONERNG_PACKAGE_HASH='78f1c2f52ae573e3b398a695ece7ab9f41868252657ea269f0d5cf0bd4f2eb59'
+
+# device name for OneRNG
+ONERNG_DEVICE='ttyACM0'
+
+function check_hwrng {
+ if [[ $HWRNG_TYPE == "beaglebone" ]]; then
+ # If hardware random number generation was enabled then make sure that the device exists.
+ # if /dev/hwrng is not found then any subsequent cryptographic key generation would
+ # suffer from low entropy and might be insecure
+ if [ ! -e /dev/hwrng ]; then
+ ls /dev/hw*
+ echo $'The hardware random number generator is enabled but could not be detected on'
+ echo $'/dev/hwrng. There may be a problem with the installation or the Beaglebone hardware.'
+ exit 75
+ fi
+ fi
+
+ # If a OneRNG device was installed then verify its firmware
+ #check_onerng_verification
+}
+
+function check_onerng_verification {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $HWRNG_TYPE != "onerng" ]]; then
+ return
+ fi
+ echo $'Checking OneRNG firmware verification'
+ last_onerng_validation=$(cat /var/log/syslog.1 | grep "OneRNG: firmware verification" | awk '/./{line=$0} END{print line}')
+ if [[ $last_onerng_validation != *"passed OK"* ]]; then
+ last_onerng_validation=$(cat /var/log/syslog | grep "OneRNG: firmware verification" | awk '/./{line=$0} END{print line}')
+ if [[ $last_onerng_validation != *"passed OK"* ]]; then
+ echo $last_onerng_validation
+ echo $'OneRNG firmware verification failed'
+ exit 735026
+ fi
+ fi
+ echo $'OneRNG firmware verification passed'
+ # if haveged was previously installed then remove it
+ apt-get -yq remove haveged
+ mark_completed $FUNCNAME
+}
+
+function install_onerng {
+ apt-get -yq install rng-tools at python-gnupg
+
+ # Move to the installation directory
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir $INSTALL_DIR
+ fi
+ cd $INSTALL_DIR
+
+ # Download the package
+ if [ ! -f $ONERNG_PACKAGE ]; then
+ wget $ONERNG_PACKAGE_DOWNLOAD
+ mv "$ONERNG_PACKAGE?raw=true" $ONERNG_PACKAGE
+ fi
+ if [ ! -f $ONERNG_PACKAGE ]; then
+ echo $"OneRNG package could not be downloaded"
+ exit 59249
+ fi
+
+ # Check the hash
+ hash=$(sha256sum $ONERNG_PACKAGE | awk -F ' ' '{print $1}')
+ if [[ $hash != $ONERNG_PACKAGE_HASH ]]; then
+ echo $"OneRNG package: $ONERNG_PACKAGE"
+ echo $"Hash does not match. This could indicate that the package has been tampered with."
+ echo $"OneRNG expected package hash: $ONERNG_PACKAGE_HASH"
+ echo $"OneRNG actual hash: $hash"
+ exit 25934
+ fi
+
+ # install the package
+ dpkg -i $ONERNG_PACKAGE
+
+ # Check that the install worked
+ if [ ! -f /etc/onerng.conf ]; then
+ echo $'OneRNG configuration file not found. The package may not have installed successfully.'
+ exit 42904
+ fi
+
+ dialog --title $"OneRNG Device" \
+ --msgbox $"Please plug in the OneRNG device" 6 40
+
+ # check rng-tools configuration
+ if ! grep -q "/dev/$ONERNG_DEVICE" /etc/default/rng-tools; then
+ echo "HRNGDEVICE=/dev/$ONERNG_DEVICE" >> /etc/default/rng-tools
+ fi
+
+ systemctl restart rng-tools
+}
+
+function random_number_generator {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # it is assumed that docker uses the random number
+ # generator of the host system
+ return
+ fi
+
+ # if the hrng type has not been set but /dev/hwrng is detected
+ if [[ $HWRNG_TYPE != "beaglebone" ]]; then
+ if [ -e /dev/hwrng ]; then
+ HWRNG_TYPE="beaglebone"
+ fi
+ fi
+
+ case $HWRNG_TYPE in
+ beaglebone)
+ apt-get -yq install rng-tools
+ sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' /etc/default/rng-tools
+ ;;
+ onerng)
+ function_check install_onerng
+ install_onerng
+ ;;
+ *)
+ apt-get -yq install haveged
+ ;;
+ esac
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-selector b/src/freedombone-utils-selector
new file mode 100755
index 00000000..8fd90209
--- /dev/null
+++ b/src/freedombone-utils-selector
@@ -0,0 +1,626 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Functions for selecting which apps to install or remove
+#
+# License
+# =======
+#
+# Copyright (C) 2015-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# Array containing names of available apps
+APPS_AVAILABLE=()
+
+# Array containing 1 or 0 indicating installed apps
+APPS_INSTALLED=()
+
+# Apps selected with checklist
+APPS_CHOSEN=()
+
+# A list of the names of installed apps
+APPS_INSTALLED_NAMES=()
+
+# file containing a list of removed apps
+REMOVED_APPS_FILE=/root/removed
+
+INSTALLED_APPS_LIST=/usr/share/${PROJECT_NAME}/installed.txt
+
+# keep a list of which users have been added to which apps
+# so that when a new app is added existing users can be added
+APP_USERS_FILE=$HOME/app_users.txt
+
+if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+fi
+
+# Loads variables defined at the beginning of an app script
+function app_load_variables {
+ app_name=$1
+
+ config_var_name=${app_name}_variables
+ if [ ! ${!config_var_name} ]; then
+ echo $"${app_name}_variables was not found"
+ return
+ fi
+
+ configvarname=$config_var_name[@]
+ configvarname=( ${!configvarname} )
+ for v in "${configvarname[@]}"
+ do
+ read_config_param $v
+ done
+}
+
+# Saves variables for a given app script
+function app_save_variables {
+ app_name=$1
+
+ config_var_name=${app_name}_variables
+ if [ ! ${!config_var_name} ]; then
+ return
+ fi
+
+ configvarname=$config_var_name[@]
+ configvarname=( ${!configvarname} )
+ for v in "${configvarname[@]}"
+ do
+ write_config_param $v "${!v}"
+ done
+}
+
+# gets the variants list from an app script
+function app_variants {
+ filename=$1
+ variants_line=$(cat ${filename} | grep 'VARIANTS=')
+ if [[ "$variants_line" == *"'"* ]]; then
+ variants_list=$(echo "$variants_line" | awk -F '=' '{print $2}' | awk -F "'" '{print $2}')
+ else
+ variants_list=$(echo "$variants_line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
+ fi
+ echo "$variants_list"
+}
+
+# whether a given item is in an array
+function item_in_array {
+ local e
+ for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
+ return 1
+}
+
+# returns a list of available system variants
+# based upon the variants string in each app script
+function available_system_variants {
+ function_check item_in_array
+
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ new_available_variants_list=()
+ for filename in $FILES
+ do
+ system_variants_list=$(app_variants $filename)
+ variants_array=($system_variants_list)
+ for variant_str in "${variants_array[@]}"
+ do
+ item_in_array "${variant_str}" "${new_available_variants_list[@]}"
+ if [[ $? != 0 ]]; then
+ new_available_variants_list+=("$variant_str")
+ fi
+ done
+ done
+ available_variants_list=($(sort <<<"${new_available_variants_list[*]}"))
+}
+
+function is_valid_variant {
+ sys_type="$1"
+ available_variants_list=()
+
+ function_check available_system_variants
+ available_system_variants
+
+ for variant_str in "${available_variants_list[@]}"
+ do
+ if [[ "$sys_type" == "$variant_str" ]]; then
+ return "1"
+ fi
+ done
+ return "0"
+}
+
+function show_available_variants {
+ available_variants_list=()
+
+ function_check available_system_variants
+ available_system_variants
+
+ for variant_str in "${available_variants_list[@]}"
+ do
+ echo " $variant_str"
+ done
+}
+
+# mark a given app as having been removed so that it doesn't get reinstalled on updates
+function remove_app {
+ app_name=$1
+ if [ ! -f $REMOVED_APPS_FILE ]; then
+ touch $REMOVED_APPS_FILE
+ fi
+ if ! grep -Fxq "_${app_name}_" $REMOVED_APPS_FILE; then
+ echo "_${app_name}_" >> $REMOVED_APPS_FILE
+ fi
+ if grep -Fxq "install_${app_name}" $COMPLETION_FILE; then
+ sed -i "/install_${app_name}/d" $COMPLETION_FILE
+ fi
+ if grep -Fxq "install_${app_name}" $INSTALLED_APPS_LIST; then
+ sed -i "/install_${app_name}/d" $INSTALLED_APPS_LIST
+ fi
+}
+
+# returns 1 if an app has been marked as removed
+function app_is_removed {
+ app_name="$1"
+ if [ ! -f $REMOVED_APPS_FILE ]; then
+ echo "0"
+ return
+ fi
+
+ if ! grep -Fxq "_${app_name}_" $REMOVED_APPS_FILE; then
+ echo "0"
+ else
+ echo "1"
+ fi
+}
+
+# Allows an app to be reinstalled even if it was previously marked as being removed
+function reinstall_app {
+ app_name=$1
+ if [ ! -f $REMOVED_APPS_FILE ]; then
+ return
+ fi
+ if [[ $(app_is_removed $app_name) == "1" ]]; then
+ sed -i "/_${app_name}_/d" $REMOVED_APPS_FILE
+ fi
+}
+
+# returns 1 if an app is installed
+function app_is_installed {
+ app_name="$1"
+
+ # Why does this secondary file exist, apart from COMPLETION_FILE ?
+ # It's so that it is visible to unprivileged users from the user control panel
+ if [ -f $INSTALLED_APPS_LIST ]; then
+ if ! grep -Fxq "install_${app_name}" $INSTALLED_APPS_LIST; then
+ echo "0"
+ else
+ echo "1"
+ fi
+ return
+ fi
+
+ # check the completion file to see if it was installed
+ if [ ! -f $COMPLETION_FILE ]; then
+ echo "0"
+ return
+ fi
+
+ if ! grep -Fxq "install_${app_name}" $COMPLETION_FILE; then
+ echo "0"
+ else
+ echo "1"
+ fi
+}
+
+# called at the end of the install section of an app script
+function install_completed {
+ if [ ! ${1} ]; then
+ exit 673935
+ fi
+ if ! grep -Fxq "install_${1}" $COMPLETION_FILE; then
+ echo "install_${1}" >> $COMPLETION_FILE
+ fi
+}
+
+# populates an array of "0" or "1" for whether apps are installed
+function get_apps_installed {
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ APPS_INSTALLED+=("$(app_is_installed $a)")
+ done
+}
+
+# populates an array of installed app names
+function get_apps_installed_names {
+ APPS_INSTALLED_NAMES=()
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ $(app_is_installed $a) == "1" ]]; then
+ APPS_INSTALLED_NAMES+=("$a")
+ fi
+ done
+}
+
+# detects what apps are available
+function detect_apps {
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ function_check item_in_array
+
+ APPS_AVAILABLE=()
+ APPS_CHOSEN=()
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+
+ item_in_array "${app_name}" "${APPS_AVAILABLE[@]}"
+ if [[ $? != 0 ]]; then
+ APPS_AVAILABLE+=("${app_name}")
+ APPS_CHOSEN+=("0")
+ fi
+ done
+
+ function_check get_apps_installed
+ get_apps_installed
+ get_apps_installed_names
+}
+
+# detects what apps are available and can be installed
+# If the variants list within an app script is an empty string then
+# it is considered to be too experimental to be installable
+function detect_installable_apps {
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ APPS_AVAILABLE=()
+ APPS_CHOSEN=()
+ APPS_INSTALLED=()
+ APPS_INSTALLED_NAMES=()
+
+ function_check app_variants
+ function_check app_is_installed
+ function_check item_in_array
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+
+ item_in_array "${app_name}" "${APPS_AVAILABLE[@]}"
+ if [[ $? != 0 ]]; then
+ variants_list=$(app_variants $filename)
+ # check for empty string
+ if [ ${#variants_list} -gt 0 ]; then
+ APPS_AVAILABLE+=("${app_name}")
+ APPS_CHOSEN+=("0")
+ APPS_INSTALLED+=("$(app_is_installed $app_name)")
+ if [[ $(app_is_installed $app_name) == "1" ]]; then
+ APPS_INSTALLED_NAMES+=("$app_name")
+ fi
+ fi
+ fi
+ done
+}
+
+function detect_installed_apps {
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ APPS_AVAILABLE=()
+ APPS_INSTALLED=()
+ APPS_INSTALLED_NAMES=()
+
+ function_check app_variants
+ function_check app_is_installed
+ function_check item_in_array
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+
+ if [[ $(app_is_installed $app_name) == "1" ]]; then
+ item_in_array "${app_name}" "${APPS_AVAILABLE[@]}"
+ if [[ $? != 0 ]]; then
+ variants_list=$(app_variants $filename)
+ if [ ${#variants_list} -gt 0 ]; then
+ APPS_AVAILABLE+=("${app_name}")
+ APPS_INSTALLED_NAMES+=("$app_name")
+ fi
+ fi
+ fi
+ done
+}
+
+# creates the APPS_AVAILABLE and APPS_CHOSEN arrays based on
+# the given variant name
+function choose_apps_for_variant {
+ variant_name="$1"
+
+ function_check item_in_array
+ function_check app_variants
+ function_check app_is_removed
+
+ if [ ${#variant_name} -eq 0 ]; then
+ echo $"No variant name for choosing apps"
+ exit 237567
+ fi
+
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ APPS_CHOSEN=()
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+
+ item_in_array "${app_name}" "${APPS_AVAILABLE[@]}"
+ if [[ $? == 0 ]]; then
+ if grep -q "VARIANTS=" ${filename}; then
+ variants_list=$(app_variants $filename)
+ if [[ "${variants_list}" == 'all'* || \
+ "${variants_list}" == "$variant_name" || \
+ "${variants_list}" == "$variant_name "* || \
+ "${variants_list}" == *" $variant_name "* || \
+ "${variants_list}" == *" $variant_name" ]]; then
+ if [[ $(app_is_removed ${a}) == "0" ]]; then
+ echo $"${app_name} chosen"
+ APPS_CHOSEN+=("1")
+ else
+ APPS_CHOSEN+=("0")
+ fi
+ else
+ APPS_CHOSEN+=("0")
+ fi
+ else
+ APPS_CHOSEN+=("0")
+ fi
+ fi
+ done
+
+ function_check get_apps_installed
+ get_apps_installed
+}
+
+# show a list of apps which have been chosen
+function list_chosen_apps {
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
+ echo $"${a}"
+ fi
+ app_index=$[app_index+1]
+ done
+}
+
+function remove_apps {
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
+ if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
+ echo $"Removing users for application: ${a}"
+
+ function_check remove_users_for_app
+ remove_users_for_app ${a}
+
+ echo $"Removing application: ${a}"
+
+ function_check app_load_variables
+ app_load_variables ${a}
+
+ function_check remove_app
+ remove_app ${a}
+
+ function_check remove_${a}
+ remove_${a}
+
+ echo $"${a} was removed"
+ fi
+ fi
+ app_index=$[app_index+1]
+ done
+ update_installed_apps_list
+}
+
+function install_apps_interactive {
+ echo $"Interactive installer"
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} == "0" ]]; then
+ if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
+ # interactively obtain settings for this app
+ if [[ $(function_exists install_interactive_${a}) == "1" ]]; then
+ install_interactive_${a}
+ fi
+ fi
+ fi
+
+ app_index=$[app_index+1]
+ done
+ echo $"Interactive settings complete"
+}
+
+function user_added_to_app {
+ user_name="$1"
+ app_name="$2"
+
+ if [[ $(is_valid_user "$user_name") == "1" ]]; then
+ if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
+ if grep -Fxq "${app_name}_${user_name}" $APP_USERS_FILE; then
+ echo "1"
+ return
+ fi
+ fi
+ fi
+ echo "0"
+}
+
+function add_users_after_install {
+ app_name="$1"
+
+ read_config_param MY_USERNAME
+
+ # ensure a minimum password length
+ if [ ! $MINIMUM_PASSWORD_LENGTH ]; then
+ MINIMUM_PASSWORD_LENGTH=20
+ fi
+ if [ ${#MINIMUM_PASSWORD_LENGTH} -lt 20 ]; then
+ MINIMUM_PASSWORD_LENGTH=20
+ fi
+
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
+ if [ ! $ADMIN_USERNAME ]; then
+ ADMIN_USERNAME=$MY_USERNAME
+ fi
+
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [[ "$USERNAME" != "$ADMIN_USERNAME" ]]; then
+ if [[ $(user_added_to_app "${USERNAME}" "${app_name}") == "0" ]]; then
+ valstr=$"Login for user ${USERNAME}="
+ app_password="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ add_user_${app_name} "${USERNAME}" "${app_password}"
+ echo "${app_name}_${USERNAME}" >> $APP_USERS_FILE
+ fi
+ fi
+ fi
+ done
+}
+
+function remove_users_for_app {
+ app_name="$1"
+
+ read_config_param MY_USERNAME
+
+ for d in /home/*/ ; do
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+ if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+ if [[ "$USERNAME" != "$MY_USERNAME" ]]; then
+ if [[ $(user_added_to_app "${USERNAME}" "${app_name}") == "1" ]]; then
+ if [[ $(function_exists remove_user_${app_name}) == "1" ]]; then
+ remove_user_${app_name} "${USERNAME}"
+ fi
+ sed -i "/${app_name}_${USERNAME}/d" $APP_USERS_FILE
+ fi
+ fi
+ fi
+ done
+}
+
+function install_apps {
+ is_interactive=$1
+
+ APP_INSTALLED_SUCCESS=1
+
+ # interactive install configuration for each app
+ if [ ${is_interactive} ]; then
+ install_apps_interactive
+ fi
+
+ # now install the apps
+ app_index=0
+ for a in "${APPS_AVAILABLE[@]}"
+ do
+ if [[ ${APPS_INSTALLED[$app_index]} == "0" ]]; then
+ if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
+ if [ ${is_interactive} ]; then
+ # clears any removal indicator
+ function_check reinstall_app
+ reinstall_app ${a}
+
+ function_check app_load_variables
+ app_load_variables ${a}
+
+ if [[ $(app_is_installed ${a}) == "1" ]]; then
+ echo $"Upgrading application from interactive: ${a}"
+ upgrade_${a}
+ echo $"${a} was upgraded from interactive"
+ else
+ echo $"Installing application from interactive: ${a}"
+ APP_INSTALLED=
+ install_${a}
+ if [ $APP_INSTALLED ]; then
+ function_check app_save_variables
+ app_save_variables ${a}
+
+ function_check add_users_after_install
+ add_users_after_install ${a}
+
+ ${PROJECT_NAME}-mirrors --app ${a}
+
+ function_check install_completed
+ install_completed ${a}
+ echo $"${a} was installed from interactive"
+ else
+ echo "Failed to install: ${a}" >> /var/log/${PROJECT_NAME}.log
+ APP_INSTALLED_SUCCESS=
+ echo $"${a} was not installed from interactive"
+ fi
+ fi
+ else
+ # check if the app was removed
+ if [[ $(app_is_removed ${a}) == "0" ]]; then
+ function_check app_load_variables
+ app_load_variables ${a}
+ if [[ $(app_is_installed ${a}) == "1" ]]; then
+ echo $"Upgrading application: ${a}"
+ upgrade_${a}
+ echo $"${a} was upgraded"
+ else
+ echo $"Installing application: ${a}"
+ APP_INSTALLED=
+ install_${a}
+ if [ $APP_INSTALLED ]; then
+ function_check app_save_variables
+ app_save_variables ${a}
+
+ function_check add_users_after_install
+ add_users_after_install ${a}
+
+ ${PROJECT_NAME}-mirrors --app ${a}
+
+ function_check install_completed
+ install_completed ${a}
+ echo $"${a} was installed"
+ else
+ echo "Failed to install: ${a}" >> /var/log/${PROJECT_NAME}.log
+ APP_INSTALLED_SUCCESS=
+ echo $"${a} was not installed"
+ fi
+ fi
+ else
+ echo $"${a} has been removed and so will not be reinstalled"
+ fi
+ fi
+ fi
+ fi
+ app_index=$[app_index+1]
+ done
+
+ function_check update_installed_apps_list
+ update_installed_apps_list
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-setup b/src/freedombone-utils-setup
new file mode 100755
index 00000000..530cfaef
--- /dev/null
+++ b/src/freedombone-utils-setup
@@ -0,0 +1,675 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Setup functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+if [ ! $PROJECT_NAME ]; then
+ PROJECT_NAME='freedombone'
+fi
+
+DEFAULT_DOMAIN_NAME=
+DEFAULT_DOMAIN_CODE=
+MY_USERNAME=
+if [ ! $SYSTEM_TYPE ]; then
+ SYSTEM_TYPE="full"
+fi
+
+# An optional configuration file which overrides some of these variables
+if [ ! $CONFIGURATION_FILE ]; then
+ CONFIGURATION_FILE="$HOME/${PROJECT_NAME}.cfg"
+fi
+
+# Directory where source code is downloaded and compiled
+INSTALL_DIR=$HOME/build
+
+# device name for an attached usb drive
+USB_DRIVE=/dev/sda1
+
+# Location where the USB drive is mounted to
+USB_MOUNT=/mnt/usb
+
+# Number of days to keep backups for
+BACKUP_MAX_DAYS=30
+
+# file containing a list of remote locations to backup to
+# Format: [username@friendsdomain//home/username] [ssh_password]
+# With the only space character being between the server and the password
+FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
+
+export DEBIAN_FRONTEND=noninteractive
+
+# used to limit CPU usage
+CPULIMIT='/usr/bin/cpulimit -l 20 -e'
+
+# command to create a git repository
+CREATE_GIT_PROJECT_COMMAND='create-project'
+
+# File which keeps track of what has already been installed
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+
+# log file where details of remote backups are stored
+REMOTE_BACKUPS_LOG=/var/log/remotebackups.log
+
+# message if something fails to install
+CHECK_MESSAGE="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."
+
+# Default diffie-hellman key length in bits
+DH_KEYLENGTH=2048
+
+function detect_usb_drive {
+ # sets to the highest available drive letter
+ # which is likely to be the last drive connected
+ read_config_param USB_DRIVE
+ partition_number='1'
+ if [[ "$1" == "nopath" ]]; then
+ partition_number=''
+ fi
+ if [ -b /dev/sdb${partition_number} ]; then
+ USB_DRIVE=/dev/sdb${partition_number}
+ fi
+ if [ -b /dev/sdc${partition_number} ]; then
+ USB_DRIVE=/dev/sdc${partition_number}
+ fi
+ if [ -b /dev/sdd${partition_number} ]; then
+ USB_DRIVE=/dev/sdd${partition_number}
+ fi
+ if [ -b /dev/sde${partition_number} ]; then
+ USB_DRIVE=/dev/sde${partition_number}
+ fi
+ if [ -b /dev/sdf${partition_number} ]; then
+ USB_DRIVE=/dev/sdf${partition_number}
+ fi
+ if [ -b /dev/sdg${partition_number} ]; then
+ USB_DRIVE=/dev/sdg${partition_number}
+ fi
+ if [ -b /dev/sdh${partition_number} ]; then
+ USB_DRIVE=/dev/sdh${partition_number}
+ fi
+ write_config_param USB_DRIVE "$USB_DRIVE"
+}
+
+function running_as_root {
+ if [[ $EUID != 0 ]] ; then
+ echo "0"
+ else
+ echo "1"
+ fi
+}
+
+function reset_usb_devices {
+ for xhci in /sys/bus/pci/drivers/?hci-pci ; do
+
+ if ! cd $xhci ; then
+ return
+ fi
+
+ echo "Resetting devices from $xhci..."
+
+ for i in ????:??:??.? ; do
+ echo -n "$i" > unbind
+ echo -n "$i" > bind
+ done
+ done
+ udevadm control --reload-rules
+}
+
+function install_backports_kernel {
+ # install backports kernel if possible
+ architecture_type=$(uname -a)
+
+ if [[ "$architecture_type" == *"amd64"* ]]; then
+ apt-get -yq install linux-image-amd64 -t jessie-backports
+ fi
+}
+
+function turn_off_rsys_logging {
+ sed -i 's|mail,news.none.*|mail,news.none /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|auth,authpriv.\*.*|auth,authpriv.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.info.*|mail.info /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.warn.*|mail.warn /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.err.*|mail.err /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|daemon.\*.*|daemon.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|mail.\*.*|mail.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|user.\*.*|user.\* /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|news.none;mail.none.*|news.none;mail.none /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|\*.\*;auth,authpriv.none.*|\*.\*;auth,authpriv.none /dev/null|g' /etc/rsyslog.conf
+ sed -i 's|#cron.\*|cron.\*|g' /etc/rsyslog.conf
+ sed -i 's|cron.\*.*|cron.\* /dev/null|g' /etc/rsyslog.conf
+ shred -zu /var/log/wtmp*
+ shred -zu /var/log/debug*
+ shred -zu /var/log/cron.*
+ shred -zu /var/log/auth.*
+ shred -zu /var/log/mail.*
+ shred -zu /var/log/daemon.*
+ shred -zu /var/log/user.*
+ shred -zu /var/log/messages*
+}
+
+function initial_setup {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq remove --purge apache*
+ apt-get -yq dist-upgrade
+ apt-get -yq install ca-certificates
+ apt-get -yq install apt-utils
+ apt-get -yq install cryptsetup libgfshare-bin obnam sshpass wget avahi-daemon
+ apt-get -yq install avahi-utils avahi-discover connect-proxy openssh-server
+ apt-get -yq install sudo git dialog build-essential avahi-daemon avahi-utils
+ apt-get -yq install avahi-discover avahi-autoipd iptables dnsutils net-tools
+ apt-get -yq install network-manager iputils-ping libnss-mdns libnss-myhostname
+ apt-get -yq install libnss-gw-name nano man ntp locales locales-all debconf
+ apt-get -yq install wireless-tools wpasupplicant usbutils cryptsetup zsh
+ apt-get -yq install pinentry-curses eatmydata iotop bc grub2 hostapd haveged
+ apt-get -yq install cpulimit
+
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function admin_user_sudo {
+ if ! grep -q "$MY_USERNAME ALL=(ALL) ALL" $rootdir/etc/sudoers; then
+ echo "$MY_USERNAME ALL=(ALL) ALL" >> $rootdir/etc/sudoers
+ fi
+}
+
+function search_for_attached_usb_drive {
+ # If a USB drive is attached then search for email,
+ # gpg, ssh keys and emacs configuration
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ detect_usb_drive
+ if [ -b $USB_DRIVE ]; then
+ if [ ! -d $USB_MOUNT ]; then
+ echo $'Mounting USB drive'
+ mkdir $USB_MOUNT
+ mount $USB_DRIVE $USB_MOUNT
+ fi
+ if [ -d $USB_MOUNT/.gnupg ]; then
+ echo $'Importing GPG keyring'
+ cp -r $USB_MOUNT/.gnupg /home/$MY_USERNAME
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
+ GPG_KEYS_IMPORTED="yes"
+ if [ ! -f /home/$MY_USERNAME/.gnupg/secring.gpg ]; then
+ echo $'GPG files did not copy'
+ exit 73529
+ fi
+ fi
+
+ if [ -f $USB_MOUNT/private_key.gpg ]; then
+ echo $'GPG private key found on USB drive'
+ MY_GPG_PRIVATE_KEY=$USB_MOUNT/private_key.gpg
+ fi
+ if [ -f $USB_MOUNT/public_key.gpg ]; then
+ echo $'GPG public key found on USB drive'
+ MY_GPG_PUBLIC_KEY=$USB_MOUNT/public_key.gpg
+ fi
+
+ if [ -f $USB_MOUNT/letsencrypt ]; then
+ echo $'Copying letsencrypt keys"'
+ cp -r $USB_MOUNT/letsencrypt /etc
+ fi
+
+ if [ -d $USB_MOUNT/.ssh ]; then
+ echo $'Importing ssh keys'
+ cp -r $USB_MOUNT/.ssh /home/$MY_USERNAME
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
+ # for security delete the ssh keys from the usb drive
+ if [ ! -f /home/$MY_USERNAME/.ssh/id_rsa ]; then
+ echo $'ssh files did not copy'
+ exit 8
+ fi
+ fi
+ if [ -f $USB_MOUNT/.emacs ]; then
+ echo $'Importing .emacs file'
+ cp -f $USB_MOUNT/.emacs /home/$MY_USERNAME/.emacs
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs
+ fi
+ if [ -d $USB_MOUNT/.emacs.d ]; then
+ echo $'Importing .emacs.d directory'
+ cp -r $USB_MOUNT/.emacs.d /home/$MY_USERNAME
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs.d
+ fi
+ if [ -d $USB_MOUNT/ssl ]; then
+ echo $'Importing SSL certificates'
+ cp -r $USB_MOUNT/ssl/* /etc/ssl
+ chmod 640 /etc/ssl/certs/*
+ chmod 400 /etc/ssl/private/*
+ # change ownership of some certificates
+ if [ -d /etc/prosody ]; then
+ chown prosody:prosody /etc/ssl/private/xmpp.*
+ chown prosody:prosody /etc/ssl/certs/xmpp.*
+ fi
+ if [ -d /etc/dovecot ]; then
+ chown root:dovecot /etc/ssl/certs/dovecot.*
+ chown root:dovecot /etc/ssl/private/dovecot.*
+ fi
+ if [ -f /etc/ssl/private/exim.key ]; then
+ cp /etc/ssl/private/exim.key /etc/exim4
+ cp /etc/ssl/certs/exim.crt /etc/exim4
+ cp /etc/ssl/certs/exim.dhparam /etc/exim4
+ chown root:Debian-exim /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
+ chmod 640 /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
+ fi
+ fi
+ if [ -d $USB_MOUNT/personal ]; then
+ echo $'Importing personal directory'
+ cp -r $USB_MOUNT/personal /home/$MY_USERNAME
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/personal
+ fi
+ else
+ if [ -d $USB_MOUNT ]; then
+ umount $USB_MOUNT
+ rm -rf $USB_MOUNT
+ fi
+ echo $'No USB drive attached'
+ fi
+ mark_completed $FUNCNAME
+}
+
+function mark_admin_user_account {
+ set_completion_param "Admin user" "$MY_USERNAME"
+}
+
+function remove_instructions_from_motd {
+ sed -i '/## /d' /etc/motd
+}
+
+function remove_default_user {
+ # make sure you don't use the default user account
+ if [[ $MY_USERNAME == "debian" ]]; then
+ echo 'Do not use the default debian user account. Create a different user with: adduser [username]'
+ exit 68
+ fi
+ # remove the default debian user to prevent it from becoming an attack vector
+ if [ -d /home/debian ]; then
+ userdel -r debian
+ echo 'Default debian user account removed'
+ fi
+}
+
+function create_completion_file {
+ if [ ! -f $COMPLETION_FILE ]; then
+ touch $COMPLETION_FILE
+ fi
+}
+
+function upgrade_installation {
+ # TODO
+ echo ''
+}
+
+function setup_firewall {
+ function_check create_completion_file
+ create_completion_file
+
+ function_check configure_firewall
+ configure_firewall
+
+ function_check configure_firewall_ping
+ configure_firewall_ping
+
+ function_check configure_firewall_for_dns
+ configure_firewall_for_dns
+
+ function_check configure_firewall_for_avahi
+ configure_firewall_for_avahi
+
+ function_check global_rate_limit
+ global_rate_limit
+}
+
+function setup_utils {
+ read_config_param "PROJECT_REPO"
+ write_config_param "PROJECT_REPO" "$PROJECT_REPO"
+
+ function_check turn_off_rsys_logging
+ turn_off_rsys_logging
+
+ function_check install_backports_kernel
+ install_backports_kernel
+
+ function_check create_completion_file
+ create_completion_file
+
+ function_check read_configuration
+ read_configuration
+
+ function_check check_system_type
+ check_system_type
+
+ function_check upgrade_installation
+ upgrade_installation
+
+ function_check set_default_onion_domains
+ set_default_onion_domains
+
+ function_check locale_setup
+ locale_setup
+
+ function_check parse_args
+ parse_args
+
+ function_check check_domains
+ check_domains
+
+ function_check install_static_network
+ install_static_network
+
+ function_check remove_default_user
+ remove_default_user
+
+ function_check setup_firewall
+ setup_firewall
+
+ function_check create_repo_sources
+ create_repo_sources
+
+ function_check configure_dns
+ configure_dns
+
+ function_check initial_setup
+ initial_setup
+
+ function_check install_tor
+ install_tor
+
+ #function_check resolve_dns_via_tor
+ #resolve_dns_via_tor
+
+ function_check install_command_line_browser
+ install_command_line_browser
+
+ function_check enable_ssh_via_onion
+ enable_ssh_via_onion
+
+ function_check check_date
+ check_date
+
+ function_check install_dynamicdns
+ install_dynamicdns
+
+ function_check randomize_cron
+ randomize_cron
+
+ function_check create_freedns_updater
+ create_freedns_updater
+
+ function_check mark_admin_user_account
+ mark_admin_user_account
+
+ function_check enforce_good_passwords
+ enforce_good_passwords
+
+ function_check change_login_message
+ change_login_message
+
+ function_check enable_zram
+ enable_zram
+
+ function_check random_number_generator
+ random_number_generator
+
+ function_check set_your_domain_name
+ set_your_domain_name
+
+ function_check configure_internet_protocol
+ configure_internet_protocol
+
+ function_check create_git_project
+ create_git_project
+
+ function_check setup_wifi
+ setup_wifi
+
+ function_check configure_ssh
+ configure_ssh
+
+ function_check configure_ssh_onion
+ configure_ssh_onion
+
+ function_check allow_ssh_to_onion_address
+ allow_ssh_to_onion_address
+
+ function_check remove_instructions_from_motd
+ remove_instructions_from_motd
+
+ function_check check_hwrng
+ check_hwrng
+
+ function_check search_for_attached_usb_drive
+ search_for_attached_usb_drive
+
+ function_check regenerate_ssh_keys
+ regenerate_ssh_keys
+
+ function_check create_mirrors
+ create_mirrors
+
+ function_check create_upgrade_script
+ create_upgrade_script
+
+ function_check letsencrypt_renewals
+ letsencrypt_renewals
+
+ function_check install_watchdog_script
+ install_watchdog_script
+
+ function_check install_avahi
+ install_avahi
+
+ function_check create_avahi_onion_domains
+ create_avahi_onion_domains
+
+ #function_check install_atheros_wifi
+ #install_atheros_wifi
+
+ function_check route_outgoing_traffic_through_tor
+ route_outgoing_traffic_through_tor
+
+ function_check upgrade_golang
+ upgrade_golang
+
+ function_check install_tomb
+ install_tomb
+
+ function_check admin_user_sudo
+ admin_user_sudo
+}
+
+function setup_email {
+ function_check create_completion_file
+ create_completion_file
+
+ function_check install_email
+ install_email
+
+ function_check create_procmail
+ create_procmail
+
+ function_check handle_admin_emails
+ handle_admin_emails
+
+ function_check spam_filtering
+ spam_filtering
+
+ function_check configure_imap
+ configure_imap
+
+ #function_check configure_imap_client_certs
+ #configure_imap_client_certs
+
+ function_check configure_gpg
+ configure_gpg
+
+ function_check refresh_gpg_keys
+ refresh_gpg_keys
+
+ function_check configure_backup_key
+ configure_backup_key
+
+ function_check install_monkeysphere
+ install_monkeysphere
+
+ function_check encrypt_incoming_email
+ encrypt_incoming_email
+
+ function_check encrypt_outgoing_email
+ encrypt_outgoing_email
+
+ function_check email_client
+ email_client
+
+ function_check email_archiving
+ email_archiving
+
+ function_check email_from_address
+ email_from_address
+
+ function_check create_public_mailing_list
+ create_public_mailing_list
+
+ #function check create_private_mailing_list
+ #create_private_mailing_list
+
+ function_check encrypt_all_email
+ encrypt_all_email
+
+ function_check import_email
+ import_email
+}
+
+function setup_web {
+ function_check create_completion_file
+ create_completion_file
+
+ function_check install_web_server
+ install_web_server
+
+ function_check install_web_server_access_control
+ install_web_server_access_control
+}
+
+function upgrade_apps {
+ function_check create_completion_file
+ create_completion_file
+
+ APPS_COMPLETED=()
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+ # for all the app scripts
+ for filename in $FILES
+ do
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+
+ item_in_array "${app_name}" "${APPS_COMPLETED[@]}"
+ if [[ $? != 0 ]]; then
+ function_check app_is_installed
+ if [[ "$(app_is_installed $a)" == "1" ]]; then
+ app_load_variables ${app_name}
+ APPS_COMPLETED+=("${app_name}")
+ function_check upgrade_${app_name}
+ upgrade_${app_name}
+ fi
+ fi
+ done
+}
+
+function setup_apps {
+ is_interactive=$1
+
+ function_check create_completion_file
+ create_completion_file
+
+ function_check detect_installable_apps
+ detect_installable_apps
+
+ function_check choose_apps_for_variant
+ choose_apps_for_variant "$SYSTEM_TYPE"
+
+ echo $"System variant: $SYSTEM_TYPE"
+ echo $'The following apps have been selected'
+ echo ''
+ function_check list_chosen_apps
+ list_chosen_apps
+ echo ''
+
+ function_check upgrade_apps
+ upgrade_apps
+
+ if [[ $is_interactive == "menuconfig"* ]]; then
+ ${PROJECT_NAME}-addremove add-all
+ if [ ! "$?" = "0" ]; then
+ exit 72524
+ fi
+ fi
+
+ if [[ $is_interactive == "noninteractive" || $is_interactive == "headless" ]]; then
+ function_check install_apps
+ install_apps
+ if [ ! $APP_INSTALLED_SUCCESS ]; then
+ echo $'One or more apps failed to install'
+ fi
+ fi
+}
+
+function combine_all_scripts {
+ combined_filename=$1
+
+ # initial variables
+ cp $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars $combined_filename
+
+ # utilities
+ UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+ for f in $UTILS_FILES
+ do
+ # this removes the first line, which is #!/bin/bash
+ tail -n +2 "$f" >> $combined_filename
+ done
+
+ # base system
+ BASE_SYSTEM_FILES=/usr/share/${PROJECT_NAME}/base/${PROJECT_NAME}-base-*
+ for f in $BASE_SYSTEM_FILES
+ do
+ tail -n +2 "$f" >> $combined_filename
+ done
+
+ # apps
+ APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+ for f in $APP_FILES
+ do
+ tail -n +2 "$f" >> $combined_filename
+ done
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-ssh b/src/freedombone-utils-ssh
new file mode 100755
index 00000000..7503420e
--- /dev/null
+++ b/src/freedombone-utils-ssh
@@ -0,0 +1,166 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# ssh functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+SSH_PORT=2222
+
+# Settings from bettercrypto.org
+SSH_CIPHERS="aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr"
+SSH_MACS="hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160"
+SSH_KEX="diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1"
+SSH_HOST_KEY_ALGORITHMS="ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-ed25519,ssh-rsa"
+
+function configure_ssh {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ sed -i "s/Port .*/Port $SSH_PORT/g" /etc/ssh/sshd_config
+ sed -i 's/PermitRootLogin.*/PermitRootLogin no/g' /etc/ssh/sshd_config
+ sed -i 's/X11Forwarding.*/X11Forwarding no/g' /etc/ssh/sshd_config
+ sed -i 's/ServerKeyBits.*/ServerKeyBits 4096/g' /etc/ssh/sshd_config
+ sed -i 's/TCPKeepAlive.*/TCPKeepAlive no/g' /etc/ssh/sshd_config
+ sed -i 's|HostKey /etc/ssh/ssh_host_dsa_key|#HostKey /etc/ssh/ssh_host_dsa_key|g' /etc/ssh/sshd_config
+ sed -i 's|HostKey /etc/ssh/ssh_host_ecdsa_key|#HostKey /etc/ssh/ssh_host_ecdsa_key|g' /etc/ssh/sshd_config
+ if ! grep -q 'DebianBanner' /etc/ssh/sshd_config; then
+ echo 'DebianBanner no' >> /etc/ssh/sshd_config
+ else
+ sed -i 's|DebianBanner.*|DebianBanner no|g' /etc/ssh/sshd_config
+ fi
+ if grep -q 'ClientAliveInterval' /etc/ssh/sshd_config; then
+ sed -i 's/ClientAliveInterval.*/ClientAliveInterval 60/g' /etc/ssh/sshd_config
+ else
+ echo 'ClientAliveInterval 60' >> /etc/ssh/sshd_config
+ fi
+ if grep -q 'ClientAliveCountMax' /etc/ssh/sshd_config; then
+ sed -i 's/ClientAliveCountMax.*/ClientAliveCountMax 3/g' /etc/ssh/sshd_config
+ else
+ echo 'ClientAliveCountMax 3' >> /etc/ssh/sshd_config
+ fi
+ if grep -q 'Ciphers' /etc/ssh/sshd_config; then
+ sed -i "s|Ciphers.*|Ciphers $SSH_CIPHERS|g" /etc/ssh/sshd_config
+ else
+ echo "Ciphers $SSH_CIPHERS" >> /etc/ssh/sshd_config
+ fi
+ if grep -q 'MACs' /etc/ssh/sshd_config; then
+ sed -i "s|MACs.*|MACs $SSH_MACS|g" /etc/ssh/sshd_config
+ else
+ echo "MACs $SSH_MACS" >> /etc/ssh/sshd_config
+ fi
+ if grep -q 'KexAlgorithms' /etc/ssh/sshd_config; then
+ sed -i "s|KexAlgorithms.*|KexAlgorithms $SSH_KEX|g" /etc/ssh/sshd_config
+ else
+ echo "KexAlgorithms $SSH_KEX" >> /etc/ssh/sshd_config
+ fi
+
+ apt-get -yq install fail2ban vim-common
+
+ function_check configure_firewall_for_ssh
+ configure_firewall_for_ssh
+ mark_completed $FUNCNAME
+}
+
+# see https://stribika.github.io/2015/01/04/secure-secure-shell.html
+function ssh_remove_small_moduli {
+ awk '$5 > 2000' /etc/ssh/moduli > ~/moduli
+ mv ~/moduli /etc/ssh/moduli
+}
+
+function configure_ssh_client {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ #sed -i 's/# PasswordAuthentication.*/ PasswordAuthentication no/g' /etc/ssh/ssh_config
+ #sed -i 's/# ChallengeResponseAuthentication.*/ ChallengeResponseAuthentication no/g' /etc/ssh/ssh_config
+ sed -i "s/# HostKeyAlgorithms.*/ HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
+ sed -i "s/# Ciphers.*/ Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
+ sed -i "s/# MACs.*/ MACs $SSH_MACS/g" /etc/ssh/ssh_config
+ if ! grep -q "HostKeyAlgorithms" /etc/ssh/ssh_config; then
+ echo " HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS" >> /etc/ssh/ssh_config
+ fi
+ sed -i "s/Ciphers.*/Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
+ if ! grep -q "Ciphers " /etc/ssh/ssh_config; then
+ echo " Ciphers $SSH_CIPHERS" >> /etc/ssh/ssh_config
+ fi
+ sed -i "s/MACs.*/MACs $SSH_MACS/g" /etc/ssh/ssh_config
+ if ! grep -q "MACs " /etc/ssh/ssh_config; then
+ echo " MACs $SSH_MACS" >> /etc/ssh/ssh_config
+ fi
+
+ # Create ssh keys
+ if [ ! -f ~/.ssh/id_ed25519 ]; then
+ ssh-keygen -t ed25519 -o -a 100
+ fi
+ if [ ! -f ~/.ssh/id_rsa ]; then
+ ssh-keygen -t rsa -b 4096 -o -a 100
+ fi
+
+ function_check ssh_remove_small_moduli
+ ssh_remove_small_moduli
+ mark_completed $FUNCNAME
+}
+
+function regenerate_ssh_keys {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ rm -f /etc/ssh/ssh_host_*
+ dpkg-reconfigure openssh-server
+
+ function_check ssh_remove_small_moduli
+ ssh_remove_small_moduli
+
+ systemctl restart ssh
+ mark_completed $FUNCNAME
+}
+
+function configure_firewall_for_ssh {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+
+ firewall_add SSH ${SSH_PORT} tcp
+ mark_completed $FUNCNAME
+}
+
+function get_ssh_server_key {
+ if [ -f /etc/ssh/ssh_host_rsa_key.pub ]; then
+ echo "RSA Md5: $(ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub | awk -F ' ' '{print $2}')"
+ echo "RSA SHA256: $(awk '{print $2}' /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 | sed 's|=||g')"
+ fi
+ if [ -f /etc/ssh/ssh_host_ed25519_key.pub ]; then
+ echo "ED25519 Md5: $(ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub | awk -F ' ' '{print $2}')"
+ echo "ED25519 SHA256:$(awk '{print $2}' /etc/ssh/ssh_host_ed25519_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 | sed 's|=||g')"
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-time b/src/freedombone-utils-time
new file mode 100755
index 00000000..716c60e9
--- /dev/null
+++ b/src/freedombone-utils-time
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Time functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function check_date {
+ curr_date=$(date)
+ if [[ $curr_date == *"1970"* ]]; then
+ apt-get -yq install ntp
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-tracker b/src/freedombone-utils-tracker
new file mode 100755
index 00000000..a5701352
--- /dev/null
+++ b/src/freedombone-utils-tracker
@@ -0,0 +1,103 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Torrent tracker functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+TRACKER_PORT=6969
+
+function mesh_install_tracker {
+ chroot "$rootdir" apt-get -yq install bittornado nginx
+
+ TRACKER_DAEMON=$rootdir/etc/systemd/system/tracker.service
+ echo '[Unit]' > $TRACKER_DAEMON
+ echo 'Description=Torrent Tracker' >> $TRACKER_DAEMON
+ echo 'After=syslog.target' >> $TRACKER_DAEMON
+ echo 'After=network.target' >> $TRACKER_DAEMON
+ echo '[Service]' >> $TRACKER_DAEMON
+ echo 'Type=simple' >> $TRACKER_DAEMON
+ echo 'User=tracker' >> $TRACKER_DAEMON
+ echo 'Group=tracker' >> $TRACKER_DAEMON
+ echo "WorkingDirectory=/var/lib/tracker" >> $TRACKER_DAEMON
+ echo "ExecStart=/usr/bin/bttrack --port $TRACKER_PORT --dfile /var/lib/tracker/dstate --logfile /var/lib/tracker/tracker.log --nat_check 0 --scrape_allowed full --ipv6_enabled 0" >> $TRACKER_DAEMON
+ echo '' >> $TRACKER_DAEMON
+ echo 'TimeoutSec=300' >> $TRACKER_DAEMON
+ echo '' >> $TRACKER_DAEMON
+ echo '[Install]' >> $TRACKER_DAEMON
+ echo 'WantedBy=multi-user.target' >> $TRACKER_DAEMON
+
+ chroot "$rootdir" useradd -d /var/lib/tracker/ -s /bin/false tracker
+ if [ ! -d $rootdir/var/lib/tracker ]; then
+ mkdir $rootdir/var/lib/tracker
+ fi
+ chroot "$rootdir" chown -R tracker:tracker /var/lib/tracker
+
+ chroot "$rootdir" systemctl enable tracker.service
+}
+
+function install_tracker {
+ if [ $INSTALLING_MESH ]; then
+ mesh_install_tracker
+ return
+ fi
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install bittornado nginx
+
+ TRACKER_DAEMON=/etc/systemd/system/tracker.service
+ echo '[Unit]' > $TRACKER_DAEMON
+ echo 'Description=Torrent Tracker' >> $TRACKER_DAEMON
+ echo 'After=syslog.target' >> $TRACKER_DAEMON
+ echo 'After=network.target' >> $TRACKER_DAEMON
+ echo '[Service]' >> $TRACKER_DAEMON
+ echo 'Type=simple' >> $TRACKER_DAEMON
+ echo 'User=tracker' >> $TRACKER_DAEMON
+ echo 'Group=tracker' >> $TRACKER_DAEMON
+ echo "WorkingDirectory=/var/lib/tracker" >> $TRACKER_DAEMON
+ echo "ExecStart=/usr/bin/bttrack --port $TRACKER_PORT --dfile /var/lib/tracker/dstate --logfile /var/lib/tracker/tracker.log --nat_check 0 --scrape_allowed full --ipv6_enabled 0" >> $TRACKER_DAEMON
+ echo '' >> $TRACKER_DAEMON
+ echo 'TimeoutSec=300' >> $TRACKER_DAEMON
+ echo '' >> $TRACKER_DAEMON
+ echo '[Install]' >> $TRACKER_DAEMON
+ echo 'WantedBy=multi-user.target' >> $TRACKER_DAEMON
+
+ useradd -d /var/lib/tracker/ -s /bin/false tracker
+ if [ ! -d /var/lib/tracker ]; then
+ mkdir /var/lib/tracker
+ fi
+ chown -R tracker:tracker /var/lib/tracker
+
+ systemctl enable tracker.service
+ systemctl start tracker.service
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-upgrade b/src/freedombone-utils-upgrade
new file mode 100755
index 00000000..09426f37
--- /dev/null
+++ b/src/freedombone-utils-upgrade
@@ -0,0 +1,89 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Upgrading functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# name of a script used to upgrade the system
+UPGRADE_SCRIPT_NAME="${PROJECT_NAME}-upgrade"
+
+function create_upgrade_script {
+ if [ -f /usr/local/bin/${PROJECT_NAME}-upgrade ]; then
+ cp /usr/local/bin/${PROJECT_NAME}-upgrade /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
+ else
+ cp /usr/bin/${PROJECT_NAME}-upgrade /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
+ fi
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ apt-get -yq install unattended-upgrades
+
+ mark_completed $FUNCNAME
+}
+
+function upgrade_installation_from_previous_versions {
+ if [ ! -f $COMPLETION_FILE ]; then
+ return
+ fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ # upgrade from previous versions
+ sed -i 's|configure_email|install_email|g' $COMPLETION_FILE
+ sed -i 's|install_dlna_server|install_dlna|g' $COMPLETION_FILE
+ sed -i 's|install_gnu_social_theme|install_gnusocial_theme|g' $COMPLETION_FILE
+ sed -i 's|install_gnu_social|install_gnusocial|g' $COMPLETION_FILE
+ sed -i 's|install_irc_server|install_irc|g' $COMPLETION_FILE
+ sed -i 's|voip_turn|turn|g' $COMPLETION_FILE
+ sed -i 's|install_voip|install_mumble|g' $COMPLETION_FILE
+ sed -i 's|install_rss_reader|install_rss|g' $COMPLETION_FILE
+ sed -i 's|install_tox_node|install_tox|g' $COMPLETION_FILE
+ sed -i 's|intrusion_detection|install_tripwire|g' $COMPLETION_FILE
+
+ sed -i 's|GNU Social|gnusocial|g' $COMPLETION_FILE
+ sed -i 's|XMPP|xmpp|g' $COMPLETION_FILE
+ sed -i 's|voip|mumble|g' $COMPLETION_FILE
+ sed -i 's|VoIP|mumble|g' $COMPLETION_FILE
+ sed -i 's|SIP |sip |g' $COMPLETION_FILE
+ sed -i 's|Blog|htmly|g' $COMPLETION_FILE
+ sed -i 's|Hubzilla|hubzilla|g' $COMPLETION_FILE
+ sed -i 's|Gogs|gogs|g' $COMPLETION_FILE
+ sed -i 's|Wiki|dokuwiki|g' $COMPLETION_FILE
+ sed -i 's|RSS|rss|g' $COMPLETION_FILE
+ sed -i 's|Zeronet|zeronet|g' $COMPLETION_FILE
+
+ if [ -f /usr/local/bin/zeronetavahi ]; then
+ rm /usr/local/bin/zeronetavahi
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-validation b/src/freedombone-utils-validation
new file mode 100755
index 00000000..a13b1cf0
--- /dev/null
+++ b/src/freedombone-utils-validation
@@ -0,0 +1,72 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Validation functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# If this file exists it contains a global password used with
+# disk image installs. This simplifies password management for
+# deployment at scale
+
+function validate_domain_name {
+ # count the number of dots in the domain name
+ dots=${TEST_DOMAIN_NAME//[^.]}
+ no_of_dots=${#dots}
+ if (( no_of_dots > 3 )); then
+ TEST_DOMAIN_NAME="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"
+ fi
+ if (( no_of_dots == 0 )); then
+ TEST_DOMAIN_NAME="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"
+ fi
+}
+
+function validate_freedns_code {
+ freedns_code="$1"
+
+ FREEDNS_MESSAGE=$"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."
+
+ if [[ "$freedns_code" == *"."* || "$freedns_code" == "http"* || "$freedns_code" == *"wget "* || "$freedns_code" == *" "* ]]; then
+ dialog --title $"Invalid FreeDNS Code" --msgbox "$FREEDNS_MESSAGE" 10 70
+ VALID_CODE=
+ fi
+ if [ ${#freedns_code} -lt 30 ]; then
+ dialog --title $"Invalid FreeDNS Code" --msgbox $'FreeDNS code is too short. Did you enter the entire code?' 6 70
+ VALID_CODE=
+ fi
+ VALID_CODE='yes'
+}
+
+function is_valid_user {
+ USRNAME="$1"
+ if [[ "$USRNAME" != "znc" && "$USRNAME" != "pihole" && "$USRNAME" != "fbone" && "$USRNAME" != "go" && "$USRNAME" != "gogs" && "$USRNAME" != "git" && "$USRNAME" != "mirrors" && "$USRNAME" != "sync" && "$USERNAME" != "tahoelafs" ]]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-watchdog b/src/freedombone-utils-watchdog
new file mode 100755
index 00000000..0a8856e1
--- /dev/null
+++ b/src/freedombone-utils-watchdog
@@ -0,0 +1,72 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Watchdog functions to keep systems running even if they crash
+# systemd itself can handle this, but some debian packages are in
+# twilight world where they still use the older init scripts
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# name of a script which keeps running processes going even if they crash
+WATCHDOG_SCRIPT_NAME="keepon"
+
+function install_watchdog_script {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ echo '#!/bin/bash' > /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'LOGFILE=/var/log/keepon.log' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'CURRENT_DATE=$(date)' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ # application specific stuff is added later
+ chmod +x /usr/bin/$WATCHDOG_SCRIPT_NAME
+
+ function_check cron_add_mins
+ cron_add_mins 1 "/usr/bin/$WATCHDOG_SCRIPT_NAME"
+
+ mark_completed $FUNCNAME
+}
+
+function add_watchdog_daemon {
+ daemon_name=$1
+
+ echo '' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo "# keep ${daemon_name} daemon running" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo "RUNNING=$(pgrep ${daemon_name} > /dev/null && echo Running)" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'if [ ! $RUNNING ]; then' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo " systemctl start ${daemon_name}" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo ' echo -n $CURRENT_DATE >> $LOGFILE' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo " echo \"${daemon_name} daemon restarted\" >> \$LOGFILE" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo 'fi' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+ echo "# End of ${daemon_name}" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+}
+
+function remove_watchdog_daemon {
+ daemon_name=$1
+
+ sed -i "/# keep ${daemon_name} daemon running/,/# End of ${daemon_name}/d" /usr/bin/$WATCHDOG_SCRIPT_NAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-web b/src/freedombone-utils-web
new file mode 100755
index 00000000..f81116bf
--- /dev/null
+++ b/src/freedombone-utils-web
@@ -0,0 +1,793 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Web related functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+# default search engine for command line browser
+DEFAULT_SEARCH='https://searx.laquadrature.net'
+
+# Whether Let's Encrypt is enabled for all sites
+LETSENCRYPT_ENABLED="no"
+LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
+
+# list of encryption protocols
+SSL_PROTOCOLS="TLSv1 TLSv1.1 TLSv1.2"
+
+# list of ciphers to use. See bettercrypto.org recommendations
+SSL_CIPHERS="EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"
+
+NGINX_ENSITE_REPO="https://github.com/perusio/nginx_ensite"
+NGINX_ENSITE_COMMIT='fa4d72ce1c0a490442c8474e9c8dc21ed52c93d0'
+
+# memory limit for php in MB
+MAX_PHP_MEMORY=64
+
+# logging level for Nginx
+WEBSERVER_LOG_LEVEL='warn'
+
+# test a domain name to see if it's valid
+function validate_domain_name {
+ # count the number of dots in the domain name
+ dots=${TEST_DOMAIN_NAME//[^.]}
+ no_of_dots=${#dots}
+ if (( $no_of_dots > 3 )); then
+ TEST_DOMAIN_NAME=$"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"
+ fi
+ if (( $no_of_dots == 0 )); then
+ TEST_DOMAIN_NAME=$"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"
+ fi
+}
+
+function nginx_disable_sniffing {
+ domain_name=$1
+ filename=/etc/nginx/sites-available/$domain_name
+ echo ' add_header X-Frame-Options DENY;' >> $filename
+ echo ' add_header X-Content-Type-Options nosniff;' >> $filename
+ echo '' >> $filename
+}
+
+function nginx_limits {
+ domain_name=$1
+ max_body='20m'
+ if [ $2 ]; then
+ max_body=$2
+ fi
+ filename=/etc/nginx/sites-available/$domain_name
+ echo " client_max_body_size ${max_body};" >> $filename
+ echo ' client_body_buffer_size 128k;' >> $filename
+ echo '' >> $filename
+ echo ' limit_conn conn_limit_per_ip 10;' >> $filename
+ echo ' limit_req zone=req_limit_per_ip burst=10 nodelay;' >> $filename
+ echo '' >> $filename
+}
+
+function nginx_stapling {
+ domain_name=$1
+ filename=/etc/nginx/sites-available/$domain_name
+ echo " ssl_stapling on;" >> $filename
+ echo ' ssl_stapling_verify on;' >> $filename
+ echo ' ssl_trusted_certificate /etc/ssl/certs/${domain_name}.pem;' >> $filename
+ echo '' >> $filename
+}
+
+function nginx_http_redirect {
+ # redirect port 80 to https
+ domain_name=$1
+ filename=/etc/nginx/sites-available/$domain_name
+ echo 'server {' > $filename
+ echo ' listen 80;' >> $filename
+ echo ' listen [::]:80;' >> $filename
+ echo " server_name ${domain_name};" >> $filename
+ echo " root /var/www/${domain_name}/htdocs;" >> $filename
+ echo ' access_log /dev/null;' >> $filename
+ echo " error_log /dev/null;" >> $filename
+ function_check nginx_limits
+ nginx_limits $domain_name
+ echo ' rewrite ^ https://$server_name$request_uri? permanent;' >> $filename
+ echo '}' >> $filename
+ echo '' >> $filename
+}
+
+function nginx_ssl {
+ # creates the SSL/TLS section for a website
+ domain_name=$1
+ filename=/etc/nginx/sites-available/$domain_name
+
+ echo ' ssl_stapling off;' >> $filename
+ echo ' ssl_stapling_verify off;' >> $filename
+ echo ' ssl on;' >> $filename
+ if [ -f /etc/ssl/certs/${domain_name}.pem ]; then
+ echo " ssl_certificate /etc/ssl/certs/${domain_name}.pem;" >> $filename
+ else
+ echo " ssl_certificate /etc/ssl/certs/${domain_name}.crt;" >> $filename
+ fi
+ echo " ssl_certificate_key /etc/ssl/private/${domain_name}.key;" >> $filename
+ echo " ssl_dhparam /etc/ssl/certs/${domain_name}.dhparam;" >> $filename
+ echo '' >> $filename
+ echo ' ssl_session_cache builtin:1000 shared:SSL:10m;' >> $filename
+ echo ' ssl_session_timeout 60m;' >> $filename
+ echo ' ssl_prefer_server_ciphers on;' >> $filename
+ echo " ssl_protocols $SSL_PROTOCOLS;" >> $filename
+ echo " ssl_ciphers '$SSL_CIPHERS';" >> $filename
+ echo " add_header Content-Security-Policy \"default-src https:; script-src https: 'unsafe-inline'; style-src https: 'unsafe-inline'\";" >> $filename
+ #nginx_stapling $1
+}
+
+function nginx_keybase {
+ # creates files suitable for keybase.io verification
+ domain_name=$1
+ filename=/etc/nginx/sites-available/$domain_name
+
+ echo '' >> $filename
+ echo " # make sure webfinger and other well known services aren't blocked" >> $filename
+ echo ' # by denying dot files and rewrite request to the front controller' >> $filename
+ echo ' location ^~ /.well-known/ {' >> $filename
+ echo ' allow all;' >> $filename
+ echo ' }' >> $filename
+
+ if [ ! -d /var/www/${domain_name}/htdocs/.well-known ]; then
+ mkdir -p /var/www/${domain_name}/htdocs/.well-known
+ fi
+ if [ ! -f /var/www/${domain_name}/htdocs/keybase.txt ]; then
+ touch /var/www/${domain_name}/htdocs/keybase.txt
+ fi
+ if [ ! -f /var/www/${domain_name}/htdocs/.well-known/keybase.txt ]; then
+ touch /var/www/${domain_name}/htdocs/.well-known/keybase.txt
+ fi
+}
+
+# check an individual domain name
+function test_domain_name {
+ if [ $1 ]; then
+ TEST_DOMAIN_NAME=$1
+ function_check validate_domain_name
+ validate_domain_name
+ if [[ $TEST_DOMAIN_NAME != $1 ]]; then
+ echo $TEST_DOMAIN_NAME
+ exit 8528
+ fi
+ fi
+}
+
+# Checks whether certificates were generated for the given hostname
+function check_certificates {
+ if [ ! $1 ]; then
+ return
+ fi
+ USE_LETSENCRYPT='no'
+ if [ $2 ]; then
+ USE_LETSENCRYPT=$2
+ fi
+ if [[ $USE_LETSENCRYPT == 'no' ]]; then
+ if [ ! -f /etc/ssl/private/${1}.key ]; then
+ echo $"Private certificate for ${CHECK_HOSTNAME} was not created"
+ exit 63959
+ fi
+ if [ ! -f /etc/ssl/certs/${1}.crt ]; then
+ echo $"Public certificate for ${CHECK_HOSTNAME} was not created"
+ exit 7679
+ fi
+
+ if grep -q "${1}.pem" /etc/nginx/sites-available/${1}; then
+ sed -i "s|${1}.pem|${1}.crt|g" /etc/nginx/sites-available/${1}
+ fi
+ else
+ if [ ! -f /etc/letsencrypt/live/${1}/privkey.pem ]; then
+ echo $"Private certificate for ${CHECK_HOSTNAME} was not created"
+ exit 6282
+ fi
+ if [ ! -f /etc/letsencrypt/live/${1}/fullchain.pem ]; then
+ echo $"Public certificate for ${CHECK_HOSTNAME} was not created"
+ exit 5328
+ fi
+ if grep -q "${1}.crt" /etc/nginx/sites-available/${1}; then
+ sed -i "s|${1}.crt|${1}.pem|g" /etc/nginx/sites-available/${1}
+ fi
+ fi
+ if [ ! -f /etc/ssl/certs/${1}.dhparam ]; then
+ echo $"Diffie–Hellman parameters for ${CHECK_HOSTNAME} were not created"
+ exit 5989
+ fi
+}
+
+function cert_exists {
+ cert_type='dhparam'
+ if [ $2 ]; then
+ cert_type="$2"
+ fi
+ if [ -f /etc/ssl/certs/${1}.${cert_type} ]; then
+ echo "1"
+ else
+ if [ -f /etc/letsencrypt/live/${1}/fullchain.${cert_type} ]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+ fi
+}
+
+function create_self_signed_cert {
+ ${PROJECT_NAME}-addcert -h ${SITE_DOMAIN_NAME} --dhkey ${DH_KEYLENGTH}
+ function_check check_certificates
+ check_certificates ${SITE_DOMAIN_NAME}
+}
+
+function create_letsencrypt_cert {
+ ${PROJECT_NAME}-addcert -e ${SITE_DOMAIN_NAME} -s ${LETSENCRYPT_SERVER} --dhkey ${DH_KEYLENGTH} --email ${MY_EMAIL_ADDRESS}
+ if [ ! "$?" = "0" ]; then
+ if [[ ${NO_SELF_SIGNED} == 'no' ]]; then
+ echo $"Lets Encrypt failed for ${SITE_DOMAIN_NAME}, so try making a self-signed cert"
+ ${PROJECT_NAME}-addcert -h ${SITE_DOMAIN_NAME} --dhkey ${DH_KEYLENGTH}
+ function_check check_certificates
+ check_certificates ${SITE_DOMAIN_NAME}
+ else
+ echo $"Lets Encrypt failed for $SITE_DOMAIN_NAME"
+ exit 682529
+ fi
+ return
+ fi
+
+ function_check check_certificates
+ check_certificates ${SITE_DOMAIN_NAME} 'yes'
+}
+
+function create_site_certificate {
+ SITE_DOMAIN_NAME="$1"
+
+ # if yes then only "valid" certs are allowed, not self-signed
+ NO_SELF_SIGNED='no'
+ if [ $2 ]; then
+ NO_SELF_SIGNED="$2"
+ fi
+
+ if [[ $ONION_ONLY == "no" ]]; then
+ if [[ "$(cert_exists ${SITE_DOMAIN_NAME})" == "0" ]]; then
+ if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
+ create_self_signed_cert
+ else
+ create_letsencrypt_cert
+ fi
+ else
+ if [[ $LETSENCRYPT_ENABLED == "yes" ]]; then
+ if [[ "$(cert_exists ${SITE_DOMAIN_NAME} pem)" == "0" ]]; then
+ create_letsencrypt_cert
+ fi
+ fi
+ fi
+ fi
+}
+
+# script to automatically renew any Let's Encrypt certificates
+function letsencrypt_renewals {
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ renewals_script=/etc/cron.monthly/letsencrypt
+ renewals_retry_script=/etc/cron.daily/letsencrypt
+ renewal_failure_msg=$'The certificate for $LETSENCRYPT_DOMAIN could not be renewed'
+ renewal_email_title=$'${PROJECT_NAME} Lets Encrypt certificate renewal'
+
+ # the main script tries to renew once per month
+ echo '#!/bin/bash' > $renewals_script
+ echo '' >> $renewals_script
+ echo "PROJECT_NAME='${PROJECT_NAME}'" >> $renewals_script
+ echo 'COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt' >> $renewals_script
+ echo '' >> $renewals_script
+ echo 'if [ -d /etc/letsencrypt ]; then' >> $renewals_script
+ echo ' if [ -f ~/letsencrypt_failed ]; then' >> $renewals_script
+ echo ' rm ~/letsencrypt_failed' >> $renewals_script
+ echo ' fi' >> $renewals_script
+ echo -n ' ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> $renewals_script
+ echo -n "awk -F ':' '{print " >> $renewals_script
+ echo -n '$2' >> $renewals_script
+ echo "}')" >> $renewals_script
+ echo ' ADMIN_EMAIL_ADDRESS=$ADMIN_USERNAME@$HOSTNAME' >> $renewals_script
+ echo ' for d in /etc/letsencrypt/live/*/ ; do' >> $renewals_script
+ echo -n ' LETSENCRYPT_DOMAIN=$(echo "$d" | ' >> $renewals_script
+ echo -n "awk -F '/' '{print " >> $renewals_script
+ echo -n '$5' >> $renewals_script
+ echo "}')" >> $renewals_script
+ echo ' if [ -f /etc/nginx/sites-available/$LETSENCRYPT_DOMAIN ]; then' >> $renewals_script
+ echo ' ${PROJECT_NAME}-renew-cert -h $LETSENCRYPT_DOMAIN -p letsencrypt' >> $renewals_script
+ echo ' if [ ! "$?" = "0" ]; then' >> $renewals_script
+ echo " echo \"${renewal_failure_msg}\" > ~/temp_renewletsencrypt.txt" >> $renewals_script
+ echo ' echo "" >> ~/temp_renewletsencrypt.txt' >> $renewals_script
+ echo ' ${PROJECT_NAME}-renew-cert -h $LETSENCRYPT_DOMAIN -p letsencrypt 2>> ~/temp_renewletsencrypt.txt' >> $renewals_script
+ echo -n " cat ~/temp_renewletsencrypt.txt | mail -s \"${renewal_email_title}\" " >> $renewals_script
+ echo '$ADMIN_EMAIL_ADDRESS' >> $renewals_script
+ echo ' rm ~/temp_renewletsencrypt.txt' >> $renewals_script
+ echo ' if [ ! -f ~/letsencrypt_failed ]; then' >> $renewals_script
+ echo ' touch ~/letsencrypt_failed' >> $renewals_script
+ echo ' fi' >> $renewals_script
+ echo ' fi' >> $renewals_script
+ echo ' fi' >> $renewals_script
+ echo ' done' >> $renewals_script
+ echo 'fi' >> $renewals_script
+ chmod +x $renewals_script
+
+ # a secondary script keeps trying to renew after a failure
+ echo '#!/bin/bash' > $renewals_retry_script
+ echo '' >> $renewals_retry_script
+ echo "PROJECT_NAME='${PROJECT_NAME}'" >> $renewals_retry_script
+ echo 'COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt' >> $renewals_retry_script
+ echo '' >> $renewals_retry_script
+ echo 'if [ -d /etc/letsencrypt ]; then' >> $renewals_retry_script
+ echo ' if [ -f ~/letsencrypt_failed ]; then' >> $renewals_retry_script
+ echo ' rm ~/letsencrypt_failed' >> $renewals_retry_script
+ echo -n ' ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> $renewals_retry_script
+ echo -n "awk -F ':' '{print " >> $renewals_retry_script
+ echo -n '$2' >> $renewals_retry_script
+ echo "}')" >> $renewals_retry_script
+ echo ' ADMIN_EMAIL_ADDRESS=$ADMIN_USERNAME@$HOSTNAME' >> $renewals_retry_script
+ echo ' for d in /etc/letsencrypt/live/*/ ; do' >> $renewals_retry_script
+ echo -n ' LETSENCRYPT_DOMAIN=$(echo "$d" | ' >> $renewals_retry_script
+ echo -n "awk -F '/' '{print " >> $renewals_retry_script
+ echo -n '$5' >> $renewals_retry_script
+ echo "}')" >> $renewals_retry_script
+ echo ' if [ -f /etc/nginx/sites-available/$LETSENCRYPT_DOMAIN ]; then' >> $renewals_retry_script
+ echo ' ${PROJECT_NAME}-renew-cert -h $LETSENCRYPT_DOMAIN -p letsencrypt' >> $renewals_retry_script
+ echo ' if [ ! "$?" = "0" ]; then' >> $renewals_retry_script
+ echo " echo \"${renewal_failure_msg}\" > ~/temp_renewletsencrypt.txt" >> $renewals_retry_script
+ echo ' echo "" >> ~/temp_renewletsencrypt.txt' >> $renewals_retry_script
+ echo ' ${PROJECT_NAME}-renew-cert -h $LETSENCRYPT_DOMAIN -p letsencrypt 2>> ~/temp_renewletsencrypt.txt' >> $renewals_retry_script
+ echo -n " cat ~/temp_renewletsencrypt.txt | mail -s \"${renewal_email_title}\" " >> $renewals_retry_script
+ echo '$ADMIN_EMAIL_ADDRESS' >> $renewals_retry_script
+ echo ' rm ~/temp_renewletsencrypt.txt' >> $renewals_retry_script
+ echo ' if [ ! -f ~/letsencrypt_failed ]; then' >> $renewals_retry_script
+ echo ' touch ~/letsencrypt_failed' >> $renewals_retry_script
+ echo ' fi' >> $renewals_retry_script
+ echo ' fi' >> $renewals_retry_script
+ echo ' fi' >> $renewals_retry_script
+ echo ' done' >> $renewals_retry_script
+ echo ' fi' >> $renewals_retry_script
+ echo 'fi' >> $renewals_retry_script
+ chmod +x $renewals_retry_script
+}
+
+function configure_php {
+ sed -i "s/memory_limit = 128M/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/fpm/php.ini
+ sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
+ sed -i "s/memory_limit = -1/memory_limit = ${MAX_PHP_MEMORY}M/g" /etc/php5/cli/php.ini
+ sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/g" /etc/php5/fpm/php.ini
+ sed -i "s/post_max_size = 8M/post_max_size = 50M/g" /etc/php5/fpm/php.ini
+}
+
+function install_web_server_access_control {
+ if [ ! -f /etc/pam.d/nginx ]; then
+ echo '#%PAM-1.0' > /etc/pam.d/nginx
+ echo '@include common-auth' >> /etc/pam.d/nginx
+ echo '@include common-account' >> /etc/pam.d/nginx
+ echo '@include common-session' >> /etc/pam.d/nginx
+ fi
+}
+
+function install_dynamicdns {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $INSTALL_DIR/inadyn "inadyn commit" "$INADYN_COMMIT" $INADYN_REPO
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ # Here we compile from source because the current package
+ # doesn't support https, which could result in passwords
+ # being leaked
+ # Debian version 1.99.4-1
+ # https version 1.99.8
+
+ apt-get -yq install build-essential curl libgnutls28-dev automake1.11
+ if [ ! -d $INSTALL_DIR/inadyn ]; then
+ git_clone $INADYN_REPO $INSTALL_DIR/inadyn
+ fi
+ if [ ! -d $INSTALL_DIR/inadyn ]; then
+ echo 'inadyn repo not cloned'
+ echo -n | openssl s_client -showcerts -connect github.com:443 -CApath /etc/ssl/certs
+ exit 6785
+ fi
+ cd $INSTALL_DIR/inadyn
+ git checkout $INADYN_COMMIT -b $INADYN_COMMIT
+ set_completion_param "inadyn commit" "$INADYN_COMMIT"
+
+ ./configure
+ if [ ! "$?" = "0" ]; then
+ exit 74890
+ fi
+ USE_OPENSSL=1 make
+ if [ ! "$?" = "0" ]; then
+ exit 74858
+ fi
+ make install
+ if [ ! "$?" = "0" ]; then
+ exit 3785
+ fi
+
+ # create an unprivileged user
+ #useradd -r -s /bin/false debian-inadyn
+
+ # create a configuration file
+ echo 'background' > /etc/inadyn.conf
+ echo 'verbose 1' >> /etc/inadyn.conf
+ echo 'period 300' >> /etc/inadyn.conf
+ echo 'startup-delay 60' >> /etc/inadyn.conf
+ echo 'cache-dir /run/inadyn' >> /etc/inadyn.conf
+ echo 'logfile /dev/null' >> /etc/inadyn.conf
+ chmod 600 /etc/inadyn.conf
+
+ echo '[Unit]' > /etc/systemd/system/inadyn.service
+ echo 'Description=inadyn (DynDNS updater)' >> /etc/systemd/system/inadyn.service
+ echo 'After=network.target' >> /etc/systemd/system/inadyn.service
+ echo '' >> /etc/systemd/system/inadyn.service
+ echo '[Service]' >> /etc/systemd/system/inadyn.service
+ echo 'ExecStart=/usr/local/sbin/inadyn --config /etc/inadyn.conf' >> /etc/systemd/system/inadyn.service
+ echo 'Restart=always' >> /etc/systemd/system/inadyn.service
+ echo 'Type=forking' >> /etc/systemd/system/inadyn.service
+ echo '' >> /etc/systemd/system/inadyn.service
+ echo '[Install]' >> /etc/systemd/system/inadyn.service
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/inadyn.service
+ systemctl enable inadyn
+ systemctl start inadyn
+ systemctl daemon-reload
+
+ mark_completed $FUNCNAME
+}
+
+function install_command_line_browser {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -yq install elinks
+
+ # set the home page
+ if ! grep -q "WWW_HOME" /home/$MY_USERNAME/.bashrc; then
+ if ! grep -q 'control' /home/$MY_USERNAME/.bashrc; then
+ echo "export WWW_HOME=$DEFAULT_SEARCH" >> /home/$MY_USERNAME/.bashrc
+ else
+ sed -i "/control/i export WWW_HOME=$DEFAULT_SEARCH" /home/$MY_USERNAME/.bashrc
+ fi
+ fi
+
+ mark_completed $FUNCNAME
+}
+
+function mesh_web_server {
+ if [ -d /etc/apache2 ]; then
+ chroot "$rootdir" apt-get -yq remove --purge apache2
+ chroot "$rootdir" rm -rf /etc/apache2
+ fi
+
+ chroot "$rootdir" apt-get -yq install nginx
+
+ if [ ! -d $rootdir/etc/nginx ]; then
+ echo $'Unable to install web server'
+ exit 346825
+ fi
+}
+
+function install_web_server {
+ if [ $INSTALLING_MESH ]; then
+ mesh_web_server
+ return
+ fi
+
+ # update to the next commit
+ function_check set_repo_commit
+ set_repo_commit $INSTALL_DIR/nginx_ensite "nginx-ensite commit" "$NGINX_ENSITE_COMMIT" $NGINX_ENSITE_REPO
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ # remove apache
+ apt-get -yq remove --purge apache2
+ if [ -d /etc/apache2 ]; then
+ rm -rf /etc/apache2
+ fi
+ # install nginx
+ apt-get -yq install nginx php5-fpm git
+
+ # Turn off logs by default
+ sed -i 's|access_log.*|access_log = /dev/null;|g' /etc/nginx/nginx.conf
+ sed -i 's|error_log.*|error_log = /dev/null;|g' /etc/nginx/nginx.conf
+
+ # limit the number of php processes
+ sed -i 's/; process.max =.*/process.max = 32/g' /etc/php5/fpm/php-fpm.conf
+ #sed -i 's/;process_control_timeout =.*/process_control_timeout = 300/g' /etc/php5/fpm/php-fpm.conf
+
+ if ! grep -q "pm.max_children" /etc/php5/fpm/php-fpm.conf; then
+ echo 'pm.max_children = 10' >> /etc/php5/fpm/php-fpm.conf
+ echo 'pm.start_servers = 2' >> /etc/php5/fpm/php-fpm.conf
+ echo 'pm.min_spare_servers = 2' >> /etc/php5/fpm/php-fpm.conf
+ echo 'pm.max_spare_servers = 5' >> /etc/php5/fpm/php-fpm.conf
+ echo 'pm.max_requests = 50' >> /etc/php5/fpm/php-fpm.conf
+ fi
+
+ if [ ! -d /etc/nginx ]; then
+ echo $"ERROR: nginx does not appear to have installed. $CHECK_MESSAGE"
+ exit 51
+ fi
+
+ # Nginx settings
+ echo 'user www-data;' > /etc/nginx/nginx.conf
+ #echo "worker_processes; $CPU_CORES" >> /etc/nginx/nginx.conf
+ echo 'pid /run/nginx.pid;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo 'events {' >> /etc/nginx/nginx.conf
+ echo ' worker_connections 50;' >> /etc/nginx/nginx.conf
+ echo ' # multi_accept on;' >> /etc/nginx/nginx.conf
+ echo '}' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo 'http {' >> /etc/nginx/nginx.conf
+ echo ' # limit the number of connections per single IP' >> /etc/nginx/nginx.conf
+ echo ' limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # limit the number of requests for a given session' >> /etc/nginx/nginx.conf
+ echo ' limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=140r/s;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # if the request body size is more than the buffer size, then the entire (or partial) request body is written into a temporary file' >> /etc/nginx/nginx.conf
+ echo ' client_body_buffer_size 128k;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # headerbuffer size for the request header from client, its set for testing purpose' >> /etc/nginx/nginx.conf
+ echo ' client_header_buffer_size 3m;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # maximum number and size of buffers for large headers to read from client request' >> /etc/nginx/nginx.conf
+ echo ' large_client_header_buffers 4 256k;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # read timeout for the request body from client, its set for testing purpose' >> /etc/nginx/nginx.conf
+ echo ' client_body_timeout 3m;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # how long to wait for the client to send a request header, its set for testing purpose' >> /etc/nginx/nginx.conf
+ echo ' client_header_timeout 3m;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo ' # Basic Settings' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' sendfile on;' >> /etc/nginx/nginx.conf
+ echo ' tcp_nopush on;' >> /etc/nginx/nginx.conf
+ echo ' tcp_nodelay on;' >> /etc/nginx/nginx.conf
+ echo ' keepalive_timeout 65;' >> /etc/nginx/nginx.conf
+ echo ' types_hash_max_size 2048;' >> /etc/nginx/nginx.conf
+ echo ' server_tokens off;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # server_names_hash_bucket_size 64;' >> /etc/nginx/nginx.conf
+ echo ' # server_name_in_redirect off;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' include /etc/nginx/mime.types;' >> /etc/nginx/nginx.conf
+ echo ' default_type application/octet-stream;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo ' # Logging Settings' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' access_log /dev/null;' >> /etc/nginx/nginx.conf
+ echo ' error_log /dev/null;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' ###' >> /etc/nginx/nginx.conf
+ echo ' # Gzip Settings' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo ' gzip on;' >> /etc/nginx/nginx.conf
+ echo ' gzip_disable "msie6";' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' # gzip_vary on;' >> /etc/nginx/nginx.conf
+ echo ' # gzip_proxied any;' >> /etc/nginx/nginx.conf
+ echo ' # gzip_comp_level 6;' >> /etc/nginx/nginx.conf
+ echo ' # gzip_buffers 16 8k;' >> /etc/nginx/nginx.conf
+ echo ' # gzip_http_version 1.1;' >> /etc/nginx/nginx.conf
+ echo ' # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo ' # Virtual Host Configs' >> /etc/nginx/nginx.conf
+ echo ' ##' >> /etc/nginx/nginx.conf
+ echo '' >> /etc/nginx/nginx.conf
+ echo ' include /etc/nginx/conf.d/*.conf;' >> /etc/nginx/nginx.conf
+ echo ' include /etc/nginx/sites-enabled/*;' >> /etc/nginx/nginx.conf
+ echo '}' >> /etc/nginx/nginx.conf
+
+ # install a script to easily enable and disable nginx virtual hosts
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir $INSTALL_DIR
+ fi
+ cd $INSTALL_DIR
+ function_check git_clone
+ git_clone $NGINX_ENSITE_REPO $INSTALL_DIR/nginx_ensite
+ cd $INSTALL_DIR/nginx_ensite
+ git checkout $NGINX_ENSITE_COMMIT -b $NGINX_ENSITE_COMMIT
+
+ set_completion_param "nginx-ensite commit" "$NGINX_ENSITE_COMMIT"
+
+ make install
+ nginx_dissite default
+
+ function_check configure_firewall_for_web_access
+ configure_firewall_for_web_access
+
+ mark_completed $FUNCNAME
+}
+
+function remove_certs {
+ domain_name=$1
+
+ if [ ! $domain_name ]; then
+ return
+ fi
+
+ if [ -f /etc/ssl/certs/${domain_name}.dhparam ]; then
+ rm /etc/ssl/certs/${domain_name}.dhparam
+ fi
+
+ if [ -f /etc/ssl/certs/${domain_name}.pem ]; then
+ rm /etc/ssl/certs/${domain_name}.pem
+ fi
+
+ if [ -f /etc/ssl/certs/${domain_name}.crt ]; then
+ rm /etc/ssl/certs/${domain_name}.crt
+ fi
+
+ if [ -f /etc/ssl/private/${domain_name}.key ]; then
+ rm /etc/ssl/private/${domain_name}.key
+ fi
+}
+
+function configure_firewall_for_web_access {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # docker does its own firewalling
+ return
+ fi
+ if [[ $ONION_ONLY != "no" ]]; then
+ return
+ fi
+ firewall_add HTTP 80 tcp
+ firewall_add HTTPS 443 tcp
+ mark_completed $FUNCNAME
+}
+
+function update_default_domain {
+ echo $'Updating default domain'
+ if [[ $ONION_ONLY == 'no' ]]; then
+ if [ -d /etc/prosody ]; then
+ if [ -d /etc/jitsi ]; then
+ read_config_param "JITSI_DOMAIN_NAME"
+ if [ ${#JITSI_DOMAIN_NAME} -gt 0 ]; then
+ if [ -f /etc/ssl/private/${JITSI_DOMAIN_NAME}.key ]; then
+ cp /etc/ssl/private/${JITSI_DOMAIN_NAME}.key /etc/prosody/certs/${JITSI_DOMAIN_NAME}.key
+ fi
+ if [ -f /etc/ssl/certs/${JITSI_DOMAIN_NAME}.crt ]; then
+ cp /etc/ssl/certs/${JITSI_DOMAIN_NAME}.crt /etc/prosody/certs/${JITSI_DOMAIN_NAME}.pem
+ fi
+ if [ -f /etc/ssl/certs/${JITSI_DOMAIN_NAME}.pem ]; then
+ cp /etc/ssl/certs/${JITSI_DOMAIN_NAME}.pem /etc/prosody/certs/${JITSI_DOMAIN_NAME}.pem
+ fi
+ fi
+ fi
+
+ if [ ! -d /etc/prosody/certs ]; then
+ mkdir /etc/prosody/certs
+ fi
+
+ if [[ "$(cert_exists chat.${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ sed -i 's|--Component "conference.|Component "chat.|g' /etc/prosody/prosody.cfg.lua
+ fi
+ if [[ "$(cert_exists xmpp.${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ sed -i 's|--Component "conference.|Component "xmpp.|g' /etc/prosody/prosody.cfg.lua
+ fi
+ if [[ "$(cert_exists conference.${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ sed -i 's|--Component "conference.|Component "conference.|g' /etc/prosody/prosody.cfg.lua
+ fi
+
+ cp /etc/ssl/private/xmpp* /etc/prosody/certs
+ cp /etc/ssl/private/${DEFAULT_DOMAIN_NAME}* /etc/prosody/certs
+ cp /etc/ssl/certs/xmpp* /etc/prosody/certs
+ cp /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}* /etc/prosody/certs
+ if [ ! -f /etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.dhparam ]; then
+ if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam ]; then
+ cp /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam /etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.dhparam
+ fi
+ fi
+ if [ ! /etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
+ if [ ! /etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.crt ]; then
+ mv /etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.crt /etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem
+ fi
+ else
+ sed -i "s|/etc/prosody/certs/xmpp.key|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.key|g" /etc/prosody/conf.avail/xmpp.cfg.lua
+ sed -i "s|/etc/prosody/certs/xmpp.crt|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/prosody/conf.avail/xmpp.cfg.lua
+
+ sed -i "s|/etc/prosody/certs/xmpp.key|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.key|g" /etc/prosody/prosody.cfg.lua
+ sed -i "s|/etc/prosody/certs/xmpp.crt|/etc/prosody/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/prosody/prosody.cfg.lua
+ fi
+ chown -R prosody:default /etc/prosody
+ chmod -R 700 /etc/prosody/certs/*
+ chmod 600 /etc/prosody/prosody.cfg.lua
+ systemctl reload prosody
+ fi
+
+ if [ -d /var/lib/mumble-server ]; then
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ cp /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem /var/lib/mumble-server/mumble.pem
+ cp /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam /var/lib/mumble-server/mumble.dhparam
+ cp /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key /var/lib/mumble-server/mumble.key
+ chown -R mumble-server:mumble-server /var/lib/mumble-server
+ chmod -R 700 /var/lib/mumble-server/${DEFAULT_DOMAIN_NAME}.pem
+ chmod -R 700 /var/lib/mumble-server/${DEFAULT_DOMAIN_NAME}.key
+ chmod -R 700 /var/lib/mumble-server/${DEFAULT_DOMAIN_NAME}.dhparam
+ systemctl reload mumble
+ fi
+ fi
+
+ if [ -d /home/znc/.znc ]; then
+ echo $'znc found'
+ if [[ "$(cert_exists ${DEFAULT_DOMAIN_NAME} pem)" == "1" ]]; then
+ pkill znc
+ cat /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key > /home/znc/.znc/znc.pem
+ chown znc:znc /home/znc/.znc/znc.pem
+ chmod 700 /home/znc/.znc/znc.pem
+
+ sed -i "s|CertFile =.*|CertFile = /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem" /etc/ngircd/ngircd.conf
+ sed -i "s|DHFile =.*|DHFile = /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam" /etc/ngircd/ngircd.conf
+ sed -i "s|KeyFile =.*|KeyFile = /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key" /etc/ngircd/ngircd.conf
+ echo $'irc certificates updated'
+
+ systemctl restart ngircd
+ su -c 'znc' - znc
+ fi
+ fi
+
+ if [ -d /etc/dovecot ]; then
+ if ! grep -q "ssl_cert =
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+WIFI_CHANNEL=2
+WIFI_INTERFACE=wlan0
+WIFI_TYPE='wpa2-psk'
+WIFI_SSID=
+WIFI_PASSPHRASE=
+WIFI_HOTSPOT='no'
+WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
+
+# repo for atheros AR9271 wifi driver
+ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git"
+
+function wifi_is_running {
+ wifi_state=$(wpa_cli status)
+ if [[ "$wifi_state" == *"COMPLETED"* ]]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+function wifi_static_network_interface {
+ NETWORK_IS_STATIC=0
+ read_config_param "NETWORK_IS_STATIC"
+ if [ ${NETWORK_IS_STATIC} -eq 0 ]; then
+ echo '#this line must always be here' >> /etc/network/interfaces
+ echo 'iface default inet dhcp' >> /etc/network/interfaces
+ else
+ read_config_param "LOCAL_NETWORK_STATIC_IP_ADDRESS"
+ read_config_param "ROUTER_IP_ADDRESS"
+ echo '#static address' >> /etc/network/interfaces
+ echo 'iface default inet static' >> /etc/network/interfaces
+ echo " address ${LOCAL_NETWORK_STATIC_IP_ADDRESS}" >> /etc/network/interfaces
+ echo ' netmask 255.255.255.0' >> /etc/network/interfaces
+ echo " gateway ${ROUTER_IP_ADDRESS}" >> /etc/network/interfaces
+ fi
+}
+
+function setup_wifi_atheros {
+ if [[ $(running_as_root) == "0" ]]; then
+ return
+ fi
+
+ atheros_drivers_file=drivers/ath9k_htc_driver_bbb.tar.gz
+ if [ ! -f $atheros_drivers_file ]; then
+ if [ ! -f ~/freedombone/$atheros_drivers_file ]; then
+ return
+ else
+ atheros_drivers_file=~/freedombone/$atheros_drivers_file
+ fi
+ else
+ atheros_drivers_file=$(pwd)/$atheros_drivers_file
+ fi
+ if [ ! -d /lib/firmware ]; then
+ mkdir /lib/firmware
+ if [ ! -d /lib/firmware ]; then
+ return
+ fi
+ fi
+ if [ -f /lib/firmware/htc_9271.fw ]; then
+ return
+ fi
+ curr_dir=$(pwd)
+ cd /lib/firmware
+ tar -xzvf $atheros_drivers_file
+ reset_usb_devices
+ cd $curr_dir
+ update_wifi_adaptors
+ if [ $IFACE ]; then
+ wpa_action ${IFACE} stop
+ wpa_cli -i ${IFACE} terminate
+ ifconfig $IFACE up
+ fi
+}
+
+function setup_wifi {
+ if [[ $SYSTEM_TYPE == "mesh"* ]]; then
+ return
+ fi
+ if [ ! $WIFI_SSID ]; then
+ return
+ fi
+ if [ ${#WIFI_SSID} -lt 2 ]; then
+ return
+ fi
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ HOTSPOT='no'
+ if [[ $WIFI_HOTSPOT != 'no' ]]; then
+ HOTSPOT='yes'
+ fi
+
+ if [ -f $WIFI_NETWORKS_FILE ]; then
+ ${PROJECT_NAME}-wifi --networks $WIFI_NETWORKS_FILE
+ mark_completed $FUNCNAME
+ return
+ fi
+
+ if [[ $WIFI_TYPE != 'none' ]]; then
+ if [ ! $WIFI_PASSPHRASE ]; then
+ echo $'No wifi passphrase was given'
+ return
+ fi
+ if [ ${#WIFI_PASSPHRASE} -lt 2 ]; then
+ echo $'Wifi passphrase was too short'
+ return
+ fi
+ ${PROJECT_NAME}-wifi -s $WIFI_SSID -t $WIFI_TYPE -p $WIFI_PASSPHRASE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
+ else
+ ${PROJECT_NAME}-wifi -s $WIFI_SSID -t $WIFI_TYPE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
+ fi
+ mark_completed $FUNCNAME
+}
+
+# ath9k_htc driver
+function install_atheros_wifi {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [ $INSTALLING_ON_BBB != "yes" ]; then
+ return
+ fi
+ if [[ $ENABLE_BATMAN != "yes" ]]; then
+ return
+ fi
+ if [ -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then
+ return
+ fi
+ # have drivers already been installed ?
+ if [ -f /lib/firmware/htc_9271.fw ]; then
+ return
+ fi
+ apt-get -yq install build-essential cmake git m4 texinfo
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir -p $INSTALL_DIR
+ fi
+ cd $INSTALL_DIR
+ if [ ! -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then
+ function_check git_clone
+ git_clone $ATHEROS_WIFI_REPO $INSTALL_DIR/open-ath9k-htc-firmware
+ if [ ! "$?" = "0" ]; then
+ rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
+ exit 74283
+ fi
+ fi
+ cd $INSTALL_DIR/open-ath9k-htc-firmware
+ git checkout 1.4.0
+ make toolchain
+ if [ ! "$?" = "0" ]; then
+ rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
+ exit 24820
+ fi
+ make firmware
+ if [ ! "$?" = "0" ]; then
+ rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
+ exit 63412
+ fi
+ cp target_firmware/*.fw /lib/firmware/
+ if [ ! "$?" = "0" ]; then
+ exit 74681
+ fi
+ mark_completed $FUNCNAME
+}
+
+function update_wifi_adaptors {
+ IFACE=
+ IFACE_SECONDARY=
+
+ for i in $(seq 10 -1 0); do
+ if grep -q "wlan${i}" /proc/net/dev; then
+ if [ ! $IFACE ]; then
+ IFACE="wlan${i}"
+ else
+ IFACE_SECONDARY="wlan${i}"
+ return
+ fi
+ fi
+ done
+}
+
+function wifi_get_psk {
+ ssid=$1
+ passphrase=$2
+
+ psk=$(wpa_passphrase "$ssid" "$passphrase" | grep 'psk=' | sed -n 2p | awk -F '=' '{print $2}')
+ echo $psk
+}
+
+function hotspot_off {
+ if [ ! -f /etc/hostapd/hostapd.conf ]; then
+ return
+ fi
+ systemctl stop hostapd
+
+ rm /etc/hostapd/hostapd.conf
+
+ if [ -f /etc/network/interfaces_original ]; then
+ cp /etc/network/interfaces_original /etc/network/interfaces
+ else
+ echo '# interfaces(5) file used by ifup(8) and ifdown(8)' > /etc/network/interfaces
+ echo '# Include files from /etc/network/interfaces.d:' >> /etc/network/interfaces
+ echo 'source-directory /etc/network/interfaces.d' >> /etc/network/interfaces
+ fi
+
+ wpa_action ${WIFI_INTERFACE} stop
+ wpa_cli -i ${WIFI_INTERFACE} terminate
+ systemctl restart network-manager
+}
+
+function hotspot_on {
+ if [ ! -f /etc/default/hostapd ]; then
+ echo $'/etc/default/hostapd was not found'
+ exit 67241
+ fi
+ if [ ${#WIFI_PASSPHRASE} -lt 8 ]; then
+ echo $'Wifi hotspot passphrase is too short'
+ exit 25719
+ fi
+
+ sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
+
+ echo '### Wireless network name ###' > /etc/hostapd/hostapd.conf
+ echo "interface=$WIFI_INTERFACE" >> /etc/hostapd/hostapd.conf
+ echo '' >> /etc/hostapd/hostapd.conf
+ echo '### Set your bridge name ###' >> /etc/hostapd/hostapd.conf
+ echo 'bridge=br0' >> /etc/hostapd/hostapd.conf
+ echo '' >> /etc/hostapd/hostapd.conf
+ echo 'driver=nl80211' >> /etc/hostapd/hostapd.conf
+ echo "country_code=UK" >> /etc/hostapd/hostapd.conf
+ echo "ssid=$WIFI_SSID" >> /etc/hostapd/hostapd.conf
+ echo 'hw_mode=g' >> /etc/hostapd/hostapd.conf
+ echo 'channel=6' >> /etc/hostapd/hostapd.conf
+ echo 'wpa=2' >> /etc/hostapd/hostapd.conf
+ echo "wpa_passphrase=$WIFI_PASSPHRASE" >> /etc/hostapd/hostapd.conf
+ echo '' >> /etc/hostapd/hostapd.conf
+ echo '## Key management algorithms ##' >> /etc/hostapd/hostapd.conf
+ echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
+ echo '' >> /etc/hostapd/hostapd.conf
+ echo '## Set cipher suites (encryption algorithms) ##' >> /etc/hostapd/hostapd.conf
+ echo '## TKIP = Temporal Key Integrity Protocol' >> /etc/hostapd/hostapd.conf
+ echo '## CCMP = AES in Counter mode with CBC-MAC' >> /etc/hostapd/hostapd.conf
+ echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
+ echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
+ echo '' >> /etc/hostapd/hostapd.conf
+ echo '## Shared Key Authentication ##'
+ echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
+ echo '' >> /etc/hostapd/hostapd.conf
+ echo '## Accept all MAC address ###' >> /etc/hostapd/hostapd.conf
+ echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
+
+ if [ ! -f /etc/network/interfaces_original ]; then
+ if ! grep -q "# wifi enabled" /etc/network/interfaces; then
+ cp /etc/network/interfaces /etc/network/interfaces_original
+ fi
+ fi
+
+ echo '# wifi enabled' > /etc/network/interfaces
+ echo 'auto lo br0' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo "# wireless $WIFI_INTERFACE" >> /etc/network/interfaces
+ echo "allow-hotplug $WIFI_INTERFACE" >> /etc/network/interfaces
+ echo "iface $WIFI_INTERFACE inet manual" >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# eth0 connected to the ISP router' >> /etc/network/interfaces
+ echo 'allow-hotplug eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet manual' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# Setup bridge' >> /etc/network/interfaces
+ echo 'iface br0 inet static' >> /etc/network/interfaces
+ echo " bridge_ports $WIFI_INTERFACE eth0" >> /etc/network/interfaces
+
+ systemctl restart network-manager
+ ifconfig $WIFI_INTERFACE up
+ systemctl restart hostapd
+}
+
+function wifi_store_original_network_settings {
+ if [ ! -f /etc/network/interfaces_original ]; then
+ if ! grep -q "# wifi enabled" /etc/network/interfaces; then
+ cp /etc/network/interfaces /etc/network/interfaces_original
+ fi
+ fi
+}
+
+function wifi_original_network_settings {
+ remove_config_param "NETWORK_IS_STATIC"
+ if [ -f /etc/network/interfaces_original ]; then
+ cp /etc/network/interfaces_original /etc/network/interfaces
+ fi
+}
+
+function wifi_wpa2_psk {
+ ssid=$1
+ passphrase=$2
+
+ wifi_store_original_network_settings
+
+ echo '# wifi enabled' > /etc/network/interfaces
+ echo 'auto lo' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo 'allow-hotplug eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo "allow-hotplug ${WIFI_INTERFACE}" >> /etc/network/interfaces
+ echo "iface ${WIFI_INTERFACE} inet manual" >> /etc/network/interfaces
+ echo " wpa-roam $WIFI_CONFIG" >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ wifi_static_network_interface
+
+ wpa_passphrase "$ssid" "$passphrase" > $WIFI_CONFIG
+
+ systemctl restart network-manager
+ ifconfig ${WIFI_INTERFACE} up
+}
+
+function wifi_none {
+ ssid=$1
+
+ wifi_store_original_network_settings
+
+ echo '# wifi enabled' > /etc/network/interfaces
+ echo 'auto lo' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo 'allow-hotplug eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo "allow-hotplug ${WIFI_INTERFACE}" >> /etc/network/interfaces
+ echo "iface ${WIFI_INTERFACE} inet manual" >> /etc/network/interfaces
+ echo " wpa-roam $WIFI_CONFIG" >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ wifi_static_network_interface
+
+ echo 'update_config=1' > $WIFI_CONFIG
+ echo 'eapol_version=1' >> $WIFI_CONFIG
+ echo '' >> $WIFI_CONFIG
+
+ echo 'network={' >> $WIFI_CONFIG
+ if [[ "${ssid}" != $'any' && "${ssid}" != $'all' && "${ssid}" != $'open' ]]; then
+ echo " ssid=\"${ssid}\"" >> $WIFI_CONFIG
+ fi
+ echo ' key_mgmt=NONE' >> $WIFI_CONFIG
+ echo '}' >> $WIFI_CONFIG
+
+ systemctl restart network-manager
+ ifconfig ${WIFI_INTERFACE} up
+}
+
+function networks_from_file {
+ if [ ! -f $WIFI_NETWORKS_FILE ]; then
+ exit 4
+ fi
+
+ if [[ $(config_param_exists "WIFI_INTERFACE") == "0" ]]; then
+ exit 5
+ fi
+ read_config_param "WIFI_INTERFACE"
+
+ wifi_store_original_network_settings
+
+ echo '# wifi enabled' > /etc/network/interfaces
+ echo 'auto lo' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo 'allow-hotplug eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo "allow-hotplug ${WIFI_INTERFACE}" >> /etc/network/interfaces
+ echo "iface ${WIFI_INTERFACE} inet manual" >> /etc/network/interfaces
+ echo " wpa-roam $WIFI_CONFIG" >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ wifi_static_network_interface
+
+ # remove wpa_supplicant.conf if it exists
+ if [ -f $WIFI_CONFIG ]; then
+ rm -f $WIFI_CONFIG
+ fi
+
+ echo 'update_config=1' > $WIFI_CONFIG
+ echo 'eapol_version=1' >> $WIFI_CONFIG
+ echo '' >> $WIFI_CONFIG
+
+ ctr=0
+ while read -r line
+ do
+ if [ ${#line} -gt 1 ]; then
+ if [[ "$line" != '#'* ]]; then
+ if [ $ctr -eq 0 ]; then
+ WIFI_SSID="$line"
+ fi
+ if [ $ctr -eq 1 ]; then
+ WIFI_TYPE="$line"
+ if [[ $WIFI_TYPE == $'none' || $WIFI_TYPE == $'open' ]]; then
+ echo 'network={' >> $WIFI_CONFIG
+ if [[ "${WIFI_SSID}" != $'any' && "${WIFI_SSID}" != $'all' && "${WIFI_SSID}" != $'open' ]]; then
+ echo " ssid=\"${WIFI_SSID}\"" >> $WIFI_CONFIG
+ fi
+ echo ' key_mgmt=NONE' >> $WIFI_CONFIG
+ echo '}' >> $WIFI_CONFIG
+ ctr=0
+ continue
+ fi
+ fi
+ if [ $ctr -eq 2 ]; then
+ WIFI_PASSPHRASE="$line"
+ wpa_passphrase "$WIFI_SSID" "$WIFI_PASSPHRASE" >> $WIFI_CONFIG
+ ctr=0
+ continue
+ fi
+
+ ctr=$((ctr + 1))
+ fi
+ fi
+ done < $WIFI_NETWORKS_FILE
+
+ chattr -i /etc/resolv.conf
+ systemctl restart network-manager
+ ifconfig ${WIFI_INTERFACE} up
+}
+
+function wifi_networks_file_header {
+ echo $'# Add wifi networks as follows:' > $WIFI_NETWORKS_FILE
+ echo '#' >> $WIFI_NETWORKS_FILE
+ echo $'# MySSID' >> $WIFI_NETWORKS_FILE
+ echo $'# wpa2-psk' >> $WIFI_NETWORKS_FILE
+ echo $'# myWifiPassphrase' >> $WIFI_NETWORKS_FILE
+ echo '#' >> $WIFI_NETWORKS_FILE
+ echo $'# AnotherSSID' >> $WIFI_NETWORKS_FILE
+ echo $'# none' >> $WIFI_NETWORKS_FILE
+ echo '#' >> $WIFI_NETWORKS_FILE
+}
+
+function create_networks_interactive {
+ remove_config_param "WIFI_INTERFACE"
+ update_wifi_adaptors
+ if [ ! $IFACE ]; then
+ # Don't try to configure wifi if there are no adaptors
+ return
+ fi
+
+ if [ -f $WIFI_NETWORKS_FILE ]; then
+ rm $WIFI_NETWORKS_FILE
+ fi
+
+ # By default connect to any open wifi
+ WIFI_SSID=''
+ WIFI_TYPE=$'open'
+
+ wifi_ctr=0
+ wifi_networks_done=
+ while [ ! $wifi_networks_done ]
+ do
+ data=$(tempfile 2>/dev/null)
+ trap "rm -f $data" 0 1 2 5 15
+ dialog --backtitle $"Freedombone Configuration" \
+ --title $"Wifi Settings ${wifi_ctr}" \
+ --form $"\nTo use this system via wifi (eg. USB dongle) enter the details below, otherwise just select Ok:" 13 65 4 \
+ $"SSID (can be 'any'):" 1 1 "$WIFI_SSID" 1 24 30 30 \
+ $"Type (open/wpa2-psk):" 2 1 "$WIFI_TYPE" 2 24 10 10 \
+ $"Passphrase:" 3 1 "$WIFI_PASSPHRASE" 3 24 50 50 \
+ 2> $data
+ sel=$?
+ case $sel in
+ 1) return;;
+ 255) return;;
+ esac
+ WIFI_SSID=$(cat $data | sed -n 1p)
+ WIFI_TYPE=$(cat $data | sed -n 2p)
+ WIFI_PASSPHRASE=$(cat $data | sed -n 3p)
+
+ # if these fields are empty then there are no more wifi networks
+ if [ ${#WIFI_SSID} -lt 2 ]; then
+ wifi_networks_done='yes'
+ continue
+ fi
+ if [ ${#WIFI_TYPE} -lt 2 ]; then
+ wifi_networks_done='yes'
+ continue
+ fi
+
+ if [ ! -f $WIFI_NETWORKS_FILE ]; then
+ wifi_networks_file_header
+ fi
+
+ # update the wifi networks file
+ echo '' >> $WIFI_NETWORKS_FILE
+ echo "$WIFI_SSID" >> $WIFI_NETWORKS_FILE
+ echo "$WIFI_TYPE" >> $WIFI_NETWORKS_FILE
+ if [ ${#WIFI_PASSPHRASE} -gt 1 ]; then
+ echo "$WIFI_PASSPHRASE" >> $WIFI_NETWORKS_FILE
+ fi
+
+ if [ ${#WIFI_SSID} -gt 1 ]; then
+ if [ ${#WIFI_TYPE} -gt 1 ]; then
+ if [[ "${WIFI_TYPE}" == $'none' || "${WIFI_TYPE}" == $'open' ]]; then
+ write_config_param "WIFI_INTERFACE" "$WIFI_INTERFACE"
+ return
+ else
+ if [ ${#WIFI_PASSPHRASE} -gt 1 ]; then
+ write_config_param "WIFI_INTERFACE" "$WIFI_INTERFACE"
+ return
+ fi
+ fi
+ fi
+ fi
+
+ # clear values
+ WIFI_SSID=
+ WIFI_PASSPHRASE=
+
+ wifi_ctr=$((wifi_ctr + 1))
+ done
+}
+
+function disable_wifi {
+ if [[ ${1} == 'yes' || ${1} == 'y' ]]; then
+ hotspot_off
+ echo '# interfaces(5) file used by ifup(8) and ifdown(8)' > /etc/network/interfaces
+ echo '# Include files from /etc/network/interfaces.d:' >> /etc/network/interfaces
+ echo 'source-directory /etc/network/interfaces.d' >> /etc/network/interfaces
+ remove_config_param "WIFI_INTERFACE"
+ wpa_action ${WIFI_INTERFACE} stop
+ wpa_cli -i ${WIFI_INTERFACE} terminate
+ systemctl restart network-manager
+ else
+ networks_from_file
+ fi
+}
+
+function count_wlan {
+ # counts the number of wlan devices
+ ctr=0
+
+ for i in $(seq 0 1 10); do
+ if grep -q "wlan${i}" /proc/net/dev; then
+ ctr=$((ctr + 1))
+ fi
+ done
+ echo $ctr
+}
+
+function wifi_exists {
+ if grep -q "wlan" /proc/net/dev; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+function remove_wifi_startup_script {
+ remove_config_param "WIFI_INTERFACE"
+ systemd_file=/etc/systemd/system/wifistart.service
+ if [ -f $systemd_file ]; then
+ systemctl stop wifistart
+ systemctl disable wifistart
+ rm $systemd_file
+ fi
+ if [ -f $HOME/${PROJECT_NAME}-wifi.cfg ]; then
+ rm $HOME/${PROJECT_NAME}-wifi.cfg
+ fi
+}
+
+function create_wifi_startup_script {
+ systemd_file=/etc/systemd/system/wifistart.service
+ echo '[Unit]' > $systemd_file
+ echo 'Description=WifiStartup (Start wifi networking)' >> $systemd_file
+ echo 'After=syslog.target' >> $systemd_file
+ echo 'After=network.target' >> $systemd_file
+ echo 'After=remote-fs.target' >> $systemd_file
+ echo '' >> $systemd_file
+ echo '[Service]' >> $systemd_file
+ echo 'Type=simple' >> $systemd_file
+ echo 'User=root' >> $systemd_file
+ echo 'Group=root' >> $systemd_file
+ echo 'WorkingDirectory=/root' >> $systemd_file
+ echo "ExecStart=/usr/local/bin/${PROJECT_NAME}-wifi --wait 5 2> /dev/null" >> $systemd_file
+ echo '' >> $systemd_file
+ echo '[Install]' >> $systemd_file
+ echo 'WantedBy=multi-user.target' >> $systemd_file
+
+ systemctl enable wifistart
+ systemctl daemon-reload
+}
+
+function remove_wifi_startup_script {
+ systemd_file=/etc/systemd/system/wifistart.service
+ if [ -f $systemd_file ]; then
+ systemctl disable wifistart
+ systemctl daemon-reload
+ rm $systemd_file
+ fi
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-zram b/src/freedombone-utils-zram
new file mode 100755
index 00000000..0e09716d
--- /dev/null
+++ b/src/freedombone-utils-zram
@@ -0,0 +1,46 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# zram functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+function enable_zram {
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" || $INSTALLING_ON_BBB != "yes" ]]; then
+ ${PROJECT_NAME}-zram off
+ return
+ fi
+
+ ${PROJECT_NAME}-zram on
+
+ mark_completed $FUNCNAME
+}
+
+# NOTE: deliberately no exit 0
diff --git a/src/freedombone-vars b/src/freedombone-vars
new file mode 100755
index 00000000..7a44eca6
--- /dev/null
+++ b/src/freedombone-vars
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# Common variables and functions
+#
+# License
+# =======
+#
+# Copyright (C) 2014-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+DEFAULT_LANGUAGE=$(echo $LANG)
+
+if [ ! $PROJECT_NAME ]; then
+ PROJECT_NAME='freedombone'
+fi
+
+PROJECT_INSTALL_DIR=/usr/local/bin
+if [ -f /usr/bin/${PROJECT_NAME} ]; then
+ PROJECT_INSTALL_DIR=/usr/bin
+fi
+
+# username created by default within a debian image
+GENERIC_IMAGE_USERNAME='fbone'
+
+# Web site
+PROJECT_WEBSITE="http://${PROJECT_NAME}.uk.to"
+
+# Repo
+PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
+
+# Are we installing on a Beaglebone Black (BBB) or some other system?
+INSTALLING_ON_BBB="no"
+
+# Version number of this script
+VERSION="1.01"
+
+# if yes then this minimises the number of descisions presented during install
+MINIMAL_INSTALL="yes"
+
+# Whether web sites will be .onion addresses only
+ONION_ONLY="no"
+
+# whether the system is being installed from a pre-created configuration file
+INSTALLING_FROM_CONFIGURATION_FILE="no"
+
+# number of CPU cores
+CPU_CORES=1
+
+# whether to route outgoing traffic through Tor
+ROUTE_THROUGH_TOR="no"
+
+# Whether this system is being installed within a docker container
+INSTALLED_WITHIN_DOCKER="no"
+
+DEBIAN_VERSION="jessie"
+
+# social key management
+ENABLE_SOCIAL_KEY_MANAGEMENT="no"
+
+# include utils
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+# include base system apps
+BASE_SYSTEM_FILES=/usr/share/${PROJECT_NAME}/base/${PROJECT_NAME}-base-*
+for f in $BASE_SYSTEM_FILES
+do
+ source $f
+done
+
+#include apps
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+for f in $APP_FILES
+do
+ source $f
+done
+
+# optionally specify your name to appear on the blog
+MY_NAME=$DEFAULT_DOMAIN_NAME
+
+# used to select mesh install functions when creating a mesh image
+INSTALLING_MESH=
+
+# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-wifi b/src/freedombone-wifi
index 0b07cf4a..a2ed2f30 100755
--- a/src/freedombone-wifi
+++ b/src/freedombone-wifi
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2016 Bob Mottram
+# Copyright (C) 2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -37,6 +37,7 @@ CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
WIFI_INTERFACE=wlan0
+wifi_interface_specified=
WIFI_TYPE='wpa2-psk'
WIFI_SSID=
WIFI_PASSPHRASE=
@@ -45,302 +46,14 @@ WIFI_CONFIG=/etc/wpa_supplicant/wpa_supplicant.conf
WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
NETWORKS_INTERACTIVE=
WIFI_DISABLE=
+WAIT_SEC=
+WIFI_MAX_RETRIES=5
-function wifi_get_psk {
- ssid=$1
- passphrase=$2
+IFACE=
+IFACE_SECONDARY=
- psk=$(wpa_passphrase "$ssid" "$passphrase" | grep 'psk=' | sed -n 2p | awk -F '=' '{print $2}')
- echo $psk
-}
-
-function hotspot_off {
- if [ ! -f /etc/hostapd/hostapd.conf ]; then
- return
- fi
- systemctl stop hostapd
-
- rm /etc/hostapd/hostapd.conf
-
- if [ -f /etc/network/interfaces_original ]; then
- cp /etc/network/interfaces_original /etc/network/interfaces
- else
- echo '# interfaces(5) file used by ifup(8) and ifdown(8)' > /etc/network/interfaces
- echo '# Include files from /etc/network/interfaces.d:' >> /etc/network/interfaces
- echo 'source-directory /etc/network/interfaces.d' >> /etc/network/interfaces
- fi
-
- systemctl restart network-manager
- ifdown wlan0
-}
-
-function hotspot_on {
- if [ ! -f /etc/default/hostapd ]; then
- echo $'/etc/default/hostapd was not found'
- exit 67241
- fi
- if [ ${#WIFI_PASSPHRASE} -lt 8 ]; then
- echo $'Wifi hotspot passphrase is too short'
- exit 25719
- fi
-
- sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
-
- echo '### Wireless network name ###' > /etc/hostapd/hostapd.conf
- echo "interface=$WIFI_INTERFACE" >> /etc/hostapd/hostapd.conf
- echo '' >> /etc/hostapd/hostapd.conf
- echo '### Set your bridge name ###' >> /etc/hostapd/hostapd.conf
- echo 'bridge=br0' >> /etc/hostapd/hostapd.conf
- echo '' >> /etc/hostapd/hostapd.conf
- echo 'driver=nl80211' >> /etc/hostapd/hostapd.conf
- echo "country_code=UK" >> /etc/hostapd/hostapd.conf
- echo "ssid=$WIFI_SSID" >> /etc/hostapd/hostapd.conf
- echo 'hw_mode=g' >> /etc/hostapd/hostapd.conf
- echo 'channel=6' >> /etc/hostapd/hostapd.conf
- echo 'wpa=2' >> /etc/hostapd/hostapd.conf
- echo "wpa_passphrase=$WIFI_PASSPHRASE" >> /etc/hostapd/hostapd.conf
- echo '' >> /etc/hostapd/hostapd.conf
- echo '## Key management algorithms ##' >> /etc/hostapd/hostapd.conf
- echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
- echo '' >> /etc/hostapd/hostapd.conf
- echo '## Set cipher suites (encryption algorithms) ##' >> /etc/hostapd/hostapd.conf
- echo '## TKIP = Temporal Key Integrity Protocol' >> /etc/hostapd/hostapd.conf
- echo '## CCMP = AES in Counter mode with CBC-MAC' >> /etc/hostapd/hostapd.conf
- echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
- echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
- echo '' >> /etc/hostapd/hostapd.conf
- echo '## Shared Key Authentication ##'
- echo 'auth_algs=1'
- echo '' >> /etc/hostapd/hostapd.conf
- echo '## Accept all MAC address ###' >> /etc/hostapd/hostapd.conf
- echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
-
- if [ ! -f /etc/network/interfaces_original ]; then
- if ! grep -q "# wifi enabled" /etc/network/interfaces; then
- cp /etc/network/interfaces /etc/network/interfaces_original
- fi
- fi
-
- echo '# wifi enabled' > /etc/network/interfaces
- echo 'auto lo br0' >> /etc/network/interfaces
- echo 'iface lo inet loopback' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo "# wireless $WIFI_INTERFACE" >> /etc/network/interfaces
- echo "allow-hotplug $WIFI_INTERFACE" >> /etc/network/interfaces
- echo "iface $WIFI_INTERFACE inet manual" >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# eth0 connected to the ISP router' >> /etc/network/interfaces
- echo 'allow-hotplug eth0' >> /etc/network/interfaces
- echo 'iface eth0 inet manual' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# Setup bridge' >> /etc/network/interfaces
- echo 'iface br0 inet static' >> /etc/network/interfaces
- echo " bridge_ports $WIFI_INTERFACE eth0" >> /etc/network/interfaces
-
- systemctl restart network-manager
- ifup wlan0
- systemctl restart hostapd
-}
-
-function wifi_wpa2_psk {
- ssid=$1
- passphrase=$2
-
- if [ ! -f /etc/network/interfaces_original ]; then
- if ! grep -q "# wifi enabled" /etc/network/interfaces; then
- cp /etc/network/interfaces /etc/network/interfaces_original
- fi
- fi
-
- echo '# wifi enabled' > /etc/network/interfaces
- echo 'auto lo' >> /etc/network/interfaces
- echo 'iface lo inet loopback' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'allow-hotplug eth0' >> /etc/network/interfaces
- echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'allow-hotplug wlan0' >> /etc/network/interfaces
- echo 'iface wlan0 inet manual' >> /etc/network/interfaces
- echo " wpa-roam $WIFI_CONFIG" >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'iface default inet dhcp' >> /etc/network/interfaces
-
- wpa_passphrase "$ssid" "$passphrase" > $WIFI_CONFIG
-
- systemctl restart network-manager
- ifup wlan0
-}
-
-function wifi_none {
- ssid=$1
-
- if [ ! -f /etc/network/interfaces_original ]; then
- if ! grep -q "# wifi enabled" /etc/network/interfaces; then
- cp /etc/network/interfaces /etc/network/interfaces_original
- fi
- fi
-
- echo '# wifi enabled' > /etc/network/interfaces
- echo 'auto lo' >> /etc/network/interfaces
- echo 'iface lo inet loopback' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'allow-hotplug eth0' >> /etc/network/interfaces
- echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'allow-hotplug wlan0' >> /etc/network/interfaces
- echo 'iface wlan0 inet manual' >> /etc/network/interfaces
- echo " wpa-roam $WIFI_CONFIG" >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'iface default inet dhcp' >> /etc/network/interfaces
-
- echo 'network={' > $WIFI_CONFIG
- echo " ssid=\"${ssid}\"" >> $WIFI_CONFIG
- echo ' key_mgmt=NONE' >> $WIFI_CONFIG
- echo '}' >> $WIFI_CONFIG
-
- systemctl restart network-manager
- ifup wlan0
-}
-
-function networks_from_file {
- if [ ! -f $WIFI_NETWORKS_FILE ]; then
- exit 4
- fi
-
- if [ ! -f /etc/network/interfaces_original ]; then
- if ! grep -q "# wifi enabled" /etc/network/interfaces; then
- cp /etc/network/interfaces /etc/network/interfaces_original
- fi
- fi
-
- echo '# wifi enabled' > /etc/network/interfaces
- echo 'auto lo' >> /etc/network/interfaces
- echo 'iface lo inet loopback' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'allow-hotplug eth0' >> /etc/network/interfaces
- echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'allow-hotplug wlan0' >> /etc/network/interfaces
- echo 'iface wlan0 inet manual' >> /etc/network/interfaces
- echo " wpa-roam $WIFI_CONFIG" >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo 'iface default inet dhcp' >> /etc/network/interfaces
-
- # remove wpa_supplicant.conf if it exists
- if [ -f $WIFI_CONFIG ]; then
- rm -f $WIFI_CONFIG
- fi
-
- ctr=0
- while read -r line
- do
- if [ ${#line} -gt 1 ]; then
- if [[ "$line" != '#'* ]]; then
- if [ $ctr -eq 0 ]; then
- WIFI_SSID="$line"
- fi
- if [ $ctr -eq 1 ]; then
- WIFI_TYPE="$line"
- if [[ $WIFI_TYPE == $'none' || $WIFI_TYPE == $'None' ]]; then
- echo 'network={' >> $WIFI_CONFIG
- echo " ssid=\"${WIFI_SSID}\"" >> $WIFI_CONFIG
- echo ' key_mgmt=NONE' >> $WIFI_CONFIG
- echo '}' >> $WIFI_CONFIG
- ctr=0
- continue
- fi
- fi
- if [ $ctr -eq 2 ]; then
- WIFI_PASSPHRASE="$line"
- wpa_passphrase "$WIFI_SSID" "$WIFI_PASSPHRASE" >> $WIFI_CONFIG
- ctr=0
- continue
- fi
-
- ctr=$((ctr + 1))
- fi
- fi
- done < $WIFI_NETWORKS_FILE
-
- systemctl restart network-manager
- ifup wlan0
-}
-
-function create_networks_interactive {
- if [ -f $WIFI_NETWORKS_FILE ]; then
- rm $WIFI_NETWORKS_FILE
- fi
-
- echo $'# Add wifi networks as follows:' > $WIFI_NETWORKS_FILE
- echo '#' >> $WIFI_NETWORKS_FILE
- echo $'# MySSID' >> $WIFI_NETWORKS_FILE
- echo $'# wpa2-psk' >> $WIFI_NETWORKS_FILE
- echo $'# myWifiPassphrase' >> $WIFI_NETWORKS_FILE
- echo '#' >> $WIFI_NETWORKS_FILE
- echo $'# AnotherSSID' >> $WIFI_NETWORKS_FILE
- echo $'# none' >> $WIFI_NETWORKS_FILE
- echo '#' >> $WIFI_NETWORKS_FILE
-
- wifi_ctr=0
- wifi_networks_done=
- while [ ! $wifi_networks_done ]
- do
- data=$(tempfile 2>/dev/null)
- trap "rm -f $data" 0 1 2 5 15
- dialog --backtitle $"Freedombone Configuration" \
- --title $"Wifi Settings ${wifi_ctr}" \
- --form $"\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:" 15 55 4 \
- $"SSID:" 1 1 "$WIFI_SSID" 1 16 30 30 \
- $"Type:" 2 1 "$WIFI_TYPE" 2 16 10 10 \
- $"Passphrase:" 3 1 "$WIFI_PASSPHRASE" 3 16 30 30 \
- 2> $data
- sel=$?
- case $sel in
- 1) return;;
- 255) return;;
- esac
- WIFI_SSID=$(cat $data | sed -n 1p)
- WIFI_TYPE=$(cat $data | sed -n 2p)
- WIFI_PASSPHRASE=$(cat $data | sed -n 3p)
-
- # if these fields are empty then there are no more wifi networks
- if [ ${#WIFI_SSID} -lt 2 ]; then
- wifi_networks_done='yes'
- continue
- fi
- if [ ${#WIFI_TYPE} -lt 2 ]; then
- wifi_networks_done='yes'
- continue
- fi
-
- # update the wifi networks file
- echo '' >> $WIFI_NETWORKS_FILE
- echo "$WIFI_SSID" >> $WIFI_NETWORKS_FILE
- echo "$WIFI_TYPE" >> $WIFI_NETWORKS_FILE
- if [ ${#WIFI_PASSPHRASE} -gt 1 ]; then
- echo "$WIFI_PASSPHRASE" >> $WIFI_NETWORKS_FILE
- fi
-
- # clear values
- WIFI_SSID=
- WIFI_PASSPHRASE=
-
- wifi_ctr=$((wifi_ctr + 1))
- done
-}
-
-function disable_wifi {
- if [[ ${1} == 'yes' || ${1} == 'y' ]]; then
- hotspot_off
- echo '# interfaces(5) file used by ifup(8) and ifdown(8)' > /etc/network/interfaces
- echo '# Include files from /etc/network/interfaces.d:' >> /etc/network/interfaces
- echo 'source-directory /etc/network/interfaces.d' >> /etc/network/interfaces
- systemctl restart network-manager
- ifdown wlan0
- else
- networks_from_file
- fi
-}
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-config
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-wifi
function show_help {
echo ''
@@ -350,13 +63,14 @@ function show_help {
echo ''
echo $' --help Show help'
echo $' -i --interface [wlan0|wlan1...] Device name'
- echo $' -t --type [wpa2-psk|none] Security type'
+ echo $' -t --type [wpa2-psk|none|open] Security type'
echo $' -s --ssid [id] Set SSID'
echo $' -p --passphrase [text] Set passphrase'
echo $' --hotspot [yes|no] Create a hotspot'
echo $' --networks [filename] File containing wifi networks'
echo $' --createnetworks [filename] Create file containing wifi networks'
echo $' --disable [yes/no] Disable wifi'
+ echo $' --retries [number] Maximum number of retries'
echo ''
exit 0
}
@@ -372,6 +86,12 @@ do
-i|--if|--interface)
shift
WIFI_INTERFACE=${1}
+ wifi_interface_specified=1
+ write_config_param "WIFI_INTERFACE" "$WIFI_INTERFACE"
+ ;;
+ --wait|--sleep|--pause)
+ shift
+ WAIT_SEC=${1}
;;
-t|--type)
shift
@@ -381,6 +101,10 @@ do
shift
WIFI_SSID=${1}
;;
+ --retries)
+ shift
+ WIFI_MAX_RETRIES=${1}
+ ;;
-p|--pass|--passphrase)
shift
WIFI_PASSPHRASE=${1}
@@ -414,41 +138,84 @@ do
shift
done
-if [ $WIFI_DISABLE ]; then
- disable_wifi $WIFI_DISABLE
- exit 0
-fi
-
-if [ $NETWORKS_INTERACTIVE ]; then
+if [ ${NETWORKS_INTERACTIVE} ]; then
create_networks_interactive
exit 0
fi
-if [ -f $WIFI_NETWORKS_FILE ]; then
- networks_from_file
+if [ ! ${wifi_interface_specified} ]; then
+ if [ ! $WAIT_SEC ]; then
+ wpa_action ${WIFI_INTERFACE} stop
+ wpa_cli -i ${WIFI_INTERFACE} terminate
+ else
+ sleep ${WAIT_SEC}
+ fi
+ update_wifi_adaptors
+ if [ ! $IFACE ]; then
+ echo $'No wifi adaptors were found'
+ exit 872356
+ fi
+ WIFI_INTERFACE=${IFACE}
+ echo "Adaptor: $WIFI_INTERFACE"
+ write_config_param "WIFI_INTERFACE" "$WIFI_INTERFACE"
+fi
+
+if [ ${WIFI_DISABLE} ]; then
+ disable_wifi ${WIFI_DISABLE}
exit 0
fi
-if [ ! $WIFI_SSID ]; then
+if [ -f ${WIFI_NETWORKS_FILE} ]; then
+ wifi_established=
+ wifi_retry_ctr=0
+ while [ ! $wifi_established ]; do
+ if [ ${wifi_retry_ctr} -gt 0 ]; then
+ wpa_action ${WIFI_INTERFACE} stop
+ wpa_cli -i ${WIFI_INTERFACE} terminate
+ fi
+ networks_from_file
+ # allow some time for a connection to be established
+ sleep 5
+ # has it worked?
+ if [[ $(wifi_is_running) != "0" ]]; then
+ wifi_established=1
+ break
+ fi
+ # has the limit of retries been reached?
+ wifi_retry_ctr=$((wifi_retry_ctr+1))
+ if [ ${wifi_retry_ctr} -ge ${WIFI_MAX_RETRIES} ]; then
+ break
+ fi
+ done
+ if [ $wifi_established ]; then
+ wpa_cli status
+ exit 0
+ else
+ echo $'Wifi could not be started'
+ exit 4
+ fi
+fi
+
+if [ ! ${WIFI_SSID} ]; then
echo $'No SSID given'
exit 1
fi
-if [[ $WIFI_HOTSPOT != 'no' ]]; then
+if [[ ${WIFI_HOTSPOT} != 'no' ]]; then
hotspot_on
exit 0
else
hotspot_off
fi
-if [[ $WIFI_TYPE != 'none' ]]; then
+if [[ "$WIFI_TYPE" != 'none' && "$WIFI_TYPE" != 'open' ]]; then
if [ ! $WIFI_PASSPHRASE ]; then
echo $'No wifi passphrase was given'
exit 2
fi
fi
-if [[ $WIFI_TYPE == 'wpa2-psk' ]]; then
+if [[ ${WIFI_TYPE} == 'wpa2-psk' ]]; then
if [ ! -d /etc/wpa_supplicant ]; then
echo $'wpasupplicant package is not installed'
exit 3
@@ -457,7 +224,7 @@ if [[ $WIFI_TYPE == 'wpa2-psk' ]]; then
exit 0
fi
-if [[ $WIFI_TYPE == 'none' ]]; then
+if [[ "$WIFI_TYPE" == 'none' || "$WIFI_TYPE" == 'open' ]]; then
wifi_none "$WIFI_SSID"
exit 0
fi
diff --git a/src/freedombone-xmpp-pass b/src/freedombone-xmpp-pass
index f6a80b1c..d3965f6b 100755
--- a/src/freedombone-xmpp-pass
+++ b/src/freedombone-xmpp-pass
@@ -14,7 +14,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
diff --git a/src/freedombone-zram b/src/freedombone-zram
index ffbbb0be..87c561de 100755
--- a/src/freedombone-zram
+++ b/src/freedombone-zram
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -45,7 +45,7 @@ function zram_daemon {
echo 'User=zram' >> $DAEMON_FILENAME
echo 'Group=zram' >> $DAEMON_FILENAME
echo 'WorkingDirectory=' >> $DAEMON_FILENAME
- echo "ExecStart=freedombone-zram on" >> $DAEMON_FILENAME
+ echo "ExecStart=${PROJECT_NAME}-zram on" >> $DAEMON_FILENAME
echo '' >> $DAEMON_FILENAME
echo '[Install]' >> $DAEMON_FILENAME
echo 'WantedBy=multi-user.target' >> $DAEMON_FILENAME
diff --git a/src/meshavahi b/src/meshavahi
new file mode 100755
index 00000000..7ea0d3af
--- /dev/null
+++ b/src/meshavahi
@@ -0,0 +1,203 @@
+#!/bin/bash
+#
+# .---. . .
+# | | |
+# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
+# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
+# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
+#
+# Freedom in the Cloud
+#
+# A script for using avahi to discover peers and update tox/ipfs
+
+# License
+# =======
+#
+# Copyright (C) 2015-2016 Bob Mottram
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=$PROJECT_NAME-meshavahi
+export TEXTDOMAINDIR="/usr/share/locale"
+
+MESH_USERNAME='fbone'
+MY_USERNAME=$MESH_USERNAME
+
+IPFS_PORT=4001
+IPFS_PATH=/usr/bin
+IPFS_COMMAND=$IPFS_PATH/ipfs
+IPFS_USERS_FILE=/tmp/.ipfs-users
+IPFS_PUBLIC=/home/$MY_USERNAME/.ipfs-public
+
+# contains the output of the avahi command
+TEMPFILE_BASE=$(mktemp /tmp/meshavahibase.XXXXXX)
+TEMPFILE=$(mktemp /tmp/meshavahi.XXXXXX)
+
+# List of tox users previously seen
+PREV_TOX_USERS_FILE=/root/.prev_tox_users
+
+function ipfs_publish {
+ # Publishes anything within the ~/Public directory
+
+ DIR_TO_CHECK=/home/$MY_USERNAME/Public
+ if [ ! -d $DIR_TO_CHECK ]; then
+ return
+ fi
+
+ OLD_STAT_FILE=/home/$MY_USERNAME/.old_stat.txt
+
+ if [ -e $OLD_STAT_FILE ]
+ then
+ OLD_STAT=$(cat $OLD_STAT_FILE)
+ else
+ OLD_STAT="nothing"
+ fi
+
+ NEW_STAT=$(stat -t $DIR_TO_CHECK)
+
+ if [ "$OLD_STAT" != "$NEW_STAT" ]; then
+ su -c "echo \$($IPFS_COMMAND add -rq /home/$MY_USERNAME/Public | tail -n 1) > $IPFS_PUBLIC" - $MY_USERNAME
+ echo "$NEW_STAT" > $OLD_STAT_FILE
+ chown $MY_USERNAME:$MY_USERNAME $OLD_STAT_FILE
+ fi
+
+ if [ -f $IPFS_PUBLIC ]; then
+ IPFS_PUBLIC_ID=$(cat $IPFS_PUBLIC)
+ su -c "$IPFS_COMMAND name publish /ipfs/$IPFS_PUBLIC_ID" - $MY_USERNAME
+ fi
+}
+
+function ipfs_bootstrap {
+ cat $TEMPFILE_BASE | grep "ipfs_id\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
+
+ state=0
+ address=""
+ peer=""
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
+ echo -n '' > ${IPFS_USERS_FILE}.new
+ fi
+ while IFS='' read -r line || [[ -n "$line" ]]; do
+ if [ ${state} -eq "3" ]; then
+ if [[ $line == *"txt ="* ]]; then
+ ipfs_txt=$(echo "$line" | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
+ ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}')
+ ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}')
+ su -c "$IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}" - $MY_USERNAME
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
+ if [[ $ipfs_tox_id != 'none' ]]; then
+ echo "$ipfs_tox_id:$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new
+ fi
+ fi
+ state=0
+ fi
+ fi
+ if [ ${state} -eq "2" ]; then
+ if [[ $line == *"address ="* ]]; then
+ address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
+ state=3
+ fi
+ fi
+ if [ ${state} -eq "1" ]; then
+ if [[ $line == *"hostname ="* ]]; then
+ peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
+ state=2
+ fi
+ fi
+ if [[ $line == *"ipfs_id"* && $line == "= "* ]]; then
+ state=1
+ fi
+ done < "$TEMPFILE"
+
+ # Create a list of user sites, in alphabetical order by Tox nick
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
+ if [ -f ${IPFS_USERS_FILE}.new ]; then
+ sites_list=$(cat ${IPFS_USERS_FILE}.new | sort -d)
+ echo "${sites_list}" > ${IPFS_USERS_FILE}
+ chown $MY_USERNAME:$MY_USERNAME ${IPFS_USERS_FILE}
+ rm ${IPFS_USERS_FILE}.new
+ fi
+ fi
+}
+
+function detect_new_tox_users {
+ CURRENT_USERS_FILE=$1
+
+ if [ ! -f $CURRENT_USERS_FILE ]; then
+ return
+ fi
+
+ # Check that this is a GUI installation with a desktop
+ if [ ! -d /home/$MESH_USERNAME/Desktop ]; then
+ return
+ fi
+
+ # Produce notifications if new users appear
+ if [ -f $PREV_TOX_USERS_FILE ]; then
+ while IFS='' read -r line || [[ -n "$line" ]]; do
+ if [[ $line != "Failed*" && $line != "data "* && $line != "Anon "* && $line != "anon "* ]]; then
+ if ! grep -q "$line" $PREV_TOX_USERS_FILE; then
+ # get the nick of the user
+ toxidstr=$(echo "$line" | awk -F ' ' '{print $(NF)}')
+ toxuser=$(echo "$line" | sed "s| $toxidstr||g")
+
+ if [ -r "/home/$MESH_USERNAME/.dbus/Xdbus" ]; then
+ . "/home/$MESH_USERNAME/.dbus/Xdbus"
+ fi
+ export DISPLAY=:0.0
+ export XAUTHORITY=/home/$MESH_USERNAME/.Xauthority
+ sudo -u $MESH_USERNAME /usr/bin/notify-send $"$toxuser" $"has joined the mesh" --icon=dialog-information
+ break
+ fi
+ fi
+ done < "$CURRENT_USERS_FILE"
+ fi
+
+ # Store the previous tox users list
+ cp -f $CURRENT_USERS_FILE $PREV_TOX_USERS_FILE
+}
+
+function detect_tox_users {
+ # don't show the first peer field
+ lstox | awk -F ' ' '{$1=""; print $0}' | sed -e 's/^[[:space:]]*//' | sort -d > $TEMPFILE
+
+ detect_new_tox_users $TEMPFILE
+}
+
+function avahi_extract_info {
+ # Create a list of bootstrap nodes
+ avahi-browse -atr > $TEMPFILE_BASE
+ cat $TEMPFILE_BASE | grep "hostname =\|address =\|port =" > $TEMPFILE
+ if [ ! -f $TEMPFILE ]; then
+ exit 1
+ fi
+}
+
+function avahi_remove_info {
+ rm -f $TEMPFILE_BASE
+ rm -f $TEMPFILE
+}
+
+if [ ! -d /etc/avahi ]; then
+ exit 0
+fi
+
+avahi_extract_info
+ipfs_bootstrap
+ipfs_publish
+detect_tox_users
+avahi_remove_info
+
+exit 0
diff --git a/src/zeronetavahi b/src/zeronetavahi
deleted file mode 100755
index c75f1781..00000000
--- a/src/zeronetavahi
+++ /dev/null
@@ -1,394 +0,0 @@
-#!/bin/bash
-#
-# .---. . .
-# | | |
-# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
-# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
-# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
-#
-# Freedom in the Cloud
-#
-# A script for using avahi to discover peers and update zeronet trackers
-
-# Blogs and fora are discovered on the network and then published
-# to an index file which can be opened in a browser
-
-# License
-# =======
-#
-# Copyright (C) 2015-2016 Bob Mottram
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-
-PROJECT_NAME='freedombone'
-
-export TEXTDOMAIN=$PROJECT_NAME-zeronetavahi
-export TEXTDOMAINDIR="/usr/share/locale"
-
-MESH_INSTALL_DIR=/var/lib
-WEB_PAGE_TITLE=$"${PROJECT_NAME} Mesh"
-TRACKER_PORT=6969
-ZERONET_INSTALL=$MESH_INSTALL_DIR/zeronet
-ZERONET_USER_HOME=/home/zeronet
-MY_USERNAME=$USER
-
-if [ ! -d $ZERONET_INSTALL ]; then
- if [ -d /home/$MY_USERNAME/zeronet ]; then
- ZERONET_INSTALL=/home/$MY_USERNAME/zeronet
- else
- exit 0
- fi
-fi
-
-BLOGS_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-blogs
-MAIL_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-mail
-FORUM_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-fora
-TOX_USERS_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-tox-users
-ZERONET_INDEX=/home/$MY_USERNAME/mesh.html
-ZERONET_CONFIG=$ZERONET_INSTALL/bootstrap
-
-IPFS_PORT=4001
-
-MY_BLOG_STR=$"My Blog"
-MY_MAIL_STR=$"My Mail"
-MY_FORUM_STR=$"My Forum"
-BLOGS_STR=$"Blogs"
-MAIL_STR=$"Mail"
-FORA_STR=$"Fora"
-ZERONET_BLOG_STR=$"ZeroNet Blog"
-ZERONET_MAIL_STR=$"ZeroNet Mail"
-ZERONET_FORUM_STR=$"ZeroNet Forum"
-NO_USERS_STR=$"No users found"
-
-function create_index {
- if [ -f $ZERONET_INDEX ]; then
- sed -i "s|.*${MY_BLOG_STR}.*| ${MY_BLOG_STR} |g" $ZERONET_INDEX
- sed -i "s|.*${MY_MAIL_STR}.*| ${MY_MAIL_STR} |g" $ZERONET_INDEX
- sed -i "s|.*${MY_FORUM_STR}.*| ${MY_FORUM_STR} |g" $ZERONET_INDEX
- return
- fi
- echo '' > $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo "$WEB_PAGE_TITLE " >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo "$WEB_PAGE_TITLE " >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo "Your Sites " >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo " ${MY_BLOG_STR} " >> $ZERONET_INDEX
- echo " ${MY_MAIL_STR} " >> $ZERONET_INDEX
- echo " ${MY_FORUM_STR} " >> $ZERONET_INDEX
-# echo " File Share " >> $ZERONET_INDEX
- echo ' ' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo "On the Mesh " >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo " ${BLOGS_STR} " >> $ZERONET_INDEX
- echo " ${MAIL_STR} " >> $ZERONET_INDEX
- echo " ${FORA_STR} " >> $ZERONET_INDEX
- echo " Tox Users " >> $ZERONET_INDEX
- echo ' ' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
- echo '' >> $ZERONET_INDEX
-}
-
-function create_header {
- header_file=${1}-header.html
- if [ -f $header_file ]; then
- return
- fi
- echo '' > $header_file
- echo '' >> $header_file
- echo '' >> $header_file
- echo "$WEB_PAGE_TITLE - $2 " >> $header_file
- echo ' ' >> $header_file
- echo '' >> $header_file
- echo '' >> $header_file
- echo "$2 " >> $header_file
-}
-
-function create_footer {
- footer_file=${1}-footer.html
- if [ -f $footer_file ]; then
- return
- fi
- echo '' >> $footer_file
- echo '' >> $footer_file
-}
-
-if [ ! -d /etc/avahi ]; then
- exit 0
-fi
-
-# Create a list of bootstrap nodes
-TEMPFILE_BASE=/tmp/tmpzeronetavahibase.txt
-TEMPFILE=/tmp/tmpzeronetavahi.txt
-avahi-browse -atr > $TEMPFILE_BASE
-cat $TEMPFILE_BASE | grep "hostname =\|address =\|port =" > $TEMPFILE
-if [ ! -f $TEMPFILE ]; then
- exit 1
-fi
-
-if [ -f $ZERONET_CONFIG.new ]; then
- rm -f $ZERONET_CONFIG.new
-fi
-
-touch $ZERONET_CONFIG.new
-
-state=0
-address=""
-peer=""
-tracker_ctr=0
-while IFS='' read -r line || [[ -n "$line" ]]; do
- if [ ${state} -eq "1" ]; then
- if [[ $line == *"address ="* ]]; then
- address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- tracker_url="http://$peer:$TRACKER_PORT/announce"
- if ! grep -q "$tracker_url" $ZERONET_CONFIG.new; then
- echo "$tracker_url" >> $ZERONET_CONFIG.new
- tracker_ctr=$((tracker_ctr + 1))
- fi
- state=0
- fi
- fi
- if [[ $line == *"hostname ="* ]]; then
- peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=1
- fi
-done < "$TEMPFILE"
-
-# detect blogs in the mesh
-if [ -f $BLOGS_FILE.new ]; then
- rm -f $BLOGS_FILE.new
-fi
-
-cat $TEMPFILE_BASE | grep "${ZERONET_BLOG_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
-
-state=0
-address=""
-peer=""
-echo '' >> $BLOGS_FILE.new
-while IFS='' read -r line || [[ -n "$line" ]]; do
- if [ ${state} -eq "3" ]; then
- if [[ $line == *"txt ="* ]]; then
- blog_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- echo " ${peer} " >> $BLOGS_FILE.new
- state=0
- fi
- fi
- if [ ${state} -eq "2" ]; then
- if [[ $line == *"address ="* ]]; then
- address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=3
- fi
- fi
- if [ ${state} -eq "1" ]; then
- if [[ $line == *"hostname ="* ]]; then
- peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=2
- fi
- fi
- if [[ $line == *"${ZERONET_BLOG_STR}"* && $line == "= "* ]]; then
- state=1
- fi
-done < "$TEMPFILE"
-echo ' ' >> $BLOGS_FILE.new
-
-
-# detect mail in the mesh
-if [ -f $MAIL_FILE.new ]; then
- rm -f $MAIL_FILE.new
-fi
-
-cat $TEMPFILE_BASE | grep "${ZERONET_MAIL_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
-
-state=0
-address=""
-peer=""
-echo '' >> $MAIL_FILE.new
-while IFS='' read -r line || [[ -n "$line" ]]; do
- if [ ${state} -eq "3" ]; then
- if [[ $line == *"txt ="* ]]; then
- mail_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- echo " ${peer} " >> $MAIL_FILE.new
- state=0
- fi
- fi
- if [ ${state} -eq "2" ]; then
- if [[ $line == *"address ="* ]]; then
- address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=3
- fi
- fi
- if [ ${state} -eq "1" ]; then
- if [[ $line == *"hostname ="* ]]; then
- peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=2
- fi
- fi
- if [[ $line == *"${ZERONET_MAIL_STR}"* && $line == "= "* ]]; then
- state=1
- fi
-done < "$TEMPFILE"
-echo ' ' >> $MAIL_FILE.new
-
-
-# detect fora in the mesh
-if [ -f $FORUM_FILE.new ]; then
- rm -f $FORUM_FILE.new
-fi
-
-cat $TEMPFILE_BASE | grep "${ZERONET_FORUM_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
-
-state=0
-address=""
-peer=""
-echo '' >> $FORUM_FILE.new
-while IFS='' read -r line || [[ -n "$line" ]]; do
- if [ ${state} -eq "3" ]; then
- if [[ $line == *"txt ="* ]]; then
- forum_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- echo " ${peer} " >> $FORUM_FILE.new
- state=0
- fi
- fi
- if [ ${state} -eq "2" ]; then
- if [[ $line == *"address ="* ]]; then
- address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=3
- fi
- fi
- if [ ${state} -eq "1" ]; then
- if [[ $line == *"hostname ="* ]]; then
- peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=2
- fi
- fi
- if [[ $line == *"${ZERONET_FORUM_STR}"* && $line == "= "* ]]; then
- state=1
- fi
-done < "$TEMPFILE"
-echo '' >> $FORUM_FILE.new
-
-
-# IPFS bootstrap
-cat $TEMPFILE_BASE | grep "IPFS\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
-
-state=0
-address=""
-peer=""
-while IFS='' read -r line || [[ -n "$line" ]]; do
- if [ ${state} -eq "3" ]; then
- if [[ $line == *"txt ="* ]]; then
- ipfs_peer_id=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
- ipfs bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}
- state=0
- fi
- fi
- if [ ${state} -eq "2" ]; then
- if [[ $line == *"address ="* ]]; then
- address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=3
- fi
- fi
- if [ ${state} -eq "1" ]; then
- if [[ $line == *"hostname ="* ]]; then
- peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
- state=2
- fi
- fi
- if [[ $line == *"IPFS"* && $line == "= "* ]]; then
- state=1
- fi
-done < "$TEMPFILE"
-
-
-# detect Tox users
-lstox > $TEMPFILE
-toxctr=0
-echo '' >> $TOX_USERS_FILE.new
-while IFS='' read -r line || [[ -n "$line" ]]; do
- if [[ $line != "Failed*" ]]; then
- echo " $line " >> $TOX_USERS_FILE.new
- toxctr=$((toxctr + 1))
- fi
-done < "$TEMPFILE"
-if [ $toxctr -eq "0" ]; then
- echo " ${NO_USERS_STR} " >> $TOX_USERS_FILE.new
-fi
-echo '' >> $TOX_USERS_FILE.new
-
-
-rm -f $TEMPFILE_BASE
-rm -f $TEMPFILE
-
-if [ ${tracker_ctr} -gt "0" ]; then
- cp -f $ZERONET_CONFIG.new $ZERONET_CONFIG
-else
- if [ -f $ZERONET_CONFIG ]; then
- rm -f $ZERONET_CONFIG
- fi
-fi
-rm -f $ZERONET_CONFIG.new
-if [ -d $ZERONET_USER_HOME ]; then
- sudo chown zeronet:zeronet $ZERONET_CONFIG
-fi
-
-# make some html headers and footers
-create_header $BLOGS_FILE $BLOGS_STR
-create_header $MAIL_FILE $MAIL_STR
-create_header $FORUM_FILE $FORA_STR
-create_header $TOX_USERS_FILE $"Tox Users"
-create_footer $BLOGS_FILE
-create_footer $MAIL_FILE
-create_footer $FORUM_FILE
-create_footer $TOX_USERS_FILE
-
-# make the index page
-create_index
-
-# create a web page showing the available blogs
-cat ${BLOGS_FILE}-header.html ${BLOGS_FILE}.new ${BLOGS_FILE}-footer.html > ${BLOGS_FILE}.html
-rm -f ${BLOGS_FILE}.new
-if [ -d $ZERONET_USER_HOME ]; then
- sudo chown zeronet:zeronet $BLOGS_FILE
-fi
-
-# create a web page showing the available mail contacts
-cat ${MAIL_FILE}-header.html ${MAIL_FILE}.new ${MAIL_FILE}-footer.html > ${MAIL_FILE}.html
-rm -f ${MAIL_FILE}.new
-if [ -d $ZERONET_USER_HOME ]; then
- sudo chown zeronet:zeronet $MAIL_FILE
-fi
-
-# create a web page showing the available fora
-cat ${FORUM_FILE}-header.html ${FORUM_FILE}.new ${FORUM_FILE}-footer.html > ${FORUM_FILE}.html
-rm -f ${FORUM_FILE}.new
-if [ -d $ZERONET_USER_HOME ]; then
- sudo chown zeronet:zeronet $FORUM_FILE
-fi
-
-# create a web page showing Tox users
-cat ${TOX_USERS_FILE}-header.html ${TOX_USERS_FILE}.new ${TOX_USERS_FILE}-footer.html > ${TOX_USERS_FILE}.html
-rm -f ${TOX_USERS_FILE}.new
-if [ -d $ZERONET_USER_HOME ]; then
- sudo chown zeronet:zeronet $TOX_USERS_FILE
-fi
-
-exit 0
diff --git a/tidyup b/tidyup
new file mode 100755
index 00000000..17d8d475
--- /dev/null
+++ b/tidyup
@@ -0,0 +1,157 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#**************************************************************************
+# Copyright (C) 2011, Paul Lutus *
+# *
+# This program is free software; you can redistribute it and/or modify *
+# it under the terms of the GNU General Public License as published by *
+# the Free Software Foundation; either version 2 of the License, or *
+# (at your option) any later version. *
+# *
+# This program is distributed in the hope that it will be useful, *
+# but WITHOUT ANY WARRANTY; without even the implied warranty of *
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+# GNU General Public License for more details. *
+# *
+# You should have received a copy of the GNU General Public License *
+# along with this program; if not, write to the *
+# Free Software Foundation, Inc., *
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+#**************************************************************************
+
+import re, sys
+
+PVERSION = '1.0'
+
+class BeautifyBash:
+
+ def __init__(self):
+ self.tab_str = ' '
+ self.tab_size = 4
+
+ def read_file(self,fp):
+ with open(fp) as f:
+ return f.read()
+
+ def write_file(self,fp,data):
+ with open(fp,'w') as f:
+ f.write(data)
+
+ def beautify_string(self,data,path = ''):
+ tab = 0
+ case_stack = []
+ in_here_doc = False
+ defer_ext_quote = False
+ in_ext_quote = False
+ ext_quote_string = ''
+ here_string = ''
+ output = []
+ line = 1
+ for record in re.split('\n',data):
+ record = record.rstrip()
+ stripped_record = record.strip()
+
+ # collapse multiple quotes between ' ... '
+ test_record = re.sub(r'\'.*?\'','',stripped_record)
+ # collapse multiple quotes between " ... "
+ test_record = re.sub(r'".*?"','',test_record)
+ # collapse multiple quotes between ` ... `
+ test_record = re.sub(r'`.*?`','',test_record)
+ # collapse multiple quotes between \` ... ' (weird case)
+ test_record = re.sub(r'\\`.*?\'','',test_record)
+ # strip out any escaped single characters
+ test_record = re.sub(r'\\.','',test_record)
+ # remove '#' comments
+ test_record = re.sub(r'(\A|\s)(#.*)','',test_record,1)
+ if(not in_here_doc):
+ if(re.search('<<-?',test_record)):
+ here_string = re.sub('.*<<-?\s*[\'|"]?([_|\w]+)[\'|"]?.*','\\1',stripped_record,1)
+ in_here_doc = (len(here_string) > 0)
+ if(in_here_doc): # pass on with no changes
+ output.append(record)
+ # now test for here-doc termination string
+ if(re.search(here_string,test_record) and not re.search('<<',test_record)):
+ in_here_doc = False
+ else: # not in here doc
+ if(in_ext_quote):
+ if(re.search(ext_quote_string,test_record)):
+ # provide line after quotes
+ test_record = re.sub('.*%s(.*)' % ext_quote_string,'\\1',test_record,1)
+ in_ext_quote = False
+ else: # not in ext quote
+ if(re.search(r'(\A|\s)(\'|")',test_record)):
+ # apply only after this line has been processed
+ defer_ext_quote = True
+ ext_quote_string = re.sub('.*([\'"]).*','\\1',test_record,1)
+ # provide line before quote
+ test_record = re.sub('(.*)%s.*' % ext_quote_string,'\\1',test_record,1)
+ if(in_ext_quote):
+ # pass on unchanged
+ output.append(record)
+ else: # not in ext quote
+ inc = len(re.findall('(\s|\A|;)(case|then|do)(;|\Z|\s)',test_record))
+ inc += len(re.findall('(\{|\(|\[)',test_record))
+ outc = len(re.findall('(\s|\A|;)(esac|fi|done|elif)(;|\)|\||\Z|\s)',test_record))
+ outc += len(re.findall('(\}|\)|\])',test_record))
+ if(re.search(r'\besac\b',test_record)):
+ if(len(case_stack) == 0):
+ sys.stderr.write(
+ 'File %s: error: "esac" before "case" in line %d.\n' % (path,line)
+ )
+ else:
+ outc += case_stack.pop()
+ # sepcial handling for bad syntax within case ... esac
+ if(len(case_stack) > 0):
+ if(re.search('\A[^(]*\)',test_record)):
+ # avoid overcount
+ outc -= 2
+ case_stack[-1] += 1
+ if(re.search(';;',test_record)):
+ outc += 1
+ case_stack[-1] -= 1
+ # an ad-hoc solution for the "else" keyword
+ else_case = (0,-1)[re.search('^(else)',test_record) != None]
+ net = inc - outc
+ tab += min(net,0)
+ extab = tab + else_case
+ extab = max(0,extab)
+ output.append((self.tab_str * self.tab_size * extab) + stripped_record)
+ tab += max(net,0)
+ if(defer_ext_quote):
+ in_ext_quote = True
+ defer_ext_quote = False
+ if(re.search(r'\bcase\b',test_record)):
+ case_stack.append(0)
+ line += 1
+ error = (tab != 0)
+ if(error):
+ sys.stderr.write('File %s: error: indent/outdent mismatch: %d.\n' % (path,tab))
+ return '\n'.join(output), error
+
+ def beautify_file(self,path):
+ error = False
+ if(path == '-'):
+ data = sys.stdin.read()
+ result,error = self.beautify_string(data,'(stdin)')
+ sys.stdout.write(result)
+ else: # named file
+ data = self.read_file(path)
+ result,error = self.beautify_string(data,path)
+ if(data != result):
+ self.write_file(path,result)
+ return error
+
+ def main(self):
+ error = False
+ sys.argv.pop(0)
+ if(len(sys.argv) < 1):
+ sys.stderr.write('usage: shell script filenames or \"-\" for stdin.\n')
+ else:
+ for path in sys.argv:
+ error |= self.beautify_file(path)
+ sys.exit((0,1)[error])
+
+# if not called as a module
+if(__name__ == '__main__'):
+ BeautifyBash().main()
diff --git a/translate b/translate
index 9e296056..9e414a75 100755
--- a/translate
+++ b/translate
@@ -13,7 +13,7 @@
# License
# =======
#
-# Copyright (C) 2015-2016 Bob Mottram
+# Copyright (C) 2015-2016 Bob Mottram
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ PROJECT_NAME='freedombone'
# languages to translate into
language=( af sq ar eu be bs bg ca hr zh_cn zh_tw cs da nl en_us et fa fil fi fr fr_CH fr_BE fr_ca ga gl ka de de_du el gu he hi hu is id it ja kn km ko lo lt lv ml ms mi_tn mi_wwow mn no no_gr nn pl pt pt_br ro ru sm sr sk sl so es sv tl ta th to tr uk vi )
-MY_EMAIL_ADDRESS='bob@robotics.uk.to'
+MY_EMAIL_ADDRESS='bob@freedombone.net'
COMMAND_FILES=src/${PROJECT_NAME}*
@@ -94,14 +94,14 @@ function create_translation_files {
function add_all_translations {
for lang in "${language[@]}"
- do
+ do
git add locale/${lang}/*
done
}
function remove_all_translations {
for lang in "${language[@]}"
- do
+ do
rm locale/${lang}/*
done
}
@@ -111,7 +111,7 @@ function install_translations {
do
COMMAND_NAME=$(echo $f | awk -F '/' '{print $2}')
for lang in "${language[@]}"
- do
+ do
# convert json to mo
if [ -f /usr/bin/i18next-conv ]; then
if [ ! -f locale/${lang}/${COMMAND_NAME}.mo ]; then
@@ -126,8 +126,8 @@ function install_translations {
if [ -d /usr/share/locale/${lang} ]; then
if [ -f locale/${lang}/${COMMAND_NAME}.mo ]; then
cp locale/${lang}/${COMMAND_NAME}.mo /usr/share/locale/${lang}/${COMMAND_NAME}.mo
- fi
- fi
+ fi
+ fi
done
done
}
diff --git a/website/EN/app_dlna.html b/website/EN/app_dlna.html
new file mode 100644
index 00000000..6b4ab3c0
--- /dev/null
+++ b/website/EN/app_dlna.html
@@ -0,0 +1,304 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+