From 8599612499f49648a03cb54997a9a1adf348436e Mon Sep 17 00:00:00 2001 From: Grzegorz Leoniec Date: Tue, 18 Dec 2018 15:25:36 +0100 Subject: [PATCH] use locale env var for loading locale files --- nuxt.config.js | 4 +++- plugins/i18n.js | 2 +- plugins/vue-filters.js | 16 +++++++++++----- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/nuxt.config.js b/nuxt.config.js index 890f83140..c80b5fc0d 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -26,7 +26,9 @@ module.exports = { 'pages-slug' ], // pages to keep alive - keepAlivePages: ['index'] + keepAlivePages: ['index'], + // active locales + locales: ['en', 'de', 'nl', 'fr', 'es', 'pt', 'it', 'pl'] }, /* ** Headers of the page diff --git a/plugins/i18n.js b/plugins/i18n.js index f86028c5b..0ab8fe60b 100644 --- a/plugins/i18n.js +++ b/plugins/i18n.js @@ -62,7 +62,7 @@ export default ({ app, req, cookie, store }) => { } } - const availableLocales = ['de', 'en', 'nl', 'fr', 'pt', 'es'] + const availableLocales = process.env.locales const locale = availableLocales.indexOf(userLocale) >= 0 ? userLocale : 'en' if (locale !== 'en') { diff --git a/plugins/vue-filters.js b/plugins/vue-filters.js index f98cf2a4a..180497c2c 100644 --- a/plugins/vue-filters.js +++ b/plugins/vue-filters.js @@ -1,6 +1,6 @@ import Vue from 'vue' -import { enUS, de, nl, fr, es, pt } from 'date-fns/locale' +import { enUS, de, nl, fr, es, pt, pl } from 'date-fns/locale' import format from 'date-fns/format' import formatRelative from 'date-fns/formatRelative' import addSeconds from 'date-fns/addSeconds' @@ -13,25 +13,31 @@ export default ({ app }) => { nl: nl, fr: fr, es: es, - pt: pt + pt: pt, + pl: pl + } + const getLocalizedFormat = () => { + let locale = app.$i18n.locale() + locale = locales[locale] ? locale : 'en' + return locales[locale] } app.$filters = Object.assign(app.$filters || {}, { date: (value, fmt = 'dd. MMM yyyy') => { if (!value) return '' return format(new Date(value), fmt, { - locale: locales[app.$i18n.locale()] + locale: getLocalizedFormat() }) }, dateTime: (value, fmt = 'dd. MMM yyyy HH:mm') => { if (!value) return '' return format(new Date(value), fmt, { - locale: locales[app.$i18n.locale()] + locale: getLocalizedFormat() }) }, relativeDateTime: value => { if (!value) return '' return formatRelative(new Date(value), new Date(), { - locale: locales[app.$i18n.locale()] + locale: getLocalizedFormat() }) }, number: (