五、多语言国际化

国际化多语言支持是现在系统通常都要具备的功能,Vue对国际化提供了很好的支持。

1. 安装依赖

首先需要安装国际化组件,执行yarn add vue-i18n命令,安装i18n依赖。

2.添加配置

在src下新建i18n目录,并创建一个index.js.

import Vue from ‘vue‘
import VueI18n from ‘vue-i18n‘

Vue.use(VueI18n)

// 注册i18n实例并引入语言文件,文件格式等下解析
const i18n = new VueI18n({
  locale: ‘zh_cn‘,
  messages: {
    ‘zh_cn‘: require(‘@/assets/languages/zh_cn.json‘),
    ‘en_us‘: require(‘@/assets/languages/en_us.json‘)
  }
})

export default i18n

然后在assets目录下创建两个多语言文件,如图所示:

zh_cn.json:

{
    "common": {
        "home": "首页",
        "login": "登录",
        "logout": "退出登录",
        "doc": "文档",
        "blog": "博客",
        "projectRepo": "项目",
        "myMsg": "我的消息",
        "config": "系统配置",
        "backup": "备份",
        "restore": "还原",
        "backupRestore": "备份还原",
        "versionName": "版本名称",
        "exit": "退出"
    },
    "action": {
        "operation": "操作",
        "add": "新增",
        "edit": "编辑",
        "delete": "删除",
        "batchDelete": "批量删除",
        "search": "查询",
        "loading": "拼命加载中",
        "submit": "提交",
        "comfirm": "确定",
        "cancel": "取消",
        "reset": "重置"

    }
}

en_us.json:

{
    "common": {
        "home": "Home",
        "login": "Login",
        "logout": "Logout",
        "doc": "Document",
        "blog": "Blog",
        "projectRepo": "Project",
        "myMsg": "My Message",
        "config": "Config",
        "backup": "Backup",
        "restore": "Restore",
        "backupRestore": "Backup Restore",
        "versionName": "Version",
        "exit": "Exit"
    },
    "action": {
        "operation": "Operation",
        "add": "Add",
        "edit": "Edit",
        "delete": "Delete",
        "batchDelete": "Batch Delete",
        "search": "Search",
        "loading": "loading",
        "submit": "Submit",
        "comfirm": "Comfirm",
        "cancel": "Cancel",
        "reset": "Reset"
    }
}

在main.js中引入i18n并注入vue对象中:

import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import api from ‘./http‘
import i18n from ‘./i18n‘
import global from ‘@/utils/global‘
import ElementUI from ‘element-ui‘
import ‘element-ui/lib/theme-chalk/index.css‘
import ‘font-awesome/css/font-awesome.min.css‘

Vue.use(ElementUI)  // 注册使用Element
Vue.use(api)  // 注册使用API模块

Vue.prototype.global = global // 挂载全局配置模块

new Vue({
  el: ‘#app‘,
  i18n,
  router,
  render: h => h(App)
})

3.字符引用

在原本使用字符串的地方引入国际化字符串。

打开Home.vue,在模板下面添加一个国家化字符串和两个按钮做中英文切换。

<h3>{{$t(‘common.doc‘)}}</h3>
    <el-button type="success" @click="changeLanguage(‘zh_cn‘)">简体中文</el-button>
    <el-button type="success" @click="changeLanguage(‘en_us‘)">English</el-button>

在方法声明区域添加以下方法,设置国际化语言:

// 语言切换
    changeLanguage(lang) {
      lang === ‘‘ ? ‘zh_cn‘ : lang
      this.$i18n.locale = lang
      this.langVisible = false
    }

通过this.$i18n.locale = xx方式就可以全局切换语言,Vue框架会根据locale的值读取对应的国际化多语言文件并进行适时更新。

原文地址:https://www.cnblogs.com/xc-xinxue/p/12528041.html

时间: 2024-10-09 01:05:27

五、多语言国际化的相关文章

Mac出现五国语言灰色屏幕灰屏怎么办?

用CleanMyMac2清理文件之后,mac 死机,强制关机重启后进入灰屏,出现五国语言. 重新启动mac 并按住option按键,进入修复界面后,输入wifi密码,选择右侧的备份硬盘,后出现如下画面.(或者启动时直接 Shift-Command-V) 有人用磁盘修复可以成功启动,我通过选择第二项"重新安装mac os"修复系统,保证网络通畅,mac会自动下载相关文件,你做需要做的就是等待,下载完成后自动重启,个人文件.软件不会丢失,和死机之前一样. 最好用time machine 备

iOS App多语言国际化

/*************************************1*******************************************/ /*************************************2*******************************************/ /*************************************3*******************************************

i18next-页面层语言国际化js框架介绍

因为工作需要,最近研究了下网站语言国际化的问题,根据当前项目架构,寻求一种较好的解决方案.首先总结下项目中语言切换实现方式大概有以下几种: 1,一种语言一套页面,如:index_CN.html,index_TN.html,index_EN.html   根据用户当前使用语言来展示对应的页面.   这种方式比较常用,也比较理想,性能不错,但是开发使用的时间就多,每个页面要多做几遍. 2,后台定义变量,根据当前语言返回对应语言信息   这种方式不好使,麻烦,页面所有静态显示文本处都需要定义变量,从后

Winform下的语言国际化,几行代码轻松实现

最近做了一些关于winform的项目,需要用到winform的语言国际化,在初使化的时候用起来非常方便.可以参考一下: 核心逻辑: 预览效果演示: OK,以下是核心代码和操作流程 一,添加LanguageHelper类 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks;

Android 语言国际化

前言 我们在使用Android手机系统的时候经常在"设置"项里面会提供用户多种系统语言选择,比如:中文.英语-- 大家或许已经发现这些语言显示顺序都是"从左往右":但是有一些语言是"从右往左"显示的,比如阿拉伯语.希伯来语等语言,当在这种语言环境下时,我们需要怎么来处理布局文件呢?接下来的时间我们就来讨论处理阿拉伯语等"从右往左"显示语言的问题. 布局 首先我们先讲解布局问题,在Android系统中为了支持不同语言显示,可以定

接下来的两年你可能需要这五种语言(转载)

对于处在编程世界的我们来说,现在已经走到了一个转折点.十年前,程序员们对动态语言趋之若鹜.对我们中的大部分人来说, 动态语言不仅使编程变得更加简单,同时也意味着一种时尚.时至今日,动态语言不再享有特别的青睐,现在的程序员使用新语言和旧语言的搭配来开发项目.我不 禁要问,为了保持自身的竞争力,哪些编程语言是程序员们最需要永久掌握的? 在我们讨论哪些编程语言在未来会吃香这个问题之前,先来看看不同编程语言之间的的异同. 静态语言 vs. 动态语言 当我们说到动态语言时,这个“动态”实际上说的是变量类型

iOS开发-进阶:语言国际化及代码切换语言

语言国际化和使用代码切换语言是很多APP都有的功能, 实现起来也很简单, 没有什么技术难题, 网上有很多相关的资料, 在实现了功能后, 打算把整个过程写在这里.(例子均为中英文, 替换其他语言原理相同, 只需记录保存该语言的key值即可) 需求: 1.应用名跟随系统切换 2.应用内容跟随系统切换 3.使用代码切换应用内容的语言(含后台返回数据切换语言) 实现: 1.应用名跟随系统切换 首先在Project下选择Info, 然后在Localizations中添加程序需要使用的语言,中文. 然后创建

使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization)

使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization) 前言: 这是 qt for python 的语言国际化,基于 UI 的,python 也有自身的语言国际化,两者是不同的. 先来看最终效果: 前期准备: 这次创建一个 main window 在 menu bar 加一个 language 的 menu: 我们还要对 action 进行一些设置,如下: 生成 .py 文件: 生成代码: 1 # -*- coding: utf-8 -*-

.NET Core AvaloniaUI实现多语言国际化

AvaloniaUI是一个基于.Net Core的跨平台桌面程序UI框架,如果使用AvaloniaUI有多语言国际化的朋友可以参考我这篇文章: 这篇文章可以帮助你: 根据用户系统设置的语言改变UI显示的语言 可以在设计器中预览效果 支持TextBox的Watermark属性 支持ContentControl的Content属性 支持TextBlock的的Text属性 第1步: 在项目目录中新建一个文件夹(此处示例名为Localizations)用于存放AppResources.resx文件: 这