Update language json structure

Restructure language file to use consistent pattern
across pages following loose guidelines.

- Create buckets for common global labels
- Create common component objects–appHeader, appNavigation,
  appPageTitle
- Page specific labels should be nested in an object with a
  key prefixed with 'page' followed by the page title
- Any 'major' child components should be nested inside page
  specific objects
- Avoid any complex linked locale messages
- Alphabetize object keys, alphabetize nested properties at
  end of object block

Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: Ie4222b3ce24dec7af31b55b5a77425ca2f492789
diff --git a/src/components/Global/InputPasswordToggle.vue b/src/components/Global/InputPasswordToggle.vue
index 8c52252..3199cab 100644
--- a/src/components/Global/InputPasswordToggle.vue
+++ b/src/components/Global/InputPasswordToggle.vue
@@ -2,7 +2,7 @@
   <div class="input-password-toggle-container">
     <slot></slot>
     <b-button
-      :aria-label="$t('ariaLabels.showPassword')"
+      :aria-label="$t('global.ariaLabel.showPassword')"
       variant="link"
       :class="{ isVisible: isVisible }"
       @click="toggleVisibility"
diff --git a/src/components/Global/TableToolbar.vue b/src/components/Global/TableToolbar.vue
index fc3736d..e28151c 100644
--- a/src/components/Global/TableToolbar.vue
+++ b/src/components/Global/TableToolbar.vue
@@ -3,7 +3,7 @@
     <div v-if="isToolbarActive" class="toolbar-container">
       <div class="toolbar-content">
         <p class="toolbar-selected">
-          {{ selectedItemsCount }} {{ $t('global.actions.selected') }}
+          {{ selectedItemsCount }} {{ $t('global.action.selected') }}
         </p>
         <div class="toolbar-actions d-flex">
           <b-button
@@ -20,7 +20,7 @@
             class="d-block"
             @click="$emit('clearSelected')"
           >
-            {{ $t('global.actions.cancel') }}
+            {{ $t('global.action.cancel') }}
           </b-button>
         </div>
       </div>
diff --git a/src/components/Mixins/BVToastMixin.js b/src/components/Mixins/BVToastMixin.js
index a46f5e5..4fedc9a 100644
--- a/src/components/Mixins/BVToastMixin.js
+++ b/src/components/Mixins/BVToastMixin.js
@@ -2,7 +2,7 @@
 
 const BVToastMixin = {
   methods: {
-    successToast(message, title = i18n.t('global.response.success')) {
+    successToast(message, title = i18n.t('global.status.success')) {
       this.$root.$bvToast.toast(message, {
         title,
         variant: 'success',
@@ -11,7 +11,7 @@
         solid: true
       });
     },
-    errorToast(message, title = i18n.t('global.response.error')) {
+    errorToast(message, title = i18n.t('global.status.error')) {
       this.$root.$bvToast.toast(message, {
         title,
         variant: 'danger',
@@ -20,7 +20,7 @@
         solid: true
       });
     },
-    warningToast(message, title = i18n.t('global.response.warning')) {
+    warningToast(message, title = i18n.t('global.status.warning')) {
       this.$root.$bvToast.toast(message, {
         title,
         variant: 'warning',
diff --git a/src/locales/en.json b/src/locales/en.json
index f392f4e..c94e194 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -1,91 +1,114 @@
 {
   "global": {
-    "formField": {
-      "fieldRequired": "Field required",
-      "valueMustBeBetween": "Value must be between %{min} – %{max}",
-      "mustBeAtLeast": "Must be at least %{value}"
-    },
-    "on": "on",
-    "off": "off",
-    "state": {
-      "notAvailable": "Not available",
-      "notEnabled": "Not enabled"
-    },
-    "actions": {
+    "action": {
       "confirm": "Confirm",
       "cancel": "Cancel",
       "delete": "Delete",
+      "disable": "Disable",
+      "enable": "Enable",
       "save": "Save",
       "selected": "Selected"
     },
-    "response": {
-      "success": "Success",
+    "ariaLabel": {
+      "showPassword": "Show password as plain text. Note: this will visually expose your password on the screen."
+    },
+    "form": {
+      "fieldRequired": "Field required",
+      "mustBeAtLeast": "Must be at least %{value}",
+      "selectAnOption": "Select an option",
+      "valueMustBeBetween": "Value must be between %{min} – %{max}"
+    },
+    "status": {
+      "disabled": "Disabled",
+      "enabled": "Enabled",
       "error": "Error",
+      "notAvailable": "Not available",
+      "off": "Off",
+      "on": "On",
+      "success": "Success",
       "warning": "Warning"
     }
   },
-  "ariaLabels": {
-    "showPassword": "Show password as plain text. Note: this will visually expose your password on the screen."
+  "appHeader": {
+    "health": "Health",
+    "logOut": "Log out",
+    "power": "Power",
+    "refresh": "Refresh"
   },
-  "pageTitle": {
-    "localUserMgmt": "Local user management",
+  "appNavigation": {
+    "accessControl": "Access Control",
+    "configuration": "Configuration",
+    "control": "Control",
+    "health": "Health",
+    "localUserManagement": "@appPageTitle.localUserManagement",
+    "overview": "@appPageTitle.overview",
+    "rebootBmc": "@appPageTitle.rebootBmc"
+  },
+  "appPageTitle": {
+    "localUserManagement": "Local user management",
     "login": "Login",
     "overview": "Overview",
     "unauthorized": "Unauthorized",
     "rebootBmc": "Reboot BMC"
   },
-  "login": {
-    "language": {
-      "label": "Language"
+  "pageLocalUserManagement": {
+    "accountPolicySettings": "Account policy settings",
+    "modal": {
+      "automaticAfterTimeout": "Automatic after timeout",
+      "manual": "Manual",
+      "maxFailedLoginAttempts": "Max failed login attempts",
+      "timeoutDurationSeconds": "Timeout duration (seconds)",
+      "userUnlockMethod": "User unlock method"
     },
-    "languages": {
-      "select": "Select an option",
-      "english": "English",
-      "spanish": "Spanish"
-    },
-    "logIn": {
-      "label": "Log in"
-    },
-    "errorMsg": {
+    "toast": {
+      "errorDeleteUsers": "Error deleting %{count} user. | Error deleting %{count} users.",
+      "errorDisableUsers": "Error disabling %{count} user. | Error disabling %{count} users.",
+      "errorEnableUsers": "Error enabling %{count} user. | Error enabling %{count} users.",
+      "errorSaveSettings": "Error saving account settings.",
+      "successDeleteUsers": "Successfully deleted %{count} user. | Successfully deleted %{count} users.",
+      "successDisableUsers": "Successfully disabled %{count} user. | Successfully disabled %{count} users.",
+      "successEnableUsers": "Successfully enabled %{count} user. | Successfully enabled %{count} users.",
+      "successSaveSettings": "Successfully saved account settings."
+    }
+  },
+  "pageLogin": {
+    "language": "Language",
+    "logIn": "Log in",
+    "password": "Password",
+    "username": "Username",
+    "alert": {
       "title": "Invalid username or password.",
       "action": "Please try again."
     },
-    "password": {
-      "label": "Password",
-      "validator": "@:global.formField.fieldRequired"
-    },
-    "username": {
-      "label": "Username",
-      "validator": "@:global.formField.fieldRequired"
+    "form": {
+      "english": "English",
+      "spanish": "Spanish"
     }
   },
-  "overview": {
+  "pageOverview": {
+    "bmcInformation": "BMC information",
+    "firmwareVersion": "Firmware version",
+    "highPriorityEvents": "High priority events",
+    "manufacturer": "Manufacturer",
+    "model": "Model",
+    "networkInformation": "Network information",
+    "powerCap": "Power cap",
+    "powerConsumption": "Power consumption",
+    "serialNumber": "Serial number",
+    "serverInformation": "Server information",
     "events": {
-      "noHighEventsMsg": "There are no high priority events to display at this time.",
       "date": "Date",
       "description": "Description",
       "id": "ID",
+      "noHighEventsMsg": "There are no high priority events to display at this time.",
       "refCode": "Reference code",
       "viewAllButton": "View all event logs"
     },
-    "firmwareVersion": "Firmware version",
-    "manufacturer": "Manufacturer",
-    "model": "Model",
     "network": {
       "hostname": "Hostname",
       "ipAddress": "IP address",
       "macAddress": "MAC address"
     },
-    "powerCap": "Power cap",
-    "powerConsumption": "Power consumption",
-    "sectionTitle": {
-      "bmcInformation": "BMC information",
-      "highPriorityEvents": "High priority events",
-      "networkInformation": "Network information",
-      "powerConsumption": "@:overview.powerConsumption",
-      "serverInformation": "Server information"
-    },
-    "serialNumber": "Serial number",
     "quicklinks": {
       "bmcTime": "BMC time",
       "editNetworkSettings": "Edit network settings",
@@ -94,40 +117,15 @@
     }
   },
   "pageRebootBmc": {
-    "rebootInformation": "When you reboot the BMC, your web browser loses contact with the BMC for several minutes. When the BMC is back online, you may need to log in again.",
     "rebootBmc": "Reboot BMC",
+    "rebootInformation": "When you reboot the BMC, your web browser loses contact with the BMC for several minutes. When the BMC is back online, you may need to log in again.",
     "modal": {
-      "confirmTitle": "Confirm BMC reboot",
-      "confirmMessage": "Are you sure you want to reboot the BMC?"
+      "confirmMessage": "Are you sure you want to reboot the BMC?",
+      "confirmTitle": "Confirm BMC reboot"
     },
-    "toastMessages": {
-      "successRebootStart": "Rebooting BMC.",
-      "errorRebootStart": "Error rebooting BMC."
-    }
-  },
-  "localUserManagement": {
-    "accountPolicySettings": "Account policy settings",
-    "tableActions": {
-      "delete": "@:global.actions.delete",
-      "enable": "Enable",
-      "disable": "Disable"
-    },
-    "toastMessages": {
-      "successDeleteUsers": "Successfully deleted %{count} user. | Successfully deleted %{count} users.",
-      "errorDeleteUsers": "Error deleting %{count} user. | Error deleting %{count} users.",
-      "successEnableUsers": "Successfully enabled %{count} user. | Successfully enabled %{count} users.",
-      "errorEnableUsers": "Error enabling %{count} user. | Error enabling %{count} users.",
-      "successDisableUsers": "Successfully disabled %{count} user. | Successfully disabled %{count} users.",
-      "errorDisableUsers": "Error disabling %{count} user. | Error disabling %{count} users.",
-      "successSaveSettings": "Successfully saved account settings.",
-      "errorSaveSettings": "Error saving account settings."
-    },
-    "modals": {
-      "manual": "Manual",
-      "automaticAfterTimeout": "Automatic after timeout",
-      "timeoutDurationSeconds": "Timeout duration (seconds)",
-      "maxFailedLoginAttempts": "Max failed login attempts",
-      "userUnlockMethod": "User unlock method"
+    "toast": {
+      "errorRebootStart": "Error rebooting BMC.",
+      "successRebootStart": "Rebooting BMC."
     }
   }
 }
\ No newline at end of file
diff --git a/src/locales/es.json b/src/locales/es.json
index 30d1fd1..48ed774 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -1,38 +1,27 @@
 {
   "global": {
-    "formField": {
-      "validator": "Campo requerido"
+    "form": {
+      "fieldRequired": "Campo requerido"
     }
   },
-  "login": {
-    "language": {
-      "label": "Idioma"
-    },
-    "languages": {
-      "select": "Seleccione una opción",
-      "english": "Inglés",
-      "spanish": "Español"
-    },
-    "logIn": {
-      "label": "Iniciar sesión"
-    },
-    "errorMsg": {
-      "title": "Usuario o contraseña invalido.",
-      "action": "Inténtalo de nuevo."
-    },
-    "password": {
-      "label": "Contraseña",
-      "validator": "@:global.formField.validator"
-    },
-    "username": {
-      "label": "Nombre de usuario",
-      "validator": "@:global.formField.validator"
-    }
-  },
-  "pageTitle": {
+  "appPageTitle": {
     "localUserMgmt": "Administración de usuarios locales",
     "login": "Inicio de sesión",
     "overview": "Información general",
     "unauthorized": "No autorizado"
+  },
+  "pageLogin": {
+    "language": "Idioma",
+    "logIn": "Iniciar sesión",
+    "password": "Contraseña",
+    "username": "Nombre de usuario",
+    "alert": {
+      "title": "Usuario o contraseña invalido.",
+      "action": "Inténtalo de nuevo."
+    },
+    "form": {
+      "english": "Inglés",
+      "spanish": "Español"
+    }
   }
 }
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 9a30e97..dda4daf 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -6,7 +6,7 @@
 Vue.use(VueRouter);
 
 // Meta title is translated using i18n in App.vue and PageTitle.Vue
-// Example meta: {title: 'pageTitle.overview'}
+// Example meta: {title: 'appPageTitle.overview'}
 const routes = [
   {
     path: '/',
@@ -20,7 +20,7 @@
         path: '',
         component: () => import('@/views/Overview'),
         meta: {
-          title: 'pageTitle.overview'
+          title: 'appPageTitle.overview'
         }
       },
       {
@@ -28,7 +28,7 @@
         name: 'local-users',
         component: () => import('@/views/AccessControl/LocalUserManagement'),
         meta: {
-          title: 'pageTitle.localUserMgmt'
+          title: 'appPageTitle.localUserManagement'
         }
       },
       {
@@ -36,7 +36,7 @@
         name: 'reboot-bmc',
         component: () => import('@/views/Control/RebootBmc'),
         meta: {
-          title: 'pageTitle.rebootBmc'
+          title: 'appPageTitle.rebootBmc'
         }
       },
       {
@@ -44,7 +44,7 @@
         name: 'unauthorized',
         component: () => import('@/views/Unauthorized'),
         meta: {
-          title: 'pageTitle.unauthorized'
+          title: 'appPageTitle.unauthorized'
         }
       }
     ]
@@ -54,7 +54,7 @@
     name: 'login',
     component: () => import('@/views/Login'),
     meta: {
-      title: 'pageTitle.login'
+      title: 'appPageTitle.login'
     }
   }
 ];
diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js
index 7ad3ff5..ab314fb 100644
--- a/src/store/modules/AccessControl/LocalUserMangementStore.js
+++ b/src/store/modules/AccessControl/LocalUserMangementStore.js
@@ -154,7 +154,7 @@
 
             if (successCount) {
               const message = i18n.tc(
-                'localUserManagement.toastMessages.successDeleteUsers',
+                'pageLocalUserManagement.toast.successDeleteUsers',
                 successCount
               );
               toastMessages.push({ type: 'success', message });
@@ -162,7 +162,7 @@
 
             if (errorCount) {
               const message = i18n.tc(
-                'localUserManagement.toastMessages.errorDeleteUsers',
+                'pageLocalUserManagement.toast.errorDeleteUsers',
                 errorCount
               );
               toastMessages.push({ type: 'error', message });
@@ -197,7 +197,7 @@
 
             if (successCount) {
               const message = i18n.tc(
-                'localUserManagement.toastMessages.successEnableUsers',
+                'pageLocalUserManagement.toast.successEnableUsers',
                 successCount
               );
               toastMessages.push({ type: 'success', message });
@@ -205,7 +205,7 @@
 
             if (errorCount) {
               const message = i18n.tc(
-                'localUserManagement.toastMessages.errorEnableUsers',
+                'pageLocalUserManagement.toast.errorEnableUsers',
                 errorCount
               );
               toastMessages.push({ type: 'error', message });
@@ -240,7 +240,7 @@
 
             if (successCount) {
               const message = i18n.tc(
-                'localUserManagement.toastMessages.successDisableUsers',
+                'pageLocalUserManagement.toast.successDisableUsers',
                 successCount
               );
               toastMessages.push({ type: 'success', message });
@@ -248,7 +248,7 @@
 
             if (errorCount) {
               const message = i18n.tc(
-                'localUserManagement.toastMessages.errorDisableUsers',
+                'pageLocalUserManagement.toast.errorDisableUsers',
                 errorCount
               );
               toastMessages.push({ type: 'error', message });
@@ -274,13 +274,11 @@
         .patch('/redfish/v1/AccountService', data)
         //GET new settings to update view
         .then(() => dispatch('getAccountSettings'))
-        .then(() =>
-          i18n.t('localUserManagement.toastMessages.successSaveSettings')
-        )
+        .then(() => i18n.t('pageLocalUserManagement.toast.successSaveSettings'))
         .catch(error => {
           console.log(error);
           const message = i18n.t(
-            'localUserManagement.toastMessages.errorSaveSettings'
+            'pageLocalUserManagement.toast.errorSaveSettings'
           );
           throw new Error(message);
         });
diff --git a/src/store/modules/Control/ControlStore.js b/src/store/modules/Control/ControlStore.js
index f641577..9b2e459 100644
--- a/src/store/modules/Control/ControlStore.js
+++ b/src/store/modules/Control/ControlStore.js
@@ -8,12 +8,10 @@
       const data = { ResetType: 'GracefulRestart' };
       return await api
         .post('/redfish/v1/Managers/bmc/Actions/Manager.Reset', data)
-        .then(() => i18n.t('pageRebootBmc.toastMessages.successRebootStart'))
+        .then(() => i18n.t('pageRebootBmc.toast.successRebootStart'))
         .catch(error => {
           console.log(error);
-          throw new Error(
-            i18n.t('pageRebootBmc.toastMessages.errorRebootStart')
-          );
+          throw new Error(i18n.t('pageRebootBmc.toast.errorRebootStart'));
         });
     }
   }
diff --git a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue
index ee2ec43..7b337a4 100644
--- a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue
+++ b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue
@@ -139,15 +139,15 @@
       tableToolbarActions: [
         {
           value: 'delete',
-          labelKey: 'localUserManagement.tableActions.delete'
+          labelKey: 'global.action.delete'
         },
         {
           value: 'enable',
-          labelKey: 'localUserManagement.tableActions.enable'
+          labelKey: 'global.action.enable'
         },
         {
           value: 'disable',
-          labelKey: 'localUserManagement.tableActions.disable'
+          labelKey: 'global.action.disable'
         }
       ]
     };
diff --git a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue
index 2e41b29..650cd56 100644
--- a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue
+++ b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue
@@ -2,8 +2,8 @@
   <b-modal
     id="modal-settings"
     ref="modal"
-    :title="$t('localUserManagement.accountPolicySettings')"
-    :ok-title="$t('global.actions.save')"
+    :title="$t('pageLocalUserManagement.accountPolicySettings')"
+    :ok-title="$t('global.action.save')"
     @ok="onOk"
     @hidden="resetForm"
   >
@@ -12,12 +12,14 @@
         <b-row>
           <b-col>
             <b-form-group
-              :label="$t('localUserManagement.modals.maxFailedLoginAttempts')"
+              :label="
+                $t('pageLocalUserManagement.modal.maxFailedLoginAttempts')
+              "
               label-for="lockout-threshold"
             >
               <b-form-text id="lockout-threshold-help-block">
                 {{
-                  $t('global.formField.valueMustBeBetween', {
+                  $t('global.form.valueMustBeBetween', {
                     min: 0,
                     max: 65535
                   })
@@ -33,7 +35,7 @@
               />
               <b-form-invalid-feedback role="alert">
                 <template v-if="!$v.form.lockoutThreshold.required">
-                  {{ $t('global.formField.fieldRequired') }}
+                  {{ $t('global.form.fieldRequired') }}
                 </template>
                 <template
                   v-if="
@@ -42,7 +44,7 @@
                   "
                 >
                   {{
-                    $t('global.formField.valueMustBeBetween', {
+                    $t('global.form.valueMustBeBetween', {
                       min: 0,
                       max: 65535
                     })
@@ -53,7 +55,7 @@
           </b-col>
           <b-col>
             <b-form-group
-              :label="$t('localUserManagement.modals.userUnlockMethod')"
+              :label="$t('pageLocalUserManagement.modal.userUnlockMethod')"
             >
               <b-form-radio
                 v-model="form.unlockMethod"
@@ -62,7 +64,7 @@
                 :value="0"
                 @input="$v.form.unlockMethod.$touch()"
               >
-                {{ $t('localUserManagement.modals.manual') }}
+                {{ $t('pageLocalUserManagement.modal.manual') }}
               </b-form-radio>
               <b-form-radio
                 v-model="form.unlockMethod"
@@ -70,11 +72,13 @@
                 :value="1"
                 @input="$v.form.unlockMethod.$touch()"
               >
-                {{ $t('localUserManagement.modals.automaticAfterTimeout') }}
+                {{ $t('pageLocalUserManagement.modal.automaticAfterTimeout') }}
               </b-form-radio>
               <div class="mt-3 ml-4">
                 <b-form-text id="lockout-duration-help-block">
-                  {{ $t('localUserManagement.modals.timeoutDurationSeconds') }}
+                  {{
+                    $t('pageLocalUserManagement.modal.timeoutDurationSeconds')
+                  }}
                 </b-form-text>
                 <b-form-input
                   v-model.number="form.lockoutDuration"
@@ -86,10 +90,10 @@
                 />
                 <b-form-invalid-feedback role="alert">
                   <template v-if="!$v.form.lockoutDuration.required">
-                    {{ $t('global.formField.fieldRequired') }}
+                    {{ $t('global.form.fieldRequired') }}
                   </template>
                   <template v-else-if="!$v.form.lockoutDuration.minvalue">
-                    {{ $t('global.formField.mustBeAtLeast', { value: 1 }) }}
+                    {{ $t('global.form.mustBeAtLeast', { value: 1 }) }}
                   </template>
                 </b-form-invalid-feedback>
               </div>
diff --git a/src/views/Control/RebootBmc/RebootBmc.vue b/src/views/Control/RebootBmc/RebootBmc.vue
index e301f0d..5d6b42c 100644
--- a/src/views/Control/RebootBmc/RebootBmc.vue
+++ b/src/views/Control/RebootBmc/RebootBmc.vue
@@ -28,7 +28,7 @@
       this.$bvModal
         .msgBoxConfirm(this.$t('pageRebootBmc.modal.confirmMessage'), {
           title: this.$t('pageRebootBmc.modal.confirmTitle'),
-          okTitle: this.$t('global.actions.confirm')
+          okTitle: this.$t('global.action.confirm')
         })
         .then(confirmed => {
           if (confirmed) this.rebootBmc();
diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue
index d4fde8c..10ebb93 100644
--- a/src/views/Login/Login.vue
+++ b/src/views/Login/Login.vue
@@ -17,12 +17,12 @@
           <b-form class="login-form" novalidate @submit.prevent="login">
             <b-alert class="login-error" :show="authError" variant="danger">
               <p id="login-error-alert">
-                <strong>{{ $t('login.errorMsg.title') }}</strong>
-                <span>{{ $t('login.errorMsg.action') }}</span>
+                <strong>{{ $t('pageLogin.alert.title') }}</strong>
+                <span>{{ $t('pageLogin.alert.action') }}</span>
               </p>
             </b-alert>
             <div class="login-form__section">
-              <label for="language">{{ $t('login.language.label') }}</label>
+              <label for="language">{{ $t('pageLogin.language') }}</label>
               <b-form-select
                 id="language"
                 v-model="$i18n.locale"
@@ -30,7 +30,7 @@
               ></b-form-select>
             </div>
             <div class="login-form__section">
-              <label for="username">{{ $t('login.username.label') }}</label>
+              <label for="username">{{ $t('pageLogin.username') }}</label>
               <b-form-input
                 id="username"
                 v-model="userInfo.username"
@@ -43,12 +43,12 @@
               </b-form-input>
               <b-form-invalid-feedback role="alert">
                 <template v-if="!$v.userInfo.username.required">
-                  {{ $t('login.username.validator') }}
+                  {{ $t('global.form.fieldRequired') }}
                 </template>
               </b-form-invalid-feedback>
             </div>
             <div class="login-form__section">
-              <label for="password">{{ $t('login.password.label') }}</label>
+              <label for="password">{{ $t('pageLogin.password') }}</label>
               <b-form-input
                 id="password"
                 v-model="userInfo.password"
@@ -60,7 +60,7 @@
               </b-form-input>
               <b-form-invalid-feedback role="alert">
                 <template v-if="!$v.userInfo.password.required">
-                  {{ $t('login.password.validator') }}
+                  {{ $t('global.form.fieldRequired') }}
                 </template>
               </b-form-invalid-feedback>
             </div>
@@ -70,7 +70,7 @@
               type="submit"
               variant="primary"
               :disabled="disableSubmitButton"
-              >{{ $t('login.logIn.label') }}</b-button
+              >{{ $t('pageLogin.logIn') }}</b-button
             >
           </b-form>
         </b-col>
@@ -94,14 +94,14 @@
       },
       disableSubmitButton: false,
       languages: [
-        { value: null, text: this.$t('login.languages.select') },
+        { value: null, text: this.$t('global.form.selectAnOption') },
         {
           value: 'en',
-          text: this.$t('login.languages.english')
+          text: this.$t('pageLogin.form.english')
         },
         {
           value: 'es',
-          text: this.$t('login.languages.spanish')
+          text: this.$t('pageLogin.form.spanish')
         }
       ]
     };
diff --git a/src/views/Overview/Overview.vue b/src/views/Overview/Overview.vue
index 17d6684..5d2ede5 100644
--- a/src/views/Overview/Overview.vue
+++ b/src/views/Overview/Overview.vue
@@ -6,13 +6,11 @@
     </div>
     <b-row>
       <b-col>
-        <page-section
-          :section-title="$t('overview.sectionTitle.serverInformation')"
-        >
+        <page-section :section-title="$t('pageOverview.bmcInformation')">
           <b-row>
             <b-col>
               <dl>
-                <dt>Firmware version</dt>
+                <dt>{{ $t('pageOverview.firmwareVersion') }}</dt>
                 <dd>{{ bmcActiveVersion }}</dd>
               </dl>
             </b-col>
@@ -21,7 +19,7 @@
         <b-row>
           <b-col>
             <page-section
-              :section-title="$t('overview.sectionTitle.networkInformation')"
+              :section-title="$t('pageOverview.networkInformation')"
             >
               <overview-network />
             </page-section>
@@ -29,61 +27,55 @@
         </b-row>
       </b-col>
       <b-col>
-        <page-section section-title="Server information">
+        <page-section :section-title="$t('pageOverview.serverInformation')">
           <b-row>
             <b-col sm="6">
               <dl>
-                <dt>{{ $t('overview.model') }}</dt>
+                <dt>{{ $t('pageOverview.model') }}</dt>
                 <dd>{{ serverModel }}</dd>
               </dl>
             </b-col>
             <b-col sm="6">
               <dl>
-                <dt>{{ $t('overview.manufacturer') }}</dt>
+                <dt>{{ $t('pageOverview.manufacturer') }}</dt>
                 <dd>{{ serverManufacturer }}</dd>
               </dl>
             </b-col>
             <b-col sm="6">
               <dl>
-                <dt>{{ $t('overview.serialNumber') }}</dt>
+                <dt>{{ $t('pageOverview.serialNumber') }}</dt>
                 <dd>{{ serverSerialNumber }}</dd>
               </dl>
             </b-col>
             <b-col sm="6">
               <dl>
-                <dt>{{ $t('overview.firmwareVersion') }}</dt>
+                <dt>{{ $t('pageOverview.firmwareVersion') }}</dt>
                 <dd>{{ hostActiveVersion }}</dd>
               </dl>
             </b-col>
           </b-row>
         </page-section>
-        <page-section
-          :section-title="$t('overview.sectionTitle.powerConsumption')"
-        >
+        <page-section :section-title="$t('pageOverview.powerConsumption')">
           <b-row>
             <b-col sm="6">
               <dl>
-                <dt>{{ $t('overview.powerConsumption') }}</dt>
-                <dd v-if="!powerConsumption">
-                  {{ $t('global.state.notAvailable') }}
-                </dd>
-                <dd v-else>{{ powerConsumption }} W</dd>
+                <dt>{{ $t('pageOverview.powerConsumption') }}</dt>
+                <dd v-if="powerConsumption">{{ powerConsumption }} W</dd>
+                <dd v-else>{{ $t('global.status.notAvailable') }}</dd>
               </dl>
             </b-col>
             <b-col sm="6">
               <dl>
-                <dt>{{ $t('overview.powerCap') }}</dt>
+                <dt>{{ $t('pageOverview.powerCap') }}</dt>
                 <dd v-if="powerCapData">{{ powerCapData }} W</dd>
-                <dd v-else>{{ $t('global.state.notEnabled') }}</dd>
+                <dd v-else>{{ $t('global.status.disabled') }}</dd>
               </dl>
             </b-col>
           </b-row>
         </page-section>
       </b-col>
     </b-row>
-    <page-section
-      :section-title="$t('overview.sectionTitle.highPriorityEvents')"
-    >
+    <page-section :section-title="$t('pageOverview.highPriorityEvents')">
       <overview-events />
     </page-section>
   </b-container>
diff --git a/src/views/Overview/OverviewEvents.vue b/src/views/Overview/OverviewEvents.vue
index b85142b..2004aa5 100644
--- a/src/views/Overview/OverviewEvents.vue
+++ b/src/views/Overview/OverviewEvents.vue
@@ -1,12 +1,12 @@
 <template>
   <div>
     <div v-if="eventLogData.length == 0">
-      {{ $t('overview.events.noHighEventsMsg') }}
+      {{ $t('pageOverview.events.noHighEventsMsg') }}
     </div>
     <div v-else>
       <!-- TODO: link to event log -->
       <b-button variant="link" href="#">
-        {{ $t('overview.events.viewAllButton') }}
+        {{ $t('pageOverview.events.viewAllButton') }}
       </b-button>
       <b-table
         head-variant="dark"
@@ -34,19 +34,19 @@
       fields: [
         {
           key: 'logId',
-          label: this.$t('overview.events.id')
+          label: this.$t('pageOverview.events.id')
         },
         {
           key: 'eventID',
-          label: this.$t('overview.events.refCode')
+          label: this.$t('pageOverview.events.refCode')
         },
         {
           key: 'timestamp',
-          label: this.$t('overview.events.date')
+          label: this.$t('pageOverview.events.date')
         },
         {
           key: 'description',
-          label: this.$t('overview.events.description')
+          label: this.$t('pageOverview.events.description')
         }
       ]
     };
diff --git a/src/views/Overview/OverviewNetwork.vue b/src/views/Overview/OverviewNetwork.vue
index 69a727d..ea338b3 100644
--- a/src/views/Overview/OverviewNetwork.vue
+++ b/src/views/Overview/OverviewNetwork.vue
@@ -1,7 +1,7 @@
 <template>
   <div>
     <div v-if="ethernetData.length === 0">
-      {{ $t('global.state.notAvailable') }}
+      {{ $t('global.status.notAvailable') }}
     </div>
     <div
       v-for="ethernetInterface in ethernetData"
@@ -14,19 +14,19 @@
       <b-row>
         <b-col md="12" lg="4">
           <dl>
-            <dt>{{ $t('overview.network.hostname') }}</dt>
+            <dt>{{ $t('pageOverview.network.hostname') }}</dt>
             <dd>{{ ethernetInterface.HostName }}</dd>
           </dl>
         </b-col>
         <b-col md="12" lg="4">
           <dl>
-            <dt>{{ $t('overview.network.macAddress') }}</dt>
+            <dt>{{ $t('pageOverview.network.macAddress') }}</dt>
             <dd>{{ ethernetInterface.MACAddress }}</dd>
           </dl>
         </b-col>
         <b-col md="12" lg="4">
           <dl>
-            <dt>{{ $t('overview.network.ipAddress') }}</dt>
+            <dt>{{ $t('pageOverview.network.ipAddress') }}</dt>
             <dd
               v-for="(ip, $index) in ethernetInterface.IPv4Addresses"
               :key="$index"
diff --git a/src/views/Overview/OverviewQuickLinks.vue b/src/views/Overview/OverviewQuickLinks.vue
index 036576d..0dc7adf 100644
--- a/src/views/Overview/OverviewQuickLinks.vue
+++ b/src/views/Overview/OverviewQuickLinks.vue
@@ -2,22 +2,22 @@
   <div class="quicklinks">
     <div>
       <dl>
-        <dt>{{ $t('overview.quicklinks.bmcTime') }}</dt>
+        <dt>{{ $t('pageOverview.quicklinks.bmcTime') }}</dt>
         <dd>{{ bmcTime | date('MMM, DD YYYY HH:MM:SS A ZZ') }}</dd>
       </dl>
     </div>
     <div>
       <!-- TODO: add toggle LED on/off funtionality -->
       <dl>
-        <dt>{{ $t('overview.quicklinks.serverLed') }}</dt>
+        <dt>{{ $t('pageOverview.quicklinks.serverLed') }}</dt>
         <dd>
           <b-form-checkbox
             v-model="serverLedChecked"
             name="check-button"
             switch
           >
-            <span v-if="!serverLedChecked">{{ $t('global.on') }}</span>
-            <span v-else>{{ $t('global.off') }}</span>
+            <span v-if="serverLedChecked">{{ $t('global.status.on') }}</span>
+            <span v-else>{{ $t('global.status.off') }}</span>
           </b-form-checkbox>
         </dd>
       </dl>
@@ -29,7 +29,7 @@
         variant="secondary"
         class="d-flex justify-content-between align-items-center"
       >
-        <span>{{ $t('overview.quicklinks.editNetworkSettings') }}</span>
+        <span>{{ $t('pageOverview.quicklinks.editNetworkSettings') }}</span>
         <icon-arrow-right />
       </b-button>
     </div>
@@ -40,7 +40,7 @@
         variant="secondary"
         class="d-flex justify-content-between align-items-center"
       >
-        <span>{{ $t('overview.quicklinks.solConsole') }}</span>
+        <span>{{ $t('pageOverview.quicklinks.solConsole') }}</span>
         <icon-arrow-right />
       </b-button>
     </div>