如何在Quasar框架中将语言设置为路由参数?

问题描述

如何在Quasar框架中将语言设置为路由参数? 当您按下按钮时,我实现了按钮的语言更改。我用过我检测到语言 区域设置:navigator.language.split('-')[0] +如果在我的json lang中没有语言,请使用认的'en'。但是现在,SEO经理要求我在lang中添加url,以使用什么应用程序(例如:site.com/en/home)。我该怎么做? 我读了这2个博客https://medium.com/hypefactors/add-i18n-and-manage-translations-of-a-vue-js-powered-website-73b4511ca69chttps://medium.com/i18n-and-l10n-resources-for-developers/the-ultimate-guide-to-vue-localization-with-vue-i18n-bf98b1d40c65 但是找不到我弄错的地方。

这是我的代码route.js:

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()
            },

并尝试

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

如何更好地控制参数:locale?如何使用“良好实践”来完成此操作,我需要发送到那里,认情况下为“ zh-cn”和其他语言。认网站需要以en-us lang开头(如何在Quasar框架中的i18n.js和router.js中发送:locale),但是当SEO创建url链接(广告)时,示例为site.com/ru/或site.com/ ru / home“ ru”-i18n中的参数更改lang。我发现唯一不好的方法

const currentLocationLang = window.location.href.toString().split('#')[1].split('/')[1];
console.log('currentLocationLang',currentLocationLang);
if (currentLocationLang === 'en-us' || currentLocationLang === 'ru' || currentLocationLang === 'ua' || currentLocationLang === 'ge') {
    var lan = currentLocationLang;
    console.log(lan);
} else {
    var lan = 'en-us';
    console.log(lan);
}
const i18n = new VueI18n({
    locale: lan,//locale: navigator.language.split('-')[0],fallbackLocale: 'en-us',messages
})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)