我的路线定义如下:
const router = new Router({
base: '/',
mode: 'history',
routes: [
{
path: '/',
redirect: `${DEFAULT_LOCALE}`,
},
{
path: '/:locale?',
component: AppTemplate,
children: [
{
path: 'home',
name: 'home',
component: () => import('@/views/Home.vue'),
meta: {
title: 'Home',
}
}
{
path: 'about',
name: 'about',
component: () => import('@/views/About.vue'),
meta: {
title: 'About',
},
},
{
path: 'contact',
name: 'contact',
component: () => import('@/views/Contact.vue'),
meta: {
title: 'Contact',
},
},
{
path: '*',
redirect: { path: '/' },
},
],
},
{
path: '*',
redirect: { path: '/' },
},
],
});
export default router;
我使用 :locale
进行应用翻译 . 它是可选的,因为空语言环境是默认语言 . 我的问题是,即使存在语言环境,所有指向其他页面的链接都没有语言环境,如果这有意义的话 . 例如,example.com/about是意大利语,example.com/en/about是英语 . 但是,无论URL是什么,页面上的链接始终指向联系人或主页,例如example.com/contact和example.com/home . 有没有办法来解决这个问题?或者是否有更简单的方法来使用URL中的应用程序翻译 . 我正在使用 vue-i18n
进行翻译 . 谢谢
1 回答
对于这样的配置,我认为你必须通过param才能使它工作:
<router-link :to="{name: 'contact', params: {locale: $route.params.locale} }">
https://jsfiddle.net/3gx4hak5/
也许router-link
append
属性可以帮到你:https://router.vuejs.org/api/#append