如何在nuxt-i18 n下同时并行使用以下nuxt-links:<nuxt-link :to="switchLocalePath('en')">EN</nuxt-link>以及<nuxt-link :to="localePath('/about')">About</nuxt-link>所以,当我改变语言时,它会自动删除关于页面。
<nuxt-link :to="switchLocalePath('en')">EN</nuxt-link>
<nuxt-link :to="localePath('/about')">About</nuxt-link>
svujldwt1#
您可能会在链接上使用@click,如下所示
@click
<nuxt-link :to="switchLocalePath('en')" @click="$router.push(localePath('/about'))" > EN </nuxt-link>
想法取自此来源:https://github.com/nuxt-community/i18n-module/issues/476#issuecomment-539451906
kxxlusnw2#
谢谢你的建议!不幸的是,nuxt-link似乎不能与@click一起工作,但当我嵌套它时,它可以正常工作,如下所示:
<div @click="$router.push(localePath('/about'))"> <nuxt-link class="text-header-bold text-middle" :to="switchLocalePath('en')">EN</nuxt-link> </div>
kq4fsx7k3#
我在为静态站点生成器(SSG)创建语言选择器时遇到了类似的问题。我通过创建一个函数来更改当前语言并导航到相应的语言特定的URL来解决这个问题。我注意到SSR和开发模式在默认情况下都有这种行为,但是静态生成的页面只会改变区域设置而不会导航。
<template> <!-- Lang selector --> <select class="header__lang-selector p2" v-model="currentLang" @change="changeLocale($event)" > <!-- Add available locales as selector options --> <option v-for="(lang, i) in availableLocales" :key="i" :value="lang"> {{ lang }} </option> </select> </template>
<script setup> const localePath = useLocalePath(); const { locale, availableLocales } = useI18n(); const { setLocale } = useI18n(); const currentLang = ref(locale); async function changeLocale(event) { setLocale(event.target.value); currentLang.value = event.target.value; // Change URL to correct language, ex: '/home' to '/fr/home' await navigateTo(localePath(useRoute().path)); } </script>
3条答案
按热度按时间svujldwt1#
您可能会在链接上使用
@click
,如下所示想法取自此来源:https://github.com/nuxt-community/i18n-module/issues/476#issuecomment-539451906
kxxlusnw2#
谢谢你的建议!
不幸的是,nuxt-link似乎不能与@click一起工作,但当我嵌套它时,它可以正常工作,如下所示:
kq4fsx7k3#
我在为静态站点生成器(SSG)创建语言选择器时遇到了类似的问题。我通过创建一个函数来更改当前语言并导航到相应的语言特定的URL来解决这个问题。
我注意到SSR和开发模式在默认情况下都有这种行为,但是静态生成的页面只会改变区域设置而不会导航。