У меня получилось прекрасное представление о переводе путей маршрутов, которое уже не кажется таким умным :), как только я столкнулся с проблемой.Я надеюсь, что вы, ребята, увидите / найдете решение.
Это мой файл rout.js, в котором определены маршруты
export default [
{
path: '/:lang',
component: {
template: '<router-view></router-view>'
},
children: [
{
path: '',
name: 'Home',
component: load('Home')
},
{
path: translatePath('contact'),
name: 'Contact',
component: load('Contact')
},
{
path: translatePath('cookiePolicy'),
name: 'CookiePolicy',
component: load('CookiePolicy')
},
]
},
]
// and my simple function for translating paths
function translatePath(path) {
let lang = Cookie.get('locale');
let pathTranslations = {
en: {
contact: 'contact',
cookiePolicy: 'cookie-policy',
},
sl: {
contact: 'kontakt',
cookiePolicy: 'piskotki',
}
};
return pathTranslations[lang][path];
}
И это моя функция изменения языка в моем компоненте
setLocale(locale) {
let selectedLanguage = locale.toLowerCase();
this.$my.locale.setLocale(selectedLanguage); // update cookie locale
console.log(this.$route.name);
this.$router.replace({ name: this.$route.name, params: { lang: selectedLanguage } });
location.reload();
},
Проблема в следующем.Когда пользователь выполняет функцию смены языка, я успешно изменяю параметр lang, но this.$route.name
остается прежним на старом языке.Есть ли способ «перезагрузить» маршруты, так что будут новые маршруты маршрутов, которые будут включать надлежащий язык?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и я будупредоставлять.Спасибо!