diff --git a/.gitmodules b/.gitmodules
index 97b67e71..dc7da708 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -19,3 +19,6 @@
[submodule "utils/abp-parser"]
path = utils/abp-parser
url = git@git.bubblev.org:bubblev/abp-parser.git
+[submodule "bubble-server/src/main/resources/messages"]
+ path = bubble-server/src/main/resources/messages
+ url = git@git.bubblev.org:bubblev/bubble-messages.git
diff --git a/bin/first_time_setup.sh b/bin/first_time_setup.sh
index 8d847910..fad23fa9 100755
--- a/bin/first_time_setup.sh
+++ b/bin/first_time_setup.sh
@@ -50,6 +50,9 @@ for repo in ${UTIL_REPOS} ; do
done
popd
+MESSAGES_REPO=bubble-server/src/main/resources/messages
+pushd ${MESSAGES_REPO} && git checkout master && popd || die "Error installing ${MESSAGES_REPO}"
+
if [[ -z "${BUBBLE_SETUP_MODE}" || "${BUBBLE_SETUP_MODE}" == "web" ]] ; then
INSTALL_WEB=web mvn -DskipTests=true -Dcheckstyle.skip=true clean package || die "Error building bubble jar"
diff --git a/bin/git_update_bubble.sh b/bin/git_update_bubble.sh
index 8f89b88f..215e129e 100755
--- a/bin/git_update_bubble.sh
+++ b/bin/git_update_bubble.sh
@@ -35,7 +35,7 @@ git pull origin master || die "Error calling git pull origin master"
git submodule update || die "Error in git submodule update"
pushd utils/cobbzilla-parent
-git fetch && git checkout master && git pull origin master && mvn install || die "Error updating/installing cobbzilla-parent"
+git fetch && git checkout master && git pull origin master && mvn install || die "Error updating cobbzilla-parent"
popd
UTIL_REPOS="
@@ -49,13 +49,16 @@ abp-parser
pushd utils
for repo in ${UTIL_REPOS} ; do
if [[ ${FAST} -eq 1 ]] ; then
- pushd ${repo} && git fetch && git checkout master && git pull origin master && mvn -DskipTests=true -Dcheckstyle.skip=true install && popd || die "Error installing ${repo}"
+ pushd ${repo} && git fetch && git checkout master && git pull origin master && mvn -DskipTests=true -Dcheckstyle.skip=true install && popd || die "Error updating ${repo}"
else
- pushd ${repo} && git fetch && git checkout master && git pull origin master && mvn -DskipTests=true -Dcheckstyle.skip=true clean install && popd || die "Error installing ${repo}"
+ pushd ${repo} && git fetch && git checkout master && git pull origin master && mvn -DskipTests=true -Dcheckstyle.skip=true clean install && popd || die "Error updating ${repo}"
fi
done
popd
+MESSAGES_REPO=bubble-server/src/main/resources/messages
+pushd ${MESSAGES_REPO} && git fetch && git checkout master && git pull origin master && popd || die "Error updating ${MESSAGES_REPO}"
+
if [[ ${FAST} -eq 1 ]] ; then
mvn -DskipTests=true -Dcheckstyle.skip=true clean package || die "Error building bubble jar"
else
diff --git a/bubble-server/src/main/java/bubble/ApiConstants.java b/bubble-server/src/main/java/bubble/ApiConstants.java
index 0e5b436b..219b6fde 100644
--- a/bubble-server/src/main/java/bubble/ApiConstants.java
+++ b/bubble-server/src/main/java/bubble/ApiConstants.java
@@ -85,7 +85,7 @@ public class ApiConstants {
public static final String SESSION_HEADER = "X-Bubble-Session";
- public static final String MESSAGE_RESOURCE_BASE = "message_templates/";
+ public static final String MESSAGE_RESOURCE_BASE = "messages/";
public static final String ENTITY_CONFIGS_ENDPOINT = "/ec";
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/message.hbs
deleted file mode 100644
index 9fdfc3a7..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/message.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-Hello {{account.name}},
-
-Someone has requested deletion of your account named '{{account.name}}' on {{network.nickname}}
-
-The account deletion request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-An approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-When sufficient approvals are received, the account will be deleted.
-
-If you do not want your account to be deleted, deny this request using another contact method associated with your account.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/subject.hbs
deleted file mode 100644
index c46184ff..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/delete/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Deletion Approval Received -- {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/message.hbs
deleted file mode 100644
index d11563a0..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-A request to download account data for the account named '{{account.name}}' on {{network.nickname}} has been approved.
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-The approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/subject.hbs
deleted file mode 100644
index f436d552..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/download/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Download account data approved for {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/message.hbs
deleted file mode 100644
index 4b45f749..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/message.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-Hello {{account.name}},
-
-Someone is trying to log in to the account named '{{account.name}}' on {{network.nickname}}
-
-The login request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.request.remoteHost}}.
-
-An approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-When sufficient approvals are received, login can proceed.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/subject.hbs
deleted file mode 100644
index e272aba9..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/login/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Login Approval Received -- {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/message.hbs
deleted file mode 100644
index add18b57..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-The password for the account named '{{account.name}}' on {{network.nickname}} has been reset.
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-The approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/subject.hbs
deleted file mode 100644
index 69a3e8fb..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Password Successfully Reset for {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/message.hbs
deleted file mode 100644
index 35ad874a..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/message.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-Hello {{account.name}},
-
-The Bubble Restore Key request for {{network.nickname}} has been approved.
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-The approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-When all required approvals are received, you will receive another message with a link to view the network keys.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/subject.hbs
deleted file mode 100644
index 1ffd8c49..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/approval/password/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Bubble Restore Key request approved on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/message.hbs
deleted file mode 100644
index 9ecdb074..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/message.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-Hello {{account.name}},
-
-Your account named '{{account.name}}' on {{network.nickname}} has been deleted.
-
-The account deletion request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-The account deletion request was approved and subsequently executed on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-{{#if account.policy.fullDelete}}
-Your account deletion policy was "full deletion". This means that your account record, and all records and data associated with it, have been deleted.
-{{/if}}
-{{#if account.policy.blockDelete}}
-Your account deletion policy was "block deletion". This means that all records and data associated with your account have been deleted, and
-your account record itself has been wiped, except for the username. This will prevent any future user from claiming that username.
-{{/if}}
-
-This action is irrevocable.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/subject.hbs
deleted file mode 100644
index dece4d49..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/delete/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Deletion Completed -- {{account.name}} on {{network.nickname}} has been permanently deleted
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/message.hbs
deleted file mode 100644
index b59cdc52..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/message.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-Hello {{account.name}},
-
-The download request for the account named '{{account.name}}' on {{network.nickname}} has been confirmed
-
-The request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-An approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Follow this link to download your account data:
-
- {{publicUri}}/me/download/{{message.requestId}}
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/subject.hbs
deleted file mode 100644
index 27593088..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/download/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Download Account Data for: {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/message.hbs
deleted file mode 100644
index 31bdc6a5..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-A successful login has been made to the account named '{{account.name}}' on {{network.nickname}}
-
-The login request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-An approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/subject.hbs
deleted file mode 100644
index 9772b0d1..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/login/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Login Confirmed -- {{account.name}} on {{network.nickname}} has been permanently deleted
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/message.hbs
deleted file mode 100644
index a8956aea..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-The password for the account named '{{account.name}}' on {{network.nickname}} has been reset.
-
-The password reset request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-An approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/subject.hbs
deleted file mode 100644
index d5976845..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Password Reset: {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/message.hbs
deleted file mode 100644
index 4940209d..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/message.hbs
+++ /dev/null
@@ -1,15 +0,0 @@
-Hello {{account.name}},
-
-The Bubble Network Key request {{network.nickname}} has been approved.
-
-The request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-An approval was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Follow the link below to view your Bubble Restore Key ( code: {{message.requestId}} ):
-
- {{publicUri}}/bubble/{{network.name}}?keys_code={{message.requestId}}
-
-This link will only work once, and only for the next 15 minutes.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/subject.hbs
deleted file mode 100644
index 81bd776a..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/password/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Download Bubble Restore Key for {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/message.hbs
deleted file mode 100644
index 41a6a3cf..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-Contact information for your account named '{{account.name}}' on {{network.nickname}} has been successfully verified:
-
-{{contact.type}} - {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}}
-
-Verification was confirmed on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/subject.hbs
deleted file mode 100644
index e5ec84a4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/confirmation/verify/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Addition of {{contact.type}} / {{contact.info}} {{#if contact.nick}}({{contact.nick}}) {{/if}}has been successfully verified on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/message.hbs
deleted file mode 100644
index aeb9ce66..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/message.hbs
+++ /dev/null
@@ -1,13 +0,0 @@
-Hello {{account.name}},
-
-Someone has requested deletion of your account named '{{account.name}}' on {{network.nickname}}
-
-The account deletion request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-An denial was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-This account deletion request has been canceled and cannot be resumed.
-
-If you actually do want your account to be deleted, start a new deletion request.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/subject.hbs
deleted file mode 100644
index 14c82a46..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/delete/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Deletion Denied -- {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/message.hbs
deleted file mode 100644
index ce375a89..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-The download request for the account named '{{account.name}}' on {{network.nickname}} has been canceled.
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-The request was canceled via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/subject.hbs
deleted file mode 100644
index 890bc42c..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/download/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Download account data denied for account: {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/message.hbs
deleted file mode 100644
index d05db806..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/message.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-Hello {{account.name}},
-
-Someone is trying to log in to the account named '{{account.name}}' on {{network.nickname}}
-
-The login request was made on {{format_epoch message.request.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.request.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-A denial was received via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-This login attempt has been be denied.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/subject.hbs
deleted file mode 100644
index 31a91a84..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/login/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Login Approval Denied -- {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/message.hbs
deleted file mode 100644
index 39449daf..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-The reset password request for the account named '{{account.name}}' on {{network.nickname}} has been canceled.
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-The request was canceled via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/subject.hbs
deleted file mode 100644
index 6cb025d7..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Password Reset was canceled for {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/message.hbs
deleted file mode 100644
index 32c9e8d0..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-The "View Network Keys" request for {{network.nickname}} has been canceled.
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-The request was canceled via {{contact.type}} from {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/subject.hbs
deleted file mode 100644
index 88a82000..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/password/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-View Network Keys: request denied on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/message.hbs
deleted file mode 100644
index 7caba7d9..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/message.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-Hello {{account.name}},
-
-Contact information for your account named '{{account.name}}' on {{network.nickname}} has been denied and removed:
-
-{{contact.type}} - {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}}
-
-Verification was denied on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/subject.hbs
deleted file mode 100644
index d878421a..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/denial/verify/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Addition of {{contact.type}} / {{contact.info}} {{#if contact.nick}}({{contact.nick}}) {{/if}}has been denied on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/message.hbs
deleted file mode 100644
index 1c0491ee..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/message.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-Hello {{account.name}},
-
-Your Bubble has been stopped due to non-payment.
-
-Please check your payment information and pay your bill:
-
- {{publicUri}}/me/plans/{{message.data}}/bills
-
-NOTE: If you haven't downloaded your Bubble's restore key, you will NOT be able to restore your Bubble.
-You will have to set up a new Bubble.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/subject.hbs
deleted file mode 100644
index 3cdabb42..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/payment/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Bubble {{network.nickname}} stopped due to non-payment. Please pay now to resume service.
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/message.hbs
deleted file mode 100644
index 9d4e033f..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/message.hbs
+++ /dev/null
@@ -1,21 +0,0 @@
-Hello {{account.name}},
-
-Congratulations, your new Bubble is launching!
-
-When your Bubble finishes the self-setup process, it will send you a message letting you know it's ready to use.
-
-While you're waiting for your Bubble to be ready, please install the Bubble app on your devices:
-
- * Android -- {{appLinks.android}}
-
- * iOS (iPhone and iPad) -- {{appLinks.ios}}
-
- * Windows 7 and higher -- {{appLinks.windows}}
-
- * MacOS X -- {{appLinks.macosx}}
-
- * Linux -- {{appLinks.linux}}
-
-{{#if support.hasInfo}}If you have any questions or need help, please {{#if support.hasEmailAndSite}}visit our support site: {{support.site}} or contact us at {{support.email}}{{else}}{{#if support.hasEmail}}contact {{support.email}}{{else}}visit {{support.site}}{{/if}}{{/if}}
-{{/if}}
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/subject.hbs
deleted file mode 100644
index d8f601f7..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/start/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Your new Bubble is launching: {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/message.hbs
deleted file mode 100644
index dd1c9cf3..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/message.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-Hello {{account.name}},
-
-Welcome to Bubble!
-
-Please confirm your email address using this link:
-
-{{publicUri}}/me/action?approve={{confirmationToken}}
-
-{{#if support.hasInfo}}If you have any questions or need help, please {{#if support.hasEmailAndSite}}visit our support site: {{support.site}} or contact us at {{support.email}}{{else}}{{#if support.hasEmail}}contact {{support.email}}{{else}}visit {{support.site}}{{/if}}{{/if}}
-{{/if}}
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/subject.hbs
deleted file mode 100644
index abc9489a..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/notice/welcome/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Welcome to Bubble!
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/message.hbs
deleted file mode 100644
index cdecb8dd..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/message.hbs
+++ /dev/null
@@ -1,28 +0,0 @@
-Hello {{account.name}},
-
-Someone has requested deletion of your account named '{{account.name}}' on {{network.nickname}}
-
-The account deletion request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}}.
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you did not make this request or would like to cancel this request, please click this link:
-
- {{publicUri}}/me/deny?t={{confirmationToken}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you DID make this request and are ready to approve this deletion, click the link below.
-
-NOTE: When all required approvals are received, your account will be deleted.
-
-When your account is deleted, ALL OF YOUR DATA WILL BE DELETED. THIS ACTION CANNOT BE UNDONE.
-
- {{publicUri}}/me/approve?t={{confirmationToken}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/subject.hbs
deleted file mode 100644
index 279eeb5f..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/delete/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Deletion Requested -- Please Confirm Deletion of {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/message.hbs
deleted file mode 100644
index e8afcece..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/message.hbs
+++ /dev/null
@@ -1,24 +0,0 @@
-Hello {{account.name}},
-
-Someone is trying to download all account data for the account named '{{account.name}}' on {{network.nickname}}
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you did not make this request or would like to cancel this request, please click this link:
-
- {{publicUri}}/action?deny={{confirmationToken}}&user={{account.name}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you DID make this request and want to download your account data, click the link below.
-
- {{publicUri}}/action?approve={{confirmationToken}}&user={{account.name}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/subject.hbs
deleted file mode 100644
index df821e37..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/download/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Download all account data requested for account: {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/message.hbs
deleted file mode 100644
index 113e1f67..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/message.hbs
+++ /dev/null
@@ -1,25 +0,0 @@
-Hello {{account.name}},
-
-Someone is trying to log in to the account named '{{account.name}}' on {{network.nickname}}
-
-The login request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you did not make this request or would like to cancel this request, please click this link:
-
- {{publicUri}}/deny?t={{confirmationToken}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you DID make this request and are ready to approve this login, enter this code on the
-login authentication page:
-
- {{confirmationToken}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/subject.hbs
deleted file mode 100644
index 2794c5d0..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/login/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Account Login -- Please Confirm Login for {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/message.hbs
deleted file mode 100644
index 31058a17..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/message.hbs
+++ /dev/null
@@ -1,24 +0,0 @@
-Hello {{account.name}},
-
-Someone is trying to reset the password for the account named '{{account.name}}' on {{network.nickname}}
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you did not make this request or would like to cancel this request, please click this link:
-
- {{publicUri}}/action?deny={{confirmationToken}}&user={{urlEncode account.name}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-If you DID make this request and are ready to set a new password for your account, click the link below.
-
- {{publicUri}}/action?approve={{confirmationToken}}&user={{urlEncode account.name}}
-
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/subject.hbs
deleted file mode 100644
index 133e7521..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Password Reset for {{account.name}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/message.hbs
deleted file mode 100644
index 70c571f5..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/message.hbs
+++ /dev/null
@@ -1,11 +0,0 @@
-Hello {{account.name}},
-
-Someone has requested the Bubble Restore Key for {{network.nickname}}
-
-The request was made on {{format_epoch message.ctime 'MMM dd, YYYY' network.timezone}} at {{format_epoch message.ctime 'hh:mm a, ZZZ' network.timezone}} from IP address {{message.remoteHost}}.
-
-To approve this request to download keys for your network, click the link below.
-
- {{publicUri}}/action?approve={{confirmationToken}}
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/subject.hbs
deleted file mode 100644
index dd423b2e..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/password/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Bubble Restore Key requested for {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/message.hbs
deleted file mode 100644
index d1b8d253..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/message.hbs
+++ /dev/null
@@ -1,14 +0,0 @@
-Hello {{account.name}},
-
-Your Bubble is running, but a recent bill could not be paid.
-
-Please check your payment information and pay your bill:
-
- {{publicUri}}/me/plans/{{message.data}}/bills
-
-If your bill remains unpaid for 5+ days, your Bubble will be automatically stopped.
-
-NOTE: If you haven't downloaded your Bubble's restore key, you will NOT be able to restore your Bubble
-after it has been stopped. You would have to set up a new Bubble.
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/subject.hbs
deleted file mode 100644
index 2145973c..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/payment/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Payment required for your Bubble: {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/message.hbs
deleted file mode 100644
index 64742d4c..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/message.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-Hello {{account.name}},
-
-Contact information has been added to your account named '{{account.name}}' on {{network.nickname}}
-
-{{#string_compare contact.uuid '==' message.contact}}{{contact.type}} - {{contact.info}}{{else}}{{message.requestContact.type}}{{#if message.requestContact.isSms}}{{message.requestContact.info}}{{/if}}{{/string_compare}} {{#if message.requestContact.nick}}({{message.requestContact.nick}}){{/if}}
-{{#string_compare contact.uuid '==' message.contact}}
-To confirm this contact information, follow this link:
-
-{{publicUri}}/me/action?approve={{confirmationToken}}
-{{/string_compare}}
-
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/subject.hbs
deleted file mode 100644
index 4d36d670..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/account/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Verification Requested: {{contact.type}} / {{contact.info}} {{#if contact.nick}}({{contact.nick}}){{/if}} on {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/fromEmail.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/fromEmail.hbs
deleted file mode 100644
index 07124186..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/fromEmail.hbs
+++ /dev/null
@@ -1 +0,0 @@
-no-reply@{{network.networkDomain}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/fromName.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/fromName.hbs
deleted file mode 100644
index 08dc8cb4..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/fromName.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{network.nickname}} System Account
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/message.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/message.hbs
deleted file mode 100644
index 43b0213d..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/message.hbs
+++ /dev/null
@@ -1,28 +0,0 @@
-Hello {{account.name}},
-
-Your new Bubble is running!
-{{#if message.data}}
-Follow the link below to unlock it:
-
- {{publicUri}}/login?k={{message.data}}
-
-This link will expire in 48 hours. If you do not start using your Bubble within 48 hours, you will need to relaunch a new Bubble.
-
-After you've unlocked your Bubble, you can use of our apps listed below to connect.
-{{/if}}
-
-Please install the Bubble app on your devices:
-
- * Android -- {{appLinks.android}}
-
- * iOS (iPhone and iPad) -- {{appLinks.ios}}
-
- * Windows 7 and higher -- {{appLinks.windows}}
-
- * MacOS X -- {{appLinks.macosx}}
-
- * Linux -- {{appLinks.linux}}
-
-{{#if support.hasInfo}}If you have any questions or need help, please {{#if support.hasEmailAndSite}}visit our support site: {{support.site}} or contact us at {{support.email}}{{else}}{{#if support.hasEmail}}contact {{support.email}}{{else}}visit {{support.site}}{{/if}}{{/if}}
-{{/if}}
-Thank you for using Bubble!
diff --git a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/subject.hbs b/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/subject.hbs
deleted file mode 100644
index 5878e94d..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/email/request/verify/network/subject.hbs
+++ /dev/null
@@ -1 +0,0 @@
-Your new Bubble is ready for you: {{network.nickname}}
\ No newline at end of file
diff --git a/bubble-server/src/main/resources/message_templates/en_US/server/countries/ResourceMessages.properties b/bubble-server/src/main/resources/message_templates/en_US/server/countries/ResourceMessages.properties
deleted file mode 100644
index e05b5888..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/server/countries/ResourceMessages.properties
+++ /dev/null
@@ -1,255 +0,0 @@
-# Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
-# suppress inspection "UnusedProperty" for whole file
-# these are referenced on the frontend
-
-# Country names
-country_codes=AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW
-country_AD=Andorra
-country_AE=United Arab Emirates
-country_AF=Afghanistan
-country_AG=Antigua and Barbuda
-country_AI=Anguilla
-country_AL=Albania
-country_AM=Armenia
-country_AO=Angola
-country_AQ=Antarctica
-country_AR=Argentina
-country_AS=American Samoa
-country_AT=Austria
-country_AU=Australia
-country_AW=Aruba
-country_AX=Åland Islands
-country_AZ=Azerbaijan
-country_BA=Bosnia and Herzegovina
-country_BB=Barbados
-country_BD=Bangladesh
-country_BE=Belgium
-country_BF=Burkina Faso
-country_BG=Bulgaria
-country_BH=Bahrain
-country_BI=Burundi
-country_BJ=Benin
-country_BL=Saint Barthélemy
-country_BM=Bermuda
-country_BN=Brunei Darussalam
-country_BO=Bolivia
-country_BQ=Caribbean Netherlands
-country_BR=Brazil
-country_BS=Bahamas
-country_BT=Bhutan
-country_BV=Bouvet Island
-country_BW=Botswana
-country_BY=Belarus
-country_BZ=Belize
-country_CA=Canada
-country_CC=Cocos (Keeling) Islands,Îles Cocos (Keeling)
-country_CD=Congo, Democratic Republic of
-country_CF=Central African Republic
-country_CG=Congo
-country_CH=Switzerland
-country_CI=Côte d'Ivoire
-country_CK=Cook Islands
-country_CL=Chile
-country_CM=Cameroon
-country_CN=China
-country_CO=Colombia
-country_CR=Costa Rica
-country_CU=Cuba
-country_CV=Cape Verde
-country_CW=Curaçao
-country_CX=Christmas Island
-country_CY=Cyprus
-country_CZ=Czech Republic
-country_DE=Germany
-country_DJ=Djibouti
-country_DK=Denmark
-country_DM=Dominica
-country_DO=Dominican Republic
-country_DZ=Algeria
-country_EC=Ecuador
-country_EE=Estonia
-country_EG=Egypt
-country_EH=Western Sahara
-country_ER=Eritrea
-country_ES=Spain
-country_ET=Ethiopia
-country_FI=Finland
-country_FJ=Fiji
-country_FK=Falkland Islands
-country_FM=Micronesia, Federated States of
-country_FO=Faroe Islands
-country_FR=France
-country_GA=Gabon
-country_GB=United Kingdom
-country_GD=Grenada
-country_GE=Georgia
-country_GF=French Guiana
-country_GG=Guernsey
-country_GH=Ghana
-country_GI=Gibraltar
-country_GL=Greenland
-country_GM=Gambia
-country_GN=Guinea
-country_GP=Guadeloupe
-country_GQ=Equatorial Guinea
-country_GR=Greece
-country_GS=South Georgia and the South Sandwich Islands
-country_GT=Guatemala
-country_GU=Guam
-country_GW=Guinea-Bissau
-country_GY=Guyana
-country_HK=Hong Kong
-country_HM=Heard and McDonald Islands
-country_HN=Honduras
-country_HR=Croatia
-country_HT=Haiti
-country_HU=Hungary
-country_ID=Indonesia
-country_IE=Ireland
-country_IL=Israel
-country_IM=Isle of Man
-country_IN=India
-country_IO=British Indian Ocean Territory
-country_IQ=Iraq
-country_IR=Iran
-country_IS=Iceland
-country_IT=Italy
-country_JE=Jersey
-country_JM=Jamaica
-country_JO=Jordan
-country_JP=Japan
-country_KE=Kenya
-country_KG=Kyrgyzstan
-country_KH=Cambodia
-country_KI=Kiribati
-country_KM=Comoros
-country_KN=Saint Kitts and Nevis
-country_KP=North Korea
-country_KR=South Korea
-country_KW=Kuwait
-country_KY=Cayman Islands
-country_KZ=Kazakhstan
-country_LA=Lao People's Democratic Republic
-country_LB=Lebanon
-country_LC=Saint Lucia
-country_LI=Liechtenstein
-country_LK=Sri Lanka
-country_LR=Liberia
-country_LS=Lesotho
-country_LT=Lithuania
-country_LU=Luxembourg
-country_LV=Latvia
-country_LY=Libya
-country_MA=Morocco
-country_MC=Monaco
-country_MD=Moldova
-country_ME=Montenegro
-country_MF=Saint-Martin (France)
-country_MG=Madagascar
-country_MH=Marshall Islands
-country_MK=Macedonia
-country_ML=Mali
-country_MM=Myanmar
-country_MN=Mongolia
-country_MO=Macau
-country_MP=Northern Mariana Islands
-country_MQ=Martinique
-country_MR=Mauritania
-country_MS=Montserrat
-country_MT=Malta
-country_MU=Mauritius
-country_MV=Maldives
-country_MW=Malawi
-country_MX=Mexico
-country_MY=Malaysia
-country_MZ=Mozambique
-country_NA=Namibia
-country_NC=New Caledonia
-country_NE=Niger
-country_NF=Norfolk Island
-country_NG=Nigeria
-country_NI=Nicaragua
-country_NL=The Netherlands
-country_NO=Norway
-country_NP=Nepal
-country_NR=Nauru
-country_NU=Niue
-country_NZ=New Zealand
-country_OM=Oman
-country_PA=Panama
-country_PE=Peru
-country_PF=French Polynesia
-country_PG=Papua New Guinea
-country_PH=Philippines
-country_PK=Pakistan
-country_PL=Poland
-country_PM=St. Pierre and Miquelon
-country_PN=Pitcairn
-country_PR=Puerto Rico
-country_PS=Palestine, State of
-country_PT=Portugal
-country_PW=Palau
-country_PY=Paraguay
-country_QA=Qatar
-country_RE=Réunion
-country_RO=Romania
-country_RS=Serbia
-country_RU=Russian Federation
-country_RW=Rwanda
-country_SA=Saudi Arabia
-country_SB=Solomon Islands
-country_SC=Seychelles
-country_SD=Sudan
-country_SE=Sweden
-country_SG=Singapore
-country_SH=Saint Helena
-country_SI=Slovenia
-country_SJ=Svalbard and Jan Mayen Islands
-country_SK=Slovakia
-country_SL=Sierra Leone
-country_SM=San Marino
-country_SN=Senegal
-country_SO=Somalia
-country_SR=Suriname
-country_SS=South Sudan
-country_ST=Sao Tome and Principe
-country_SV=El Salvador
-country_SX=Sint Maarten (Dutch part)
-country_SY=Syria
-country_SZ=Swaziland
-country_TC=Turks and Caicos Islands
-country_TD=Chad
-country_TF=French Southern Territories
-country_TG=Togo
-country_TH=Thailand
-country_TJ=Tajikistan
-country_TK=Tokelau
-country_TL=Timor-Leste
-country_TM=Turkmenistan
-country_TN=Tunisia
-country_TO=Tonga
-country_TR=Turkey
-country_TT=Trinidad and Tobago
-country_TV=Tuvalu
-country_TW=Taiwan
-country_TZ=Tanzania
-country_UA=Ukraine
-country_UG=Uganda
-country_UM=United States Minor Outlying Islands
-country_US=United States
-country_UY=Uruguay
-country_UZ=Uzbekistan
-country_VA=Vatican
-country_VC=Saint Vincent and the Grenadines
-country_VE=Venezuela
-country_VG=Virgin Islands (British)
-country_VI=Virgin Islands (U.S.)
-country_VN=Vietnam
-country_VU=Vanuatu
-country_WF=Wallis and Futuna Islands
-country_WS=Samoa
-country_YE=Yemen
-country_YT=Mayotte
-country_ZA=South Africa
-country_ZM=Zambia
-country_ZW=Zimbabwe
diff --git a/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties b/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties
deleted file mode 100644
index 918bbea0..00000000
--- a/bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties
+++ /dev/null
@@ -1,906 +0,0 @@
-# Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/
-# suppress inspection "UnusedProperty" for whole file
-# these labels are all used on the frontend
-label_homepage_hello=Hello, {{account.user.name}}!
-
-# Model Setup fields
-form_title_model_setup=System Objects
-field_label_entity_type=Object Type
-button_label_upload_model=Upload Objects
-field_label_upload_file=Objects File
-field_description_upload_file=Must be a valid ZIP or TGZ archive file.
-button_label_save_upload_model=Upload
-button_label_close_upload_model=Cancel
-button_label_add_entity=Add New
-button_label_close_add_entity=Cancel
-button_label_save_add_entity=Save
-button_label_view_entity=View
-button_label_close_view_entity=Close
-button_label_edit_entity=Edit
-button_label_save_edit_entity=Save
-button_label_delete_entity=Delete
-
-# Profile fields
-field_label_url=URL
-field_label_administrator=Administrator
-field_label_suspended=Suspended
-field_label_sendWelcomeEmail=Send Welcome Email
-field_label_auto_update_policy=Automatic Upgrades
-field_label_auto_update_jar=Automatic Updates for Bubble Software
-field_label_auto_update_apps=Automatic Updates for VPN Apps
-button_label_update_profile=Update
-link_label_change_password=Change Password
-link_label_account_ssh_keys=Manage SSH Keys
-link_label_account_policy=Account Policy and Contact Info
-link_label_account_download=Request Account Data Download
-link_label_account_payments=Payment Methods and Credits
-link_label_account_bills=Bills
-message_profile_update_success=Profile update was successful
-downloading_notice=File download will start promptly...
-downloading_failed=File download failed. Please retry from the start
-
-# Jar upgrade
-message_jar_upgrade_available=A new version of Bubble is available
-message_jar_upgrade_version=The new Bubble version is
-message_jar_current_version=Your current Bubble version is
-button_label_jar_upgrade=Upgrade Your Bubble
-button_label_jar_upgrading=Upgrading...
-message_jar_checking_for_upgrade=Checking for Bubble upgrade...
-message_jar_upgrading=Your Bubble may be unresponsive for a minute or two while the upgrade occurs
-
-# Account SSH key fields
-form_title_ssh_keys=Account SSH Keys
-form_title_add_ssh_key=Add SSH Key
-field_label_ssh_key_name=Name
-field_label_ssh_key_public_key=Public Key
-field_label_ssh_key_expiration=Expiration
-field_description_ssh_key_expiration=If omitted, the key will never expire
-field_description_ssh_key_public_key=Enter a valid RSA public key. It should start with ssh-rsa
-field_label_ssh_key_public_key_hash=Public Key Hash
-date_format_ssh_key_expiration={{E}} {{MMM}} {{d}}, {{YYYY}}
-message_ssh_key_no_expiration=No expiration
-button_label_add_ssh_key=Add SSH Key
-button_label_remove_ssh_key=Remove
-button_label_remove_ssh_key_icon=fa fa-trash-alt
-
-# Time duration fields
-time_duration_options=minutes,hours,days
-time_duration_minutes=minutes
-time_duration_hours=hours
-time_duration_days=days
-time_duration_minutes_factor=60000
-time_duration_hours_factor=3600000
-time_duration_days_factor=86400000
-
-# Policy fields
-form_title_account_policy=Account Policy
-field_label_account_download=Account Data Download
-button_label_account_download=Request Download
-field_label_account_download_requested_notice=We have received your request. Check your email inbox for required data.
-field_label_policy_account_deletion=Account Deletion Policy
-field_label_policy_account_deletion_options=full_delete,block_delete
-account_deletion_name_full_delete=Full delete
-account_deletion_description_full_delete=If you delete your account, it will be completely deleted. Another user could then register a new Account using your old username.
-account_deletion_name_block_delete=Delete all data, block future registrations
-account_deletion_description_block_delete=If you delete your account, all your account data and information will be deleted, but an empty stub Account with your username will remain. This prevents anyone from reusing your username in the future.
-account_deletion_name_=Error loading deletion policy
-account_deletion_description_=Error loading deletion policy
-field_label_policy_account_operation_timeout=Account Operation Timeout
-field_label_policy_account_operation_timeout_description=To ensure your Account security, certain operations (like downloading your Account data) require your approval. If no response is received before this timeout, the operation will not be allowed to proceed.
-field_label_policy_node_operation_timeout=Bubble Operation Timeout
-field_label_policy_node_operation_timeout_description=To ensure your Bubble security, certain operations (like stopping your Bubble) require your approval. If no response is received before this timeout, the operation will not be allowed to proceed.
-field_label_policy_authenticator_timeout=Authenticator Timeout
-field_label_policy_authenticator_timeout_description=After successfully verifying your account with your Authenticator app, you will be required to authenticate again after this amount of time has passed.
-button_label_update_policy=Update
-
-# Policy Contact fields
-form_title_account_contacts=Contacts and Authorization
-field_label_policy_contact_info=Contact Info
-message_verify_authenticator_preamble=Install the Google Authenticator app on your device, then scan the QR code shown here and enter the code it displays.
-message_verify_authenticator_backupCodes=Backup Codes
-message_verify_authenticator_backupCodes_description=If you lose your device or don't have access to it, you can use one of these backup codes. Write them down in a safe place.
-message_verify_authenticator_masked=Authenticator was set up elsewhere, cannot show setup/verification information here
-field_label_policy_contact_requiredForNetworkOperations=Required for operations on your Bubble
-field_label_policy_contact_requiredForNetworkOperations_icon=fa fa-cloud
-field_label_policy_contact_requiredForAccountOperations=Required for operations on your Account
-field_label_policy_contact_requiredForAccountOperations_icon=fa fa-user
-field_label_policy_contact_receiveVerifyNotifications=Required for verification of newly added Contacts/Authorizations
-field_label_policy_contact_receiveVerifyNotifications_icon=fa fa-question-circle
-field_label_policy_contact_receiveLoginNotifications=Receive login notifications
-field_label_policy_contact_receiveLoginNotifications_icon=fa fa-sign-in-alt
-field_label_policy_contact_receivePasswordNotification=Receive change password notifications
-field_label_policy_contact_receivePasswordNotification_icon=fa fa-key
-field_label_policy_contact_receiveInformationalMessages=Receive informational messages
-field_label_policy_contact_receiveInformationalMessages_icon=fa fa-info
-field_label_policy_contact_receivePromotionalMessages=Receive promotional messages
-field_label_policy_contact_receivePromotionalMessages_icon=fa fa-bullhorn
-field_label_policy_contact_authFactors=not_required,required,sufficient
-field_label_policy_contact_authFactor=Authentication Factor
-field_label_policy_contact_authFactor_icon=fa fa-passport
-field_label_policy_contact_authFactor_name_not_required=Not Required
-field_label_policy_contact_authFactor_name_not_required_icon=fa fa-minus
-field_label_policy_contact_authFactor_description_not_required=Not a required Auth Factor to approve any operation
-field_label_policy_contact_authFactor_name_required=Required
-field_label_policy_contact_authFactor_name_required_icon=fa fa-check-double
-field_label_policy_contact_authFactor_description_required=Always a required Auth Factor to approve any operation
-field_label_policy_contact_authFactor_name_sufficient=Sufficient
-field_label_policy_contact_authFactor_name_sufficient_icon=fa fa-check
-field_label_policy_contact_authFactor_description_sufficient=If an operation is approved via this method (in addition to approval by all Required Auth Factors, if any), then the operation will be allowed
-field_label_policy_contact_value_enabled_icon=fa fa-check
-field_label_policy_contact_value_enabled_name=Enabled
-field_label_policy_contact_value_disabled_icon=fa fa-minus
-field_label_policy_contact_value_disabled_name=Disabled
-field_label_policy_contact_value_not_applicable_icon=fa fa-times-circle
-field_label_policy_contact_value_not_applicable_name=N/A
-button_label_edit_contact=Edit
-button_label_edit_contact_icon=fa fa-edit
-button_label_remove_contact=Remove
-button_label_remove_contact_icon=fa fa-trash-alt
-button_label_resend_verify_code=Resend Verification Code
-button_label_resend_verify_code_icon=fa fa-sync
-alert_resend_verification_success=Verification Code Successfully Sent
-
-form_title_account_add_contact=Add New Contact/Authorization
-button_label_add_contact=Add
-
-# Inbound approve/deny via ActionPage -> PolicyPage
-message_action_processing=Processing
-message_inbound_approve=Approval
-message_inbound_deny=Denial
-message_inbound_invalid=Invalid request
-message_inbound_success=was successful
-message_inbound_failure=failed
-
-# Accounts table
-loading_accounts=Loading accounts...
-table_title_accounts=Manage User Accounts
-label_field_account_search=Search
-label_field_account_admin=Admin
-label_field_account_suspended=Suspended
-label_field_account_locale=Locale
-message_account_lastLogin_neverLoggedIn=Never logged in
-label_field_account_lastLogin_format=Last login: {{YYYY}}-{{MM}}-{{dd}} @ {{h}}:{{m}}{{a}}
-label_field_account_deleted_format=Deleted: {{YYYY}}-{{MM}}-{{dd}} @ {{h}}:{{m}}{{a}}
-message_new_account=Add Account
-message_empty_accounts=No Accounts
-
-# Account page
-title_account_new=New Account
-title_account_manage=Manage Account
-button_label_create_account=Create Account
-button_label_delete_account=Delete
-button_label_force_delete_account=Force Delete
-
-# Networks table
-loading_networks=Loading bubbles...
-table_title_networks=Bubbles
-label_field_networks_name=Name
-label_field_networks_locale=Locale
-label_field_networks_timezone=Time Zone
-label_field_networks_object_state=State
-button_label_new_network=Create Bubble
-message_empty_networks=Create your first Bubble!
-
-# Nodes table
-label_field_nodes_name=Name
-label_field_nodes_region=Region
-label_field_nodes_state=State
-label_field_nodes_ip4=IPv4
-label_field_nodes_ip6=IPv6
-
-# New Network page
-message_no_contacts=No authorized contact info found
-link_label_no_contacts=Add an email address or SMS-enabled phone number
-message_no_verified_contacts=Please verify your email address
-message_no_verified_contacts_subtext=Check your email and follow the link to verify your email address
-
-form_title_new_network=New Bubble
-field_label_network_name=Name
-field_label_network_type=Bubble Type
-field_label_network_type_regular=Regular
-field_label_network_type_fork=Fork
-field_label_network_fork_host=Fork Host
-field_description_network_fork_host=The current Sage Launcher will be forked onto this host.
-field_label_network_domain=Domain
-field_label_plan=Plan
-field_label_choose_plan=Choose Your Plan
-message_plan_max_accounts_one=This is a single-user Bubble
-message_plan_max_accounts_multiple=You can create up to {{max}} user accounts on this Bubble
-message_plan_no_max_accounts=This plan supports an unlimited number of user accounts
-field_label_show_advanced_plan_options=Customize Launch Options
-field_label_region=Location
-field_label_flex_region=Flexible location
-field_label_flex_region_description=If your Bubble can't be launched in the selected location, it will be launched in the next closest region.
-field_label_exact_region_description=If your Bubble can't be launched in the selected location, it will be not be launched. You can then choose a different location and relaunch it.
-field_label_footprint=Footprint
-field_label_network_ssh_key=SSH Key
-field_description_network_ssh_key=You can SSH into the Bubble with this key
-message_network_ssh_key_do_not_install=Do not install any SSH key
-field_label_sync_password=Synchronize passwords
-field_label_sync_password_description=Keeps your password synchronized between this site and your bubble. If you change your password on this website, it will be updated on your bubble, and vice-versa.
-field_label_launch_lock=Lock Bubble
-field_label_launch_lock_description=If set, you will need to unlock your Bubble before using it. Your bubble will send you the unlock key after it has completed setting itself up.
-field_label_send_errors=Send error reports
-field_label_send_errors_description=If your bubble crashes or encounters an unexpected error, send an error report to us. Error reports will identify your bubble but will not include any personal information.
-field_label_send_metrics=Send anonymous usage statistics
-field_label_send_metrics_description=Periodically send usage metrics to Bubble. Metrics include CPU, memory and disk utilization. Metric reports will identify your bubble but will not include any personal information.
-msg_km_distance_away=km away
-message_auto_detecting=Auto-Detecting... (refresh page if this gets stuck)
-button_label_customize=Customize
-button_label_use_default=Use Default
-button_label_create_new_network=Launch Your Bubble!
-
-message_plan_fork_apps=All app templates will be copied to fork
-message_plan_node_apps=Your Bubble will include these apps:
-
-# Network Page - Connect
-message_network_connect=Connect to Bubble
-message_network_restore=Connect to Bubble to start the restore process
-
-# Network Page - Restore Keys
-link_network_action_request_keys=Request Bubble Restore Key
-message_network_action_keys_requested=Bubble Restore Key requested
-message_network_action_retrieve_keys=Download Bubble Restore Key
-field_network_key_download_code=Download Code
-field_network_key_download_password=Encrypt with password
-button_label_retrieve_keys=Download
-err.retrieveNetworkKeys.notFound=Download Code Not Found
-restore_key_label=Your restore short key is:
-button_label_restore=Restore
-button_description_restore=You will need full network restore key build from this bubble while if was running.
-restore_not_possible_nodes_exist_html=Cannot restore bubbles with existing nodes. Please contact support@getbubblenow.com
-
-# Network Page - Log flag
-node_logs_enabled=logs enabled
-node_logs_until=until
-button_node_logs_disable=Disable Logs
-node_logs_disable_after=Disable Logging After
-node_logs_days=Days
-button_node_logs_set_disable_after=Set
-node_logs_disabled=logs are disabled
-button_node_logs_enable=Enable Logs
-
-# Network Page - Danger Zone
-title_network_danger_zone=Danger Zone
-link_network_action_stop=Stop
-link_network_action_stop_description=Stop this Bubble. If you have downloaded your restore key, you can later restore it.
-network_action_stop_not_ready=Still loading, try again in a moment.
-confirmation_network_action_stop=Please confirm stop.\nConnected devices will lose Internet access until they are disconnected from the Bubble\nYou can restore this Bubble later.
-label_latest_backup=Latest Backup:
-label_no_latest_backup=No backups available
-link_backup_network=Queue new backup
-link_network_action_delete=Delete
-link_network_action_delete_description=Delete this Bubble and all backups. You will not be able to restore this Bubble. This action cannot be undone.
-confirmation_network_action_delete=Please confirm deletion.\nYou will not be able to restore this Bubble.\nThis action cannot be undone.
-
-# Billing and Payment
-title_bills=Bills
-label_bill_plan=Plan
-label_bill_status=Status
-bill_status_paid=Paid
-bill_status_unpaid=Unpaid
-bill_status_partial_payment=Partial payment
-bill_status_undefined=Unknown
-bill_status_null=Unknown
-bill_status_=Unknown
-label_bill_period=Date
-label_bill_period_start=From
-label_bill_period_end=To
-label_bill_total=Amount
-label_bill_total_format={{messages['currency_symbol_'+currency.toUpperCase()]}}{{totalMajorUnits}}{{totalMinorUnits === 0 ? '' : totalMinorUnits < 10 ? '.0'+totalMinorUnits : '.'+totalMinorUnits}}
-label_bill_refunded=refunded
-label_payment_type=Type
-label_payment_method=Paid By
-label_payment_status=Status
-label_payment_amount=Amount
-label_payment_amount_format={{messages['currency_symbol_'+currency.toUpperCase()]}}{{amountMajorUnits}}{{amountMinorUnits === 0 ? '' : amountMinorUnits < 10 ? '.0'+amountMinorUnits : '.'+amountMinorUnits}}
-label_payment_action=Action
-button_label_close_bill_detail=Close
-
-payment_method_credit=Credit/Debit Card
-payment_method_code=Invitation Code
-payment_method_free=Free!
-payment_method_promotional_credit=Promotion
-payment_method_undefined=
-payment_method_null=
-payment_method_=
-
-payment_status_init=Created
-payment_status_success=Success
-payment_status_failure=Failure
-payment_status_unknown=Unknown
-payment_status_undefined=Unknown
-payment_status_null=Unknown
-payment_status_=Unknown
-
-payment_type_payment=payment
-payment_type_credit_applied=credit applied
-payment_type_refund=refund
-
-label_promotion_FirstMonthFree=First Month Free
-label_promotion_FirstMonthFree_description=There is no charge for the first month of your Bubble.
-label_promotion_ReferralMonthFree=Referral Bonus
-label_promotion_ReferralMonthFree_description=An additional month of free service!
-label_promotion_AccountCredit1=$1 Bonus
-label_promotion_AccountCredit1_description=A $1 credit towards any plan
-label_promotion_AccountCredit5=$5 Bonus
-label_promotion_AccountCredit5_description=A $5 credit towards any plan
-label_promotion_AccountCreditBill=Full Bill Bonus ($100 max value)
-label_promotion_AccountCreditBill_description=An additional month of free service! ($100 max value)
-
-title_account_payment_methods=Payment Methods
-label_account_payment_method_type=Type
-label_account_payment_method_info=Info
-label_account_payment_method_added=Added
-label_account_payment_method_added_format={{MMM}} {{d}}, {{YYYY}}
-label_account_payment_method_current=Currently paying for
-label_account_payment_method_remove=Delete
-label_account_payment_method_set=Set as payment for plan
-label_account_payment_add=Add New Payment Method
-button_label_account_payment_delete=Remove
-
-title_account_promotions=Promotional Credits
-title_account_promotions_used=Used Promotional Credits
-label_account_promotion_used=Used On
-label_account_payment_method_used_format={{MMM}} {{d}}, {{YYYY}}
-
-# Bubble Plans
-plan_name_bubble=Personal Bubble
-plan_description_bubble=Enjoy your very own personal Bubble
-plan_name_bubble_plus=Family Bubble
-plan_description_bubble_plus=A bigger Bubble, enhanced for multi-user performance
-plan_name_bubble_super=Mega Bubble
-plan_description_bubble_super=Our most powerful Bubble, optimized for small businesses
-
-# Footprints
-footprint_name_US=United States
-footprint_description_US=Your Bubble will only run within the United States
-footprint_name_EU=European Union
-footprint_description_EU=Your Bubble will only run within European Union countries
-footprint_name_Worldwide=World-wide
-footprint_description_Worldwide=Your Bubble can run anywhere in the world
-
-# Launch progress meter: pre-launch (standard) ticks
-meter_tick_confirming_network_lock=Thinking about baking a pie
-meter_tick_validating_node_network_and_plan=Grabbing the cookbook...
-meter_tick_creating_node=Finding the best pie recipe ever...
-meter_tick_launching_node=Cleaning the kitchen...
-meter_tick_packer_image=Detected new Bubble version -- sorry this step will take about 20 minutes, but you'll get the latest-and-greatest Bubble!
-meter_tick_preparing_roles=Pre-heating the oven...
-meter_tick_preparing_install=Getting all the ingredients together...
-meter_tick_await_1=Running to the store...
-meter_tick_await_6=Running to the store...
-meter_tick_await_11=...apples...
-meter_tick_await_16=...butter...
-meter_tick_await_21=...flour...
-meter_tick_await_26=...brown sugar...
-meter_tick_await_31=...white sugar...
-meter_tick_await_36=...vanilla extract...
-meter_tick_await_41=...salt...
-meter_tick_await_46=...apple peeler...
-meter_tick_await_51=...apple corer...
-meter_tick_await_56=...pie plate...
-meter_tick_await_61=...checking out...
-meter_tick_await_66=Heading back home...
-meter_tick_await_71=Heading back home...
-meter_tick_await_76=Heading back home...
-meter_tick_await_81=Heading back home...
-meter_tick_await_86=Heading back home...
-meter_tick_starting_install=Peeling and slicing the apples...
-meter_tick_copying_ansible=Rolling out the pie dough...
-meter_tick_running_ansible=Whipping the batter...
-#meter_tick_confirming_network_lock=Confirming network lock
-#meter_tick_validating_node_network_and_plan=Verifying settings for Bubble
-#meter_tick_creating_node=Creating Bubble node
-#meter_tick_launching_node=Launching Bubble node
-#meter_tick_preparing_roles=Preparing installation parameters
-#meter_tick_preparing_install=Creating installation package
-#meter_tick_starting_install=Connecting to node to install Bubble
-#meter_tick_copying_ansible=Copying files required to install Bubble
-#meter_tick_running_ansible=Starting Bubble installation
-
-# Launch progress meter: install ticks
-meter_tick_ansible_deps=Mixing the pie filling...
-meter_tick_config_node=Filling the pie...
-meter_tick_nginx_dhparam=Gently weaving the lattice top crust...
-meter_tick_nginx_dh_conf=Glazing the top crust...
-meter_tick_nginx_certbot=Checking the temperature...
-meter_tick_bubble_db=Putting pie into the oven...
-meter_tick_algo_sh=Baking the pie...
-meter_tick_restart_algo=Removing pie from the oven...
-meter_tick_mitmproxy_set_cert=Letting the pie cool a bit...
-meter_tick_touch_first_setup=Setting the table...
-meter_tick_ssh_keys=Ringing the bell...
-meter_tick_ready_check=Welcoming the guests...
-meter_tick_ready_check2=And what a lovely pie it is...
-#meter_tick_ansible_deps=Installing installer dependencies
-#meter_tick_config_node=Configuration installation
-#meter_tick_nginx_dhparam=Securing SSL libraries
-#meter_tick_nginx_dh_conf=Setting up web server
-#meter_tick_nginx_certbot=Installing SSL certificate
-#meter_tick_bubble_db=Writing bubble database
-#meter_tick_algo_sh=Setting up VPN
-#meter_tick_mitmproxy_set_cert=Installing CA certificate
-#meter_tick_snapshot_ansible=Snapshotting installation
-#meter_tick_touch_first_setup=Finalizing installation
-#meter_tick_ssh_keys=Setting up SSH keys
-
-# Launch progress meter: success marker
-meter_completed_ok=Bubble installation completed successfully! On to your Bubble!
-
-# Launch progress meter: errors
-meter_error_confirming_network_lock=Error confirming network lock
-meter_error_network_not_ready_for_setup=Cannot launch Bubble when network is not in 'setup' state
-meter_error_no_current_node_or_network=Current API does not have a node or network, cannot launch Bubble
-meter_error_plan_not_enabled=Account plan is not enabled, cannot launch Bubble
-meter_error_node_cloud_not_found=Compute cloud was not found, cannot launch Bubble
-meter_error_bubble_jar_not_found=Bubble jar file was not found, cannot launch Bubble
-meter_error_roles_not_found=Ansible roles were not found, cannot launch Bubble
-meter_error_starting_node=Error starting Bubble
-meter_error_unavailable_location=The target location is currently unavailable
-meter_error_retry_unavailable_location=The target location is currently unavailable, trying another nearby location
-meter_error_dns=Error setting DNS entries for Bubble
-meter_error_no_ip=Bubble started, but does not have an IP address or SSH key, cannot install Bubble
-meter_error_role_validation_errors=Validation of ansible roles failed, cannot install Bubble
-meter_error_canceled=Bubble installation was canceled
-meter_error_start_or_dns=Error starting Bubble or writing DNS records
-
-# Launch progress meter: catch-all for unknown/unmapped errors
-meter_error_unknown=An unknown error occurred
-
-# Help text shown during launch
-title_launch_help_html=Next Steps
-
-message_launch_help_html=
Your Bubble will take about 10 minutes to launch and configure itself.
-message_launch_help_apps=Please install the Bubble app on each of your devices to connect them to your Bubble. -message_launch_success_help_html=Congratulations! Your Bubble is now running.
-message_launch_support=Having trouble? Any questions? Check out our {{messages.link_support}} resources.
-message_launch_success_apps=Install the Bubble app on each of your devices to start using your Bubble! - -# Network statuses -msg_network_state_created=initialized -msg_network_state_starting=starting -msg_network_state_restoring=restoring -msg_network_state_running=running -msg_network_state_stopping=stopping -msg_network_state_error_stopping=error stopping -msg_network_state_stopped=stopped - -# Node states -msg_node_state_created=created -msg_node_state_starting=starting -msg_node_state_booting=booting -msg_node_state_booted=booted -msg_node_state_preparing_install=preparing installation -msg_node_state_installing=installing -msg_node_state_running=running -msg_node_state_stopping=stopping -msg_node_state_stopped=stopped -msg_node_state_unreachable=unreachable -msg_node_state_error_stopping=error stopping -msg_node_state_error_stopped=stopped with error -msg_node_state_unknown_error=unknown error - -# Devices -loading_devices=Loading devices... -table_title_devices=Devices -label_field_device_name=Name -label_field_device_type=Type -label_field_device_app=App -label_field_device_certificate=Certificate -label_field_device_enabled=Enabled? -label_field_device_vpn_config=VPN -label_field_device_security_level=Security Level -label_field_device_connection=Connection -label_field_device_connection_handshake=Last handshake -label_field_device_connection_handshake_ago=ago -label_field_device_transfer_sent=sent -label_field_device_transfer_received=received -label_field_device_ctime=Added -label_device_ctime_format={{MMM}} {{d}}, {{YYYY}} / {{h}}:{{m}}{{a}} -message_device_vpn_show_config=Show VPN connection info -message_device_vpn_download_conf=Download vpn.conf file -message_device_certificate=Download certificate -button_label_close_device_vpn_config=Close -label_field_device_help=Help -button_label_close_device_help=Close -message_no_devices=No Devices -form_title_add_device=Add Device -button_label_add_device=Add -button_label_remove_device=Remove -button_label_remove_device_icon=fa fa-trash-alt - -message_download_ca_cert=Download Certificate -message_download_app=Download App - -# Device types -device_type_uninitialized=Uninitialized -device_type_windows=Windows -device_type_macosx=Mac OS X -device_type_ios=iOS -device_type_android=Android -device_type_linux=Linux -device_type_other=Other -device_type_firefox=Firefox - -addable_device_types=ios|android|windows|macosx|linux -cert_device_types=ios|android|windows|macosx|linux|firefox - -# Device icons -device_type_icon_uninitialized=fas fas-question -device_type_icon_windows=fab fa-windows -device_type_icon_macosx=fab fa-apple -device_type_icon_ios=fab fa-apple -device_type_icon_android=fab fa-android -device_type_icon_linux=fab fa-linux -device_type_icon_other=fas fa-laptop-code -device_type_icon_firefox=fab fa-firefox - -# VPN configuration button -button_label_vpn_config_download_conf=Download vpn.conf -button_label_vpn_config_show_qr_code=Show QR code -button_label_vpn_config_unavailable=N/A - -# VPN configuration types -device_type_vpn_uninitialized=download_conf -device_type_vpn_windows=download_conf -device_type_vpn_macosx=download_conf -device_type_vpn_ios=show_qr_code -device_type_vpn_android=show_qr_code -device_type_vpn_linux=download_conf -device_type_vpn_other=download_conf -device_type_vpn_firefox=unavailable - -message_device_vpn_unavailable=Error: no VPN config - -# Device security levels -device_security_level_maximum=Maximum -device_security_level_maximum_description=Maximum protection. Unrecognized traffic is blocked. VPN apps enabled. -device_security_level_standard=Standard -device_security_level_standard_description=Standard protection. Unrecognized traffic is allowed. VPN apps enabled. -device_security_level_basic=Basic -device_security_level_basic_description=Basic protection. Unrecognized traffic is allowed. VPN apps disabled. -device_security_level_disabled=Off -device_security_level_disabled_description=No protection. Unrecognized traffic is allowed. VPN apps disabled. - -# Cert types -message_os_uninitialized=Uninitialized -message_os_macosx=Mac OS X -message_os_ios=iOS -message_os_windows=Windows -message_os_android=Android -message_os_linux=Linux -message_os_firefox=Firefox (desktop) -message_os_other=Generic device - -# Device help HTML -device_type_windows_help_html=How to connect a Windows system to your Bubble -device_type_macosx_help_html=How to connect a Mac OS X system to your Bubble -device_type_ios_help_html=How to connect an Apple iOS device to your Bubble -device_type_android_help_html=How to connect an Android device to your Bubble -device_type_linux_help_html=How to connect a Linux system to your Bubble -device_type_other_help_html=How to connect to your Bubble -# should never be seen... -device_type_uninitialized_help_html=How to connect to your Bubble -device_type_firefox_help_html=How to install your Bubble Certificate in Firefox - -# Apps -loading_apps=Loading apps... -table_title_apps=Apps -label_field_app_name=Name -label_field_app_description=Description -label_field_app_enabled=Enabled -button_label_app_enable=Enable -button_label_app_disable=Disable -message_no_apps=No Apps - -# Single App page -loading_app=Loading app... -table_title_app_sites=Sites -label_field_app_site_name=Site -label_field_app_site_description=Description -label_field_app_site_url=URL -message_app_site_url_wildcard=All Sites -label_field_app_site_enabled=Enabled -button_label_app_site_enable=Enable -button_label_app_site_disable=Disable -message_no_sites=No Sites - -# AppData -loading_app_data=Loading data... -table_title_app_views=App Views -date_format_app_data_epoch_time={{MM}}/{{dd}}/{{YYYY}} {{h}}:{{m}}{{a}} -date_format_app_data_expiration={{E}} {{MMM}} {{d}}, {{YYYY}} -message_app_data_no_expiration=None -button_label_app_data_delete_icon=fa fa-trash -message_app_data_previous_page=<< previous page << -message_app_data_next_page=>> next page >> -message_data_results={{appData.totalCount}} total records, showing page {{query.pageNumber}} of {{numPages}} -message_data_actions=Actions -message_no_data=No Data -option_all_devices=All Devices -button_label_app_data_refresh=Search - -# App Config -loading_app_config_data=Loading app configuration... -table_title_app_config_views=App Configuration -message_config_data_actions=Actions -message_no_config_data=No Configuration Information Found - -# AppSite -loading_app_site=Loading site... -table_title_app_site_view=App Site Views - -# Error messages from API server -err.action.required=No action provided -err.accountContactsJson.length=Account contacts length violation -err.accountOperationTimeout.required=Account operation timeout is required -err.accountOperationTimeout.tooLong=Account operation timeout cannot be longer than 3 days -err.accountOperationTimeout.tooShort=Account operation timeout cannot be shorter than 1 minute -err.accountPlan.callerCountryDisallowed=Your country is not currently supported by our platform -err.accountPlan.disabled=Account plan is not enabled -err.accountPlan.notFound=Account plan not found -err.accountPlan.noVerifiedContacts=Cannot proceed, no account contact information has yet been verified -err.admin.cannotRemoveAdminStatusFromSelf=You cannot remove admin status from your own account -err.allowedCountriesJson.length=Allowed countries list is too long -err.appMessages.length=App messages maximum length exceeded -err.assetId.invalid=App asset could not be retrieved -err.authenticator.cannotCreate=Cannot create authenticator -err.authenticator.configured=Only one authenticator can be configured -err.authenticator.invalid=Authenticator data is invalid -err.authenticator.notConfigured=Authenticator has not been configured -err.authenticatorTimeout.required=Authenticator timeout is required -err.authenticatorTimeout.tooLong=Authenticator timeout cannot be longer than 24 hours -err.authenticatorTimeout.tooShort=Authenticator timeout cannot be shorter than 1 minute -err.backup.cannotDelete=Cannot delete backup with its current status -err.backupCleaner.didNotRun=Backup cleaner did not run -err.backupCleaner.neverRun=Backup cleaner was never run -err.bound.invalid=Bound is invalid -err.bound.custom.invalid=Custom bound is invalid -err.bound.operation.invalid=Operator is invalid -err.bill.alreadyPaid=Bill has already been paid -err.cannotCreate=Create not allowed -err.cannotUpdate=Update not allowed -err.chargeName.required=Charge name is required -err.chargeName.length=Charge name is too long -err.cloud.publicDnsNotDns=DNS service has wrong cloud service type -err.cloudRegions.required=Cloud region is required -err.cloud.required=Cloud is required -err.cloudServiceType.required=Cloud type is required -err.cloudServiceType.invalid=Cloud type is invalid -err.cloudType.invalid=Cloud type is invalid -err.configJson.length=Configuration JSON is too long -err.contactType.required=Contact type is required -err.contact.authenticatorAuthFactorCannotBeChanged=Authenticator is always a required auth factor -err.contact.unverified=Cannot configure an unverified contact; verify first -err.country.invalid=Country is invalid, use a valid ISO 2-letter code -err.credentialsJson.length=Credentials JSON is too long -err.data.length=Data is too long -err.data.required=Data is required -err.data.invalid=Data is invalid -err.dataConfig.required=Data configuration is required -err.dataConfig.fields.required=Data configuration has presentation set but no fields are defined -err.dataConfig.views.required=Data configuration has presentation set but no views are defined -err.dataConfig.driver.required=Data configuration has presentation set but driver was not set -err.dataConfig.driver.invalid=Error initializing app data driver -err.dataConfig.configDriver.invalid=Error initializing app config driver -err.delegatedPayment.notDelegated=Error locating payment service -err.delegatedPayment.delegateNotFound=Error locating payment service -err.delete.cannotDeleteSelf=You cannot delete yourself (you've still got a chance to win) -err.delete.invalid=You cannot delete the account that owns the current network -err.delete.unpaidBills=Cannot delete account with unpaid bills -err.deletionPolicy.required=Deletion policy is required -err.description.length=Description is too long -err.deviceDir.notFound=Device status directory not found -err.deviceName.notUnique=Device name is already in use -err.deviceQRcode.qrCodeError=Error loading QR code -err.deviceQRcode.qrCodeFileNotFound=QR image file not found -err.deviceVpnConf.confError=Error loading VPN conf file -err.deviceVpnConf.confFileNotFound=VPN conf file not found -err.disallowedCountriesJson.length=Disallowed countries list is too long -err.dns.notFound=DNS cloud service not found -err.dns.required=DNS cloud service is required -err.domain.invalid=Network cannot be created in domain -err.domain.required=Domain is invalid -err.domainRole.alreadyExists=Cannot add role to domain, it is already included -err.download.error=Download error -err.download.noVerifiedContacts=Cannot download, no account contact information has yet been verified -err.driverClass.required=Driver class is required -err.driverConfigJson.length=Driver config JSON is too long -err.driver.required=Driver is required -err.email.invalid=Email address is invalid -err.email.required=Email address is required -err.expiration.cannotCreateSshKeyAlreadyExpired=Expiration date has already passed -err.footprint.required=Footprint is required -err.forkHost.notAllowed=Fork Host is not allowed -err.forkHost.invalid=Fork Host is not a valid hostname -err_forkHost_domainMismatch=Fork Host Domain was not selected domain -err.fqdn.domain.invalid=Domain not found for FQDN -err.fqdn.length=FQDN is too long -err.fqdn.network.invalid=network not found for FQDN -err.fqdn.outOfNetwork=FQDN is not in network -err.fqdn.invalid=FQDN is not valid -err.fqdn.plan.invalid=No plan found for network -err.fqdn.required=FQDN is required -err.geoService.unresolvable=Error resolving geo service -err.geoTimeService.notFound=GeoTime service not found -err.id.required=Parameter 'id' is required -err.info.invalid=Contact info is invalid (must be empty for authenticator) -err.info.required=Contact info is required -err.key.required=Key is required -err.label.invalid=Label is invalid -err.label.length=Label is too long -err.latlon.invalid=lat/lon is invalid -err.manageRules.errorFetchingUrl=Error retrieving URL -err.node.name.alreadyExists=A node already exists with the same FQDN -err.node.cannotStopLocalNode=Cannot stop local Bubble -err.nodeOperationTimeout.required=Node operation timeout is required -err.nodeOperationTimeout.tooLong=Node operation timeout cannot be longer than 3 days -err.nodeOperationTimeout.tooShort=Node operation timeout cannot be shorter than 1 minute -err.netlocation.invalid=Must specify both cloud and region, or neither -err.network.alreadyStarted=Network is already started -err.network.exists=A plan already exists for this network -err.networkKeys.noVerifiedContacts=Cannot download network keys, no account contact information has yet been verified -err.networkKeys.mustRequestFromSameNetwork=The current system is not your Bubble. Login to your Bubble and then make this request -err.networkKeys.invalid=Bubble Restore Key was not valid -err.networkName.required=Network name is required -err.network.cannotStartInCurrentState=Cannot proceed: network cannot be started in its current state -err.network.required=Network is required -err.networkRestore.nodesExist=Cannot restore when active nodes exist -err.networkRestore.notStopped=Cannot restore when network is running -err.nick.alreadyInUse=Nickname is already in use by another contact -err.nick.tooLong=Nickname cannot be longer than 100 characters -err.node.notInitialized=Node is not initialized -err.node.running=Node must be stopped before deleting -err.node.shutdownFailed=Node shutdown failed -err.node.stop.error=Error stopping node -err.currentPassword.invalid=Current password was invalid -err.paymentInfo.invalid=Payment information is invalid -err.paymentInfo.required=Payment information is required -err.paymentInfo.processingError=Processing payment information failed -err.paymentInfo.emailRequired=To use this payment method, please add an email address to your account -err.paymentInfo.verifiedEmailRequired=To use this payment method, please verify your email address -err.paymentMethod.required=Payment method is required -err.paymentMethod.notFound=Payment method not found -err.paymentMethod.cannotDeleteInUse=Cannot delete payment method that is currently in use -err.paymentMethodInfo.invalid=Payment method information is invalid -err.paymentMethodType.required=Payment method type is required -err.paymentMethodType.mismatch=Payment method type mismatch -err.paymentService.required=Payment service is required -err.paymentService.notPayment=Payment service is invalid -err.paymentService.notFound=Payment service is invalid -err.parent.notFound=Parent account does not exist -err.path.length=Path is too long -err.plan.required=Plan is required -err.plan.notFound=Plan not found -err.plan.planMaxAccountLimit=No more accounts can be created. Please upgrade your plan to create more accounts. -err.price.invalid=Price is invalid -err.price.length=Price is too long -err.privateKeyHash.length=Private key hash is too long -err.privateKey.length=Private key is too long -err.purchase.accountMismatch=Invalid payment -err.purchase.amountMismatch=Payment amount does not match billed amount -err.purchase.authNotFound=Payment authorization was not found -err.purchase.billNotFound=Bill not found -err.purchase.cardError=Error processing credit card payment -err.purchase.cardProcessingError=Error processing credit card payment -err.purchase.cardUnknownError=Error processing credit card payment -err.purchase.chargePendingError=Error processing credit card payment, charge is pending -err.purchase.chargeFailedError=Error processing credit card payment, charge failed -err.purchase.chargeAmountMismatch=Charge amounts were mismatched, cannot purchase -err.purchase.currencyMismatch=Payment currency does not match bill currency -err.purchase.paymentMethodMismatch=Payment method cannot be used for this purchase -err.purchase.paymentMethodNotFound=Payment method not found -err.purchase.paymentMethodNotSet=Payment method not set on plan -err.purchase.planNotFound=Account Plan not found -err.purchase.priceInvalid=Price is not valid -err.purchase.tokenNotFound=Invite code not found -err.purchase.tokenExpired=Invite code has expired -err.purchase.tokenUsed=Invite code has already been used -err.purchase.tokenInvalid=Error reading invite code -err.purchase.tokenMismatch=Error reading invite code -err.purchase.underReview=Charge is currently under review -err.purchase.declined=Purchase was unsuccessful -err.quantity.length=Quantity is too long -err.region.required=Region is required -err.region.notFound=Region not found -err.referralFrom.invalid=Referral account name is invalid -err.referralFrom.unavailable=No referral program is currently available -err.referralFrom.configurationError=The referral program is not set up correctly -err.referralFrom.notApplied=The referral program is not applicable to this purchase -err.refund.billNotFound=Bill not found, cannot refund. Please contact support -err.refund.paymentMethodNotFound=Payment method used for most recent bill not found, cannot refund. Please contact support -err.refund.paymentNotFound=Payment not found for most recent bill, cannot refund. Please contact support -err.refund.periodError=Refund period could not be determined. Please contact support -err.refund.planNotFound=Plan not found, cannot refund. Please contact support -err.refund.processingError=Error processing credit card refund -err.refund.refundFailedError=Error processing credit card refund, refund failed -err.refund.refundPendingError=Error processing credit card refund, refund is pending -err.refund.unpaidBillHasPayment=Unpaid bill shows payment, not issuing refund. Please contact support -err.refund.noRefundsForPromotionalCredits=Cannot issue refund for promotional credit -err.refund.unknownError=An error occurred processing your refund. Please contact support -err.remoteHost.length=Remote host is too long -err.remoteHost.required=Remote host is required -err.removeList.cannotRemoveBuiltinList=Cannot remove the built-in filter list -err.removeRule.noCustomList=Built-in filter list was not found -err.removeRule.multipleCustomLists=More than one built-in filter list was found -err.request.invalid=Request is invalid -err.restoreKey.invalid=Restore key is invalid -err.restoreKey.required=Restore key is required -err.role.notFound=Role not found -err.role.exists=Role already exists with this name -err.role.invalid=Role name mismatch -err.roles.required=Roles field is required -err.rproxy.urlformat=Invalid URL format -err.rule.alreadyExists=Rule already exists -err.rule.required=Rule is required -err.rule.invalid=Rule was not valid -err.sageNode.notFound=Sage node not found -err.sageNode.required=Sage node is required -err.sendErrors.cannotDisable=Cannot disable error reports for now. Once Bubble is out of beta you can turn this off. -err.sendMetrics.cannotDisable=Cannot disable metrics for now. Once Bubble is out of beta you can turn this off. -err.size.required=Size is required -err.sshPublicKey.alreadyExists=An SSH public key already exists with this name and/or value -err.sshPublicKey.notFound=SSH public key not found -err.sshPublicKey.notRSA=SSH public key is not an RSA public key -err.sshPublicKey.invalidRSA=SSH public key is not a valid RSA public key -err.sshPublicKey.required=SSH public key is required -err.sshPublicKey.expired=SSH public key has expired -err.sshPublicKeyHash.required=SSH public key hash is required -err.storage.required=Storage is required -err.storage.unavailable=Storage is unavailable -err.suspended.cannotSuspendSelf=You cannot suspend yourself -err.tag.invalid=Tag is invalid -err.tagsJson.length=Too many tags -err.tagString.length=Too many tags -err.tgzB64.invalid.noRolesDir=No roles directory found in tgz -err.tgzB64.invalid.wrongNumberOfFiles=Wrong number of files in tgz base directory -err.tgzB64.invalid.missingTasksMainYml=No tasks/main.yml file found for role in tgz -err.tgzB64.invalid.writingToStorage=Error writing tgz to storage -err.tgzB64.invalid.readingFromStorage=Error reading tgz from storage -err.tgzB64.required=tgzB64 is required -err.totpKey.length=TOTP key is too long -err.type.notVerifiable=Type is not verifiable -err.type.invalid=Type is invalid -err.type.required=Type is required -err.url.length=URL is too long -err.contentTypeRegex.length=Content-Type regex is too long -err.userAgentRegex.required=User-Agent regex is required -err.userAgentRegex.length=User-Agent regex is too long -err.urlRegex.length=URL regex is too long -err.urlRegex.required=URL regex is required -err.url.required=URL is required -err.url.invalid=URL is invalid -err.url.alreadyExists=URL already exists -err.url.cannotSetOnBuiltinList=Cannot set URL on the built-in filter list -err.userAgent.required=User-Agent header is empty -err.value.required=Value is required -err.version.mismatch=Version in URL does not match version in object -err.entity.classInFilename.invalid=Type of object could not be determined from filename. The part before the first dot or underscore should be a valid type name -err.entity.filenameExtension.invalid=The object file must be a JSON file containing one or more objects, or a Model Archive File (ending in .zip, .tar.gz, or .tgz) containing a manifest and corresponding object files. -err.entity.fileZipFormat.invalid=The Model Archive File was not in a readable format -err.entity.manifest.required=No manifest.json file was found within the Model Archive File - -# special values -msg.nextBillDate.pending=Pending -msg.nextBillDate.paymentsNotEnabled=Payments are not enabled on this system - -# bblock app errors -err.testUrl.required=URL is required -err.testUrl.loadingTestDriver=Error loading test driver -err.testUrl.invalid=URL is invalid -err.testUrl.invalidHostname=URL did not have a valid hostname - -# passthru app errors -err.addFqdn.passthruFqdnRequired=Domain or Hostname field is required -err.addFeed.feedUrlRequired=Feed URL is required -err.addFeed.emptyFqdnList=Feed URL was not found or contained no data - -# analytics app errors -err.addFilter.analyticsFilterRequired=Filter pattern is required - -# nodemanager errors -err.nodemanager.error=Error calling nodemanager -err.nodemanager.noPasswordSet=No nodemanager password is set -err.nodemanager.invalidPath=Path is invalid -err.nodemanager.nodeNotLocal=Target node must be this node diff --git a/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties b/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties deleted file mode 100644 index dce8406b..00000000 --- a/bubble-server/src/main/resources/message_templates/en_US/server/pre_auth/ResourceMessages.properties +++ /dev/null @@ -1,619 +0,0 @@ -# Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/ -# suppress inspection "UnusedProperty" for whole file -# most of these are referenced on the frontend -msg.global.title=Bubble - -# Truth values -message_true=True -message_false=False -message_null=null -message_undefined=undefined - -# Display of percent values has localized variations -label_percent={{percent}}% - -# Support -title_support=Bubble Support -support_preamble=To get help with Bubble: -support_site_link=Visit our Support Website -support_email_link=Send us an email -support_not_available=Sorry, no support options are available -link_support=Support - -# Cert checker -title_check_certificate=Bubble Certificate Verification -check_cert_null=Verifying certification installation... -check_cert_true=Your Bubble Certificate is properly installed -check_cert_false=Your Bubble Certificate is not properly installed - -# Legal page links -title_legal_topics=Legal Stuff -legal_topics=terms,privacy,source,license,3rdParty_licenses -legal_terms=Terms of Service -legal_terms_link=https://getbubblenow.com/terms/ -legal_privacy=Privacy Policy -legal_privacy_link=https://getbubblenow.com/privacy/ -legal_source=Bubble Source Code -legal_source_link=https://git.bubblev.org/bubblev/bubble -legal_license=Bubble Source License -legal_license_link=https://getbubblenow.com/license/ -legal_3rdParty_licenses=Third-Party Software Licenses -legal_3rdParty_licenses_link=https://getbubblenow.com/third-party-licenses/ - -message_truncated_show_ellipsis={{msg}}... - -# Date/Calendar names -label_date={{MMM}} {{d}}, {{YYYY}} -label_date_short={{M}}/{{d}}/{{YYYY}} -label_date_and_time={{MMM}} {{d}}, {{YYYY}} / {{h}}:{{m}}{{a}} -label_date_and_time_short={{M}}/{{d}}/{{YYYY}} {{h}}:{{m}}{{a}} -label_date_undefined=Date/time not set -label_date_day_half_am=AM -label_date_day_half_pm=PM -label_date_day_0=Sunday -label_date_day_1=Monday -label_date_day_2=Tuesday -label_date_day_3=Wednesday -label_date_day_4=Thursday -label_date_day_5=Friday -label_date_day_6=Saturday -label_date_day_short_0=Sun -label_date_day_short_1=Mon -label_date_day_short_2=Tue -label_date_day_short_3=Wed -label_date_day_short_4=Thu -label_date_day_short_5=Fri -label_date_day_short_6=Sat -label_date_month_0=January -label_date_month_1=February -label_date_month_2=March -label_date_month_3=April -label_date_month_4=May -label_date_month_5=June -label_date_month_6=July -label_date_month_7=August -label_date_month_8=September -label_date_month_9=October -label_date_month_10=November -label_date_month_11=December -label_date_month_short_0=Jan -label_date_month_short_1=Feb -label_date_month_short_2=Mar -label_date_month_short_3=Apr -label_date_month_short_4=May -label_date_month_short_5=Jun -label_date_month_short_6=Jul -label_date_month_short_7=Aug -label_date_month_short_8=Sep -label_date_month_short_9=Oct -label_date_month_short_10=Nov -label_date_month_short_11=Dec -label_date_month_number_0=1 -label_date_month_number_1=2 -label_date_month_number_2=3 -label_date_month_number_3=3 -label_date_month_number_4=5 -label_date_month_number_5=6 -label_date_month_number_6=7 -label_date_month_number_7=8 -label_date_month_number_8=9 -label_date_month_number_9=10 -label_date_month_number_10=11 -label_date_month_number_11=12 - -# constants used in vue datetime control -# Days of week for the control (1-7 == Monday-Sunday) differ from standard JavaScript (0-6 == Sunday-Saturday) -datecontrol_weekstart=7 -message_datecontrol_ok=OK -message_datecontrol_cancel=Cancel - -button_label_set_locale=Set Language -field_label_locale=Language -field_label_timezone=Time Zone - -# Menu -label_menu_dashboard=Dashboard -label_menu_dashboard_icon=fa fa-home -label_menu_admin=Admin -label_menu_admin_icon=fa fa-cog -label_menu_admin_users=Users -label_menu_admin_users_icon=fa fa-user-cog -label_menu_admin_model=System Objects -label_menu_admin_model_icon=fa fa-boxes -label_menu_admin_networks=User Bubbles -label_menu_admin_networks_icon=fa fa-dot-circle -label_menu_admin_bills=User Bills -label_menu_admin_bills_icon=fa fa-money-check-alt -label_menu_account=My Account -label_menu_account_icon=fa fa-user -label_menu_devices=Devices -label_menu_devices_icon=fa fa-mobile-alt -label_menu_apps=Apps -label_menu_apps_icon=fa fa-smile -label_menu_notifications=Notifications -label_menu_notifications_icon=fa fa-flag -label_menu_network=My Bubble -label_menu_networks=Bubbles -label_menu_networks_icon=fa fa-cloud -label_menu_bills=Bills -label_menu_bills_icon=fa fa-money-bill-wave -label_menu_logout=Log out -label_menu_logout_icon=fa fa-sign-out-alt - -# Locales -#locale_codes=en_US,fr_FR,es_ES,it_IT,de_DE,en_GB,es_US -locale_codes=en_US -locale_en_US=English (US) -locale_es_US=Spanish (US) -locale_es_ES=Spanish -locale_it_IT=Italian -locale_fr_FR=French -locale_de_DE=German -locale_en_GB=English (GB) -locale_detect=Auto Detect -err.locale.invalid=Locale is invalid -err.locale.length=Locale is too long -err.locale.required=Locale is required -err.timezone.unknown=An error occurred trying to determine the time zone -err.timezone.length=Time zone is too long -err.timezone.required=Time zone is required - -# Price periods and formats -price_period_monthly_name=monthly -price_period_monthly_unit=month -price_period_yearly_name=annually -price_period_yearly_unit=year -price_format={{messages['currency_symbol_'+currency.toUpperCase()]}}{{priceMajorUnits}}{{priceMinorUnits === 0 ? '' : priceMinorUnits < 10 ? '.0'+priceMinorUnits : '.'+priceMinorUnits}} {{messages['price_period_'+period+'_name']}} - -# Time units -units_second=second -units_seconds=seconds -units_seconds_short=s -units_minute=minute -units_minutes=minutes -units_minutes_short=m -units_hour=hour -units_hours=hours -units_hours_short=h -units_day=day -units_days=days -units_days_short=d - -currency_symbol_= -currency_symbol_USD=$ - -# Token errors -err.approvalToken.invalid=Code is incorrect or no longer valid -err.totpToken.invalid=Code is incorrect -err.totpToken.invalidActionTarget=Action target was invalid (expected 'account' or 'network') -err.totpToken.noSession=Session required for authenticator - -err.geoCodeService.notFound=GeoCode service not found -err.geoLocateService.notFound=GeoLocation service not found - -err.app.notFound=App not found -err.name.required=Name is required -err.name.notFound=Account not found -err.name.length=Name is too long -err.name.tooShort=Name must be at least 4 characters -err.name.tooLong=Name cannot be longer than 100 characters -err.name.planMaxAccountLimit=No more accounts can be created on this plan. Upgrade your plan or delete some accounts. -err.name.alreadyInUse=Name is already in use -err.name.reserved=Name is reserved -err.name.invalid=Name is invalid -err.name.networkNameAlreadyExists=Name is already in use -err.name.regexFailed=Name must start with a letter and can only contain letters, numbers, hyphens, periods and underscores -err.name.mismatch=Name mismatch -err.node.notReady=Bubble is not ready yet -err.password.required=Password is required -err.password.tooShort=Password must be at least 8 characters -err.password.invalid=Password must contain at least one letter, one number, and one special character -err.confirmPassword.mismatch=Password does not match -err.account.suspended=Account is suspended -err.account.locked=Account is locked -err.account.noParent=No parent account found -err.activation.request.required=Activation request object is required -err.activation.required=Bubble has not yet been activated -err.activation.alreadyDone=Bubble has already been activated -err.unlock.required=Bubble is locked -err.unlockKey.invalid=Unlock Key is invalid -err.user.exists=A user with this name already exists -err.user.noContact=No contact information provided for user -err.user.noAdmin=No admin account exists, cannot create another account -err.user.noSoleNode=Cannot create account, self-node was never initialized and multiple nodes exist -err.user.setSelfNodeFailed=Cannot create account, initialization of self-node failed -err.uuid.invalid=UUID is invalid -err.registration.disabled=Account registration is not enabled on this Bubble -err.register.alreadyLoggedIn=Cannot register a new account when logged in -err.name.registered=Username is already registered -err.contactType.required=Contact type is required -err.email.required=Email is required -err.email.invalid=Email is invalid -err.email.tooLong=Email is too long -err.email.registered=Email is already registered -err.phone.required=SMS Phone is required -err.phone.invalid=SMS Phone is invalid -err.phone.length=SMS Phone is too long -err.terms.required=You must agree to the legal terms to use this service -err.country.invalid=Country is invalid -err.parent.notFound=Parent account does not exist -err.accountInit.timeout=Timeout initializing new account - -# Activation form -form_title_activation=Activate Bubble -field_label_description=Description -field_label_domain=Domain Name -field_label_domain_description=Bubbles will be launched within this domain -field_label_domain_publicDns=DNS for this Domain -field_label_domain_publicDns_description=Select the DNS service that manages this domain -field_label_network_name=Network Name -field_label_show_all_config=Show All Configuration Settings - -form_section_title_local=Local -form_section_title_email=Email -form_section_title_sms=SMS -form_section_title_authenticator=Authenticator -form_section_title_dns=DNS -form_section_title_compute=Compute -form_section_title_storage=Storage -form_section_title_geoLocation=GeoLocation -form_section_title_geoCode=GeoCoding -form_section_title_geoTime=GeoTime -form_section_title_payment=Payment -form_section_title_domain=Domain -form_section_title_credentials=Credentials -form_section_title_config=Configuration - -button_label_activate=Activate - -# Activation cloud test errors -err.compute.testFailed=Error testing connection to Compute service -err.compute.unknownError=Error connecting to Compute service -err.geoCode.testFailed=Error testing connection to GeoCode service -err.geoCode.unknownError=Error connecting to GeoCode service -err.payment.testFailed=Error testing connection to Payment service -err.payment.unknownError=Error connecting to Payment service -err.geoLocation.testFailed=Error testing connection to GeoLocation service -err.geoLocation.unknownError=Error connecting to GeoLocation service -err.geoTime.testFailed=Error testing connection to GeoTime service -err.geoTime.unknownError=Error connecting to GeoTime service -err.email.testFailed=Error testing connection to Email service -err.email.unknownError=Error connecting to Email service -err.sms.testFailed=Error testing connection to SMS service -err.sms.unknownError=Error connecting to SMS service -err.authenticator.testFailed=Error testing connection to Authenticator service -err.authenticator.unknownError=Error connecting to Authenticator service -err.dns.testFailed=Error testing connection to DNS service -err.dns.unknownError=Error connecting to DNS service -err.storage.testFailed=Error testing connection to Storage service -err.storage.unknownError=Error connecting to Storage service - -# New UI buttons -button_label_sign_in=Sign In -button_label_sign_up=Sign Up -button_label_help=Help - -# New UI Labels for Login / Forgot Password -login_title=Sign In To Your Private Bubble -login_title_sage=Sign In To Manage Your Bubble -login_blurb=Just for you and completely safe -field_email_hint=Email you used to sign up -registration_label=Don't have an account? -field_label_enter_password=Enter Password - -forgot_password_blurb=We'll email you a reset link -button_label_forgot_password=Send reset password -forgot_password_login_link=Back to Login - -# New UI Labels for Registration -register_title=Sign Up for a Bubble: The Safest Place on the Internet -register_blurb=Block behavior tracking, ads and other rude behaviour. -register_field_label_email=Email address (will be your username) -field_label_password=Choose Password -field_password_hint=At least 8 characters, one letter, one number\n & one special character. -field_label_password_confirm=Retype Password -message_request_promoCode=Don't have a Beta Invite code? Request one here. -field_label_agreeToTerms=I agree to the Privacy Policy and Terms of Service. -field_label_sendInformation=Send me information about My Bubble -field_label_sendNews=Send me news about Bubble - -marketing_message_got_you_covered_title=We've Got You Covered -marketing_message_topics=browse_anon,no_borders,unlimited_devices,dedicated -marketing_message_browse_anon_icon= -marketing_message_browse_anon_color=#7a69e6 -marketing_message_browse_anon_background_color=rgba(122,105,230,0.3) -marketing_message_browse_anon_title=Browse Anonymously -marketing_message_browse_anon_content=BubbleVPN uses industrial-strength encryption to protect your data=IKEv2 with AES-GCM, SHA2, and P-256. - -marketing_message_no_borders_icon= -marketing_message_no_borders_color=#6a9ae8 -marketing_message_no_borders_background_color=rgba(106,154,232,0.3) -marketing_message_no_borders_title=Internet Without Borders -marketing_message_no_borders_content=Move your Bubble around the world. Access any content regardless of your location. - -marketing_message_unlimited_devices_icon= -marketing_message_unlimited_devices_color=#f767b4 -marketing_message_unlimited_devices_background_color=rgba(247, 103,180,0.3) -marketing_message_unlimited_devices_title=Unlimited Devices -marketing_message_unlimited_devices_content=There is no limit to the number of devices you can connect to your bubble. - -marketing_message_dedicated_icon= -marketing_message_dedicated_color=#76ce44 -marketing_message_dedicated_background_color=rgba(118,206,68,0.3) -marketing_message_dedicated_title=Dedicated, Private & Secure -marketing_message_dedicated_content=Your Bubble runs on its own dedicated system. Not even we have access to your Bubble. - -marketing_pricing_title=What does it cost? -marketing_pricing_options=personal,power,mega -marketing_pricing_common_options=Free 30-day Trial,Bubble App Suite Included,Connect Unlimited Devices,Dedicated Private VPN -marketing_pricing_period=/mo - -marketing_pricing_personal_title=Personal Bubble -marketing_pricing_personal_users=1 User Account -marketing_pricing_personal_price=1200 -marketing_pricing_personal_options=1 User Account,1TB/Month of Data Transfer -marketing_pricing_personal_link=/register?plan=bubble - -marketing_pricing_power_title=Power Plan -marketing_pricing_power_users=5 User Accounts -marketing_pricing_power_price=1900 -marketing_pricing_power_options=5 User Accounts,2TB/Month of Data Transfer -marketing_pricing_power_link=/register?plan=bubble_plus - -marketing_pricing_mega_title=Mega Plan -marketing_pricing_mega_users=10 User Accounts -marketing_pricing_mega_price=3100 -marketing_pricing_mega_options=10 User Accounts,3TB/Month of Data Transfer -marketing_pricing_mega_link=/register?plan=bubble_super - -# Old Login/Registration/Forgot Password -form_title_login=Login -field_label_username=Username -#field_label_password=Password -field_label_password_guidance=Password must be at least 8 characters long.