Установка языка (i18n) как параметра маршрута (ex.com/en/home) Quasar framework (Vue JS)

Есть front где реализована мультиязычность (4-е языка). Использована библиотека i18n, смена языка происходит по нажатию на кнопку, запуск сайта осуществлялся с использованием locale: navigator.language.split('-')[0], с проверкой и выводом английского по дефолту (если нужного языка нет). Стоит задача по добавлению названия языка в маршрут (/en/home or /ru/home). Прошу вашей помощи, как это правильно реализовать, чтобы смена языка происходила вместе с изменением url. Взял за основу https://medium.com/hypefactors/add-i18n-and-manage-translations-of-a-vue-js-powered-website-73b4511ca69c и https://medium.com/i18n-and-l10n-resources-for-developers/the-ultimate-guide-to-vue-localization-with-vue-i18n-bf98b1d40c65, но так как у меня проект в оболочке "Quasar framework" не могу отловить ошибки, крашится роутинг между страницами. В Quasar есть два компонента отвечающих за роутинг: router.js и index.js + ко всему в моём проекте в index.js я использую Router.beforeEach (где стоит проверка токена авторизации, чтобы разграничить маршрутизацию авторизированных и не авторизированных пользователей). Что касается добавления языка в адрес использовал router.js Вот пример моего кода:

const { locale } = i18n;

const routes = [{
    path: "/",
    redirect: locale
  },
  {
    path: '/:locale',
    component: () => import('layouts/MainLayout.vue'),

    beforeEnter(to, from, next){
      const lang = to.params.lang
      console.log(to);
      console.log(from);
      console.log(next);
      if(!['enUS', 'ru', 'ua', 'ge'].includes(lang)) return next('en-us');

      if(i18n.locale !== lang){
        i18n.locale = lang
      }
      return next()
    },

    children: [
      {
        path: '',
        component: () => import('pages/Preload.vue'),
        meta: {
          requiresAuth: false
        }
      },
      {
        path: '/auth_phone',
        component: () => import('pages/AuthPhone.vue'),
        meta: {
          requiresAuth: false} ...

     не работает и так тоже не вышло: 

router.beforeEach((to, from, next) => {
  if (to.params.locale === from.params.locale) {
     next('en')
     return
   }
   const { locale } = to.params
   next('ru')
 })

Ответы (0 шт):