| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- import i18next from 'i18next'
 
- import Backend from 'i18next-chained-backend'
 
- import LocalStorageBackend from 'i18next-localstorage-backend'
 
- import i18nextXHR from 'i18next-xhr-backend'
 
- import VueI18Next from '@panter/vue-i18next'
 
- import _ from 'lodash'
 
- /* global siteConfig, graphQL */
 
- import localeQuery from 'gql/common/common-localization-query-translations.gql'
 
- export default {
 
-   VueI18Next,
 
-   init() {
 
-     i18next
 
-       .use(Backend)
 
-       .init({
 
-         backend: {
 
-           backends: [
 
-             LocalStorageBackend,
 
-             i18nextXHR
 
-           ],
 
-           backendOptions: [
 
-             {
 
-               expirationTime: 1000 * 60 * 60 * 24 // 24h
 
-             },
 
-             {
 
-               loadPath: '{{lng}}/{{ns}}',
 
-               parse: (data) => data,
 
-               ajax: (url, opts, cb, data) => {
 
-                 let langParams = url.split('/')
 
-                 graphQL.query({
 
-                   query: localeQuery,
 
-                   variables: {
 
-                     locale: langParams[0],
 
-                     namespace: langParams[1]
 
-                   }
 
-                 }).then(resp => {
 
-                   let ns = {}
 
-                   if (_.get(resp, 'data.localization.translations', []).length > 0) {
 
-                     resp.data.localization.translations.forEach(entry => {
 
-                       _.set(ns, entry.key, entry.value)
 
-                     })
 
-                   }
 
-                   return cb(ns, {status: '200'})
 
-                 }).catch(err => {
 
-                   console.error(err)
 
-                   return cb(null, {status: '404'})
 
-                 })
 
-               }
 
-             }
 
-           ]
 
-         },
 
-         defaultNS: 'common',
 
-         lng: siteConfig.lang,
 
-         load: 'currentOnly',
 
-         lowerCaseLng: true,
 
-         fallbackLng: siteConfig.lang,
 
-         ns: ['common', 'auth']
 
-       })
 
-     return new VueI18Next(i18next)
 
-   }
 
- }
 
 
  |