Nuxt3.7.1版本引入@nuxtjs/i18n 实现国际化

Nuxt3.7.1版本引入@nuxtjs/i18n 实现国际化

  • 首先也是要去安装
# Using npm
npm install @nuxtjs/i18n@next --save-dev

# Using yarn
yarn add --dev @nuxtjs/i18n@next

# Using pnpm
pnpm install --shamefully-hoist -D @nuxtjs/i18n@next
  • 配置nuxt-config.ts
export default defineNuxtConfig({
    modules: [
       '@nuxtjs/i18n',
    ],
})
  • 配置i18n
export default defineNuxtConfig({
    modules: [
       '@nuxtjs/i18n',
    ],
     i18n:{
        locales: [
            { code: "zh", name: "🇨🇳中文", file: "zh.json" },
            { code: "en",  name: "🇬🇧 English", file: "en.json" },//语言名称和文件夹名字
        ],
        detectBrowserLanguage: false,//是否要自动检测用户浏览器的语言设置
        defaultLocale:'zh',//默认语言
        langDir:"locales/" //语言文件夹,放在根目录下面
    },
})
  • 使用
script setup lang="ts">
import {useI18n} from "vue-i18n";

const { locale, locales } = useI18n()
console.log(locale,locales)
const changeLang = (lang) => {
    locale.value = lang
}

</script>

<template>
<div>
    <form>
        <a-select v-model:value="locale">
            <a-select-option value="zh">zh</
a-select-option>
            <a-select-option value="en">en</a-select-option>
        </a-select>

        <h1>{{ $t('welcome') }}</
h1>
    </form>
    <a-button @click="changeLang('en')">切换语言</
a-button>
</div>
</
template>

<style scoped>

</style>

  • 效果Nuxt3.7.1版本引入@nuxtjs/i18n 实现国际化
Nuxt3.7.1版本引入@nuxtjs/i18n 实现国际化
image.png
  • 使用语言切换器

useSwitchLocalePath是一个可组合函数。调用该可组合函数会返回一个函数,该函数能够以另一种语言返回指向当前页面的链接。

这是一个示例语言切换器,其中name已将一个键添加到每个语言环境对象,以便为每个链接显示更友好的标题:

<template>
  ...
  <NuxtLink v-for="locale in availableLocales" :key="locale.code" :to="switchLocalePath(locale.code)">{{
    locale.name
  }}</NuxtLink>
  ...
</template>
<script setup>
const { locale, locales } = useI18n()
const switchLocalePath = useSwitchLocalePath()
const availableLocales = computed(() => {
  return (locales.value).filter(i => i.code !== locale.value)
})
</script>


原文始发于微信公众号(大前端编程教学):Nuxt3.7.1版本引入@nuxtjs/i18n 实现国际化

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/224514.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!