summaryrefslogtreecommitdiff
path: root/src/i18n.js
diff options
context:
space:
mode:
authorDixsie Wolmers <dixsie@ibm.com>2020-01-31 05:58:37 +0300
committerGunnar Mills <gmills@us.ibm.com>2020-02-13 17:55:41 +0300
commitcbcd2136cd80395eff898738747c52c4b301fd56 (patch)
tree2d8af955bb96a5a0e8bec1cbc194debe2a777b0e /src/i18n.js
parentdb6fd25ff19210261f9b3ae25c6bcd383b5b836f (diff)
downloadwebui-vue-cbcd2136cd80395eff898738747c52c4b301fd56.tar.xz
Set up initial language translation
- Add i18n internationalization plugin - Create json files for group 0 English and Spanish - Uses $t method to set up initial translations on login page - Meta title is translated using i18n in App.vue and PageTitle.Vue Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Ifce9f5e54d96f8b2a13239ad6178892f99fc4537
Diffstat (limited to 'src/i18n.js')
-rw-r--r--src/i18n.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/i18n.js b/src/i18n.js
new file mode 100644
index 00000000..09b3f4ca
--- /dev/null
+++ b/src/i18n.js
@@ -0,0 +1,29 @@
+import Vue from 'vue';
+import VueI18n from 'vue-i18n';
+
+Vue.use(VueI18n);
+
+function loadLocaleMessages() {
+ const locales = require.context(
+ './locales',
+ true,
+ /[A-Za-z0-9-_,\s]+\.json$/i
+ );
+ const messages = {};
+ locales.keys().forEach(key => {
+ const matched = key.match(/([A-Za-z0-9-_]+)\./i);
+ if (matched && matched.length > 1) {
+ const locale = matched[1];
+ messages[locale] = locales(key);
+ }
+ });
+ return messages;
+}
+
+export default new VueI18n({
+ // default language is English
+ locale: 'en',
+ // locale messages with a message key that doesn't exist will fallback to English
+ fallbackLocale: 'en',
+ messages: loadLocaleMessages()
+});