vue多语言化

作者: 坏丶毛病 | 来源:发表于2021-05-13 20:17 被阅读0次

随着国际化的趋势,项目中配置多语言切换也越来越有必要,本篇文章将会介绍如何在vue项目中配置多语言化

  • 安装:
    npm i vue-i18n
    
  • 导入注册:(因为后续可能涉及很多配置翻译,所以我们提前把配置抽离为单独的文件)
    // src/plugins/VueI18n/index.js:
    import Vue from 'vue';
    import VueI18n from 'vue-i18n';
    Vue.use(VueI18n);
    
    // 定义各语言的配置
    const messages = {
        zn: {
            message: {
                hello: '你好,世界',
            },
            name: '可乐',
        },
        en: {
            message: {
                hello: 'hello world',
            },
            name: 'cola',
        },
        ja: {
            message: {
                hello: 'こんにちは、世界',
            },
            name: 'コーラ',
        },
    };
    
    // 通过选项创建 VueI18n 实例
    const i18n = new VueI18n({
        locale: 'zn', // 设置默认地区
        messages, // 设置配置信息
    });
    
    export default i18n;
    
  • vue实例绑定i18n:
    // src/main.js
    import i18n from './plugins/VueI18n/index';
    
    new Vue({
        router,
        store,
        i18n,
        render: h => h(App),
    }).$mount('#app');
    
  • vue文件中使用(插值表达式使用 t ): 可以提前配置好语言数组,通过切换时,改变i18n.locale 时区,即可做到语言切换(chooesLange方法)
    插值表达式使用 $t('xx') 写法,xx即为messages配置中的字段
    <template>
        <div class="about">
            <h1>{{ $t('message.hello') }}</h1>
            <h1>{{ $t('name') }}</h1>
            
            <div class="mt-6">
                <p @click="isChoose = true" style="cursor:point">请选择语言</p>
                <ul v-if="isChoose">
                    <li v-for="(item, index) in languages" :key="index" @click="chooesLange(item[0])">{{ item[1] }}</li>
                </ul>
            </div>
        </div>
    </template>
    
    <script>
    export default {
        data() {
            return {
                languages: new Map([
                    ['zn', '中文'],
                    ['en', 'English'],
                    ['ja', '日本语'],
                ]),
                isChoose: false,
            };
        },
        methods: {
            chooesLange(languageItem) {
                this.$i18n.locale = languageItem;
                this.isChoose = false;
            },
        },
    };
    </script>
    
    <style scoped>
    p,
    ul {
        cursor: pointer;
    }
    </style>
    
  • 效果:


    GIF.gif

哈哈,样式比较丑,到时候可以根据项目设计自己做调整。

以上即为在普通的vue项目中实现多语言化的效果。

如有问题,请指出,接受批评。

期待能够对你有所帮助~


QQ图片20210513201556.gif

相关文章

  • Vue3 + Element Plus + i18n 国际化

    1 前言 本篇旨在 Vue3 + Element Plus 国际化配置,支持多语言切换 2 Vue3 国际化 2....

  • vue多语言化

    随着国际化的趋势,项目中配置多语言切换也越来越有必要,本篇文章将会介绍如何在vue项目中配置多语言化 安装:npm...

  • 国际化:i18n实现多语言

    如果项目需要多语言的支持,我们需要做国际化 使用 vue-i18n 来实现多语言的界面 安装 关于语言包,我们有几...

  • vue搭配i18n国际化语言插件开发多语言网站

    vue搭配i18n国际化语言插件开发多语言网站 安装过程直接略过,安装步骤链接: vue命令行工具 (CLI)vu...

  • 使用vue-i18n为vue添加多语言支持

    前言 最近项目因为国际化原因使用到了多语言,因为前端是使用vue的,后端同学就没有办法帮忙做了,而我们的vue又没...

  • uni-app 语言化 Vue-i18n

    说到vue-i18n,我们并不陌生,国际化多语言实现。 1.安装依赖包 2.注入vue实例中,项目中实现调用api...

  • uniapp与i18n实现国际化

    参考:uniapp与vue-i18n实现国际化多语言 1. main.js 备注:main.js文件:定义全局函数...

  • 前端笔记(12)nuxt js 多语言方案

    使用vue-i18n实现国际化,多语言数据保存在locales文件夹内; 通过URL的params与vuex共同维...

  • i18n国际化

    vue中如何使用i18n实现国际化 一、前言 项目中需要实现多语言切换,这时候接触到国际化,前端框架无数,其中几种...

  • vue多语言国际化

    今天项目提出一个多语言的需求,了解了一下vue可以使用i18n插件来实现该效果,记一下笔记,说明自己参考网上的资料...

网友评论

    本文标题:vue多语言化

    本文链接:https://www.haomeiwen.com/subject/cjbxjltx.html