| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- import i18next from 'i18next'
 
- import i18nextXHR from 'i18next-xhr-backend'
 
- import i18nextCache from 'i18next-localstorage-cache'
 
- import VueI18Next from '@panter/vue-i18next'
 
- import _ from 'lodash'
 
- /* global siteConfig, graphQL */
 
- import localeQuery from 'gql/common/common-locale-query.gql'
 
- export default {
 
-   VueI18Next,
 
-   init() {
 
-     i18next
 
-       .use(i18nextXHR)
 
-       .use(i18nextCache)
 
-       .init({
 
-         backend: {
 
-           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 (resp.data.translations.length > 0) {
 
-                 resp.data.translations.forEach(entry => {
 
-                   _.set(ns, entry.key, entry.value)
 
-                 })
 
-               }
 
-               return cb(ns, {status: '200'})
 
-             }).catch(err => {
 
-               console.error(err)
 
-               return cb(null, {status: '404'})
 
-             })
 
-           }
 
-         },
 
-         cache: {
 
-           enabled: true,
 
-           expiration: 60 * 60 * 1000
 
-         },
 
-         defaultNS: 'common',
 
-         lng: siteConfig.lang,
 
-         fallbackLng: siteConfig.lang,
 
-         ns: ['common', 'auth']
 
-       })
 
-     return new VueI18Next(i18next)
 
-   }
 
- }
 
 
  |