前端开发系列055-基础篇之Vue项目实现多语言支持
插件介绍
介绍:Vuei18n 是 Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中。
安装:npm install vue-i18n 或者 yarn add vue-i18n
项目使用
在项目目录下面创建一个文件夹(随便叫啥名都行),这个文件夹主要用于处理i18n模块,做两件事情。
第一件事情是需要根据vue-i18n模块来导出一个i18n的实例对象,以供项目中能够直接使用。
第二件事情是需要提供具体的多语言支持文件,比如支持中文、中文繁体和英文,那么就需要提供特定字段的三种语言版本,以供按实际语言来进行显示。下面给出文件目录结构。
//index.ts文件中的代码示例:
//引入模块
import { createI18n } from 'vue-i18n';
//引入语言包(模块)
import zh from './zh';
import en from './en';
import tw from './tw';
//获取当前环境的语言
let language = navigator.language;
console.log('日志:language = ', language);
//如果当前环境语言非'zh-TW', 'en-US', 'zh-CN' 则默认选择中文
if (!['zh-TW', 'en-US', 'zh-CN'].includes(language)) {
language = 'zh-CN';
}
console.log('日志:多语言处理,当前语言环境为 = ', language);
// 创建i18n实例对象
const i18n = createI18n({
locale: language, // 设置语言
messages: { // 设置语言包
'zh-CN': zh,
'en-US': en,
'zh-TW': tw
}
});
export default i18n;
语言包其实就是就是需要多语言处理的字典,比如 我们有一个按钮,在不同的语言环境中需要分别被处理为:close、关闭、關閉
,只需要在不同的语言包中写好对应的字典并在模块中返回,下面给出简单的对应关系。
//tw.ts文件内容
const tw = {
message: {
close: '關閉',
search: '搜索',
noFiles: '暫無文件'
}
};
export default tw;
//zh.ts文件内容
const zh = {
message: {
close: '关闭',
search: '搜索',
noFiles: '暂无文件'
}
};
export default zh;
//en.ts文件内容
const en = {
message: {
close: 'Close',
search: 'Search',
noFiles: 'No files'
}
};
export default en;
使用场景
项目中大概有两种场景,一种是在DOM节点中,一种是在JS的代码中。
如果是DOM节点中使用,那么可以直接通过$t('message.xxx')的方式来使用。
<!-- 01 节点的内容 -->
<div class="text">{{ $t('message.noFiles') }}</div>
<!-- 02 节点的属性 -->
<InsertPanel :action="action === 'save' ? $t('message.save') : $t('message.insert')"/>
如果是在JS中使用,那么可以通过之前在src/i18n/index.ts中导出的实例对象来获取。
// 先导入模块
import i18n from '../i18n';
// 获取字段
let close = i18n.global.t('message.close');
参数处理
在处理字典的时候,可能有的字典中存在一些变量,比如我在Vue的节点中需要显示的内容为:当前选择20项,在进行多语言处理前,大概写法如下:
<div> 当前选择 {{ count }} 项 </div>
如果我们在语言包(以zh为例)中对应的字段为: selectCout,那么可以写成下面格式
//zh.ts 文件语言包代码示例
const zh = {
message: {
itemSelected: '当前选择{count}项'
}
};
export default zh;
//使用页面的代码示例,其中count为全局可以访问的变量
<div> {{ $t('message.itemSelected',count:selectCount)}} </div>
前端开发系列055-基础篇之Vue项目实现多语言支持的更多相关文章
- 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)
背景 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
- ESP8266开发之旅 基础篇① 走进ESP8266的世界
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 1.基础篇之vue入门
为了建立高效团队,很多公司会采用全栈工程师,虽然利弊兼有,对于成本优先的创业团队,肯定是首选,特别是对.net生态圈,大部分都是小公司,就更加重要了.这里记录的是对vue的学习点滴,希望对你有所助力. ...
- openlayers5-webpack 入门开发系列一初探篇(附源码下载)
前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...
- leaflet-webpack 入门开发系列一初探篇(附源码下载)
前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...
- 【Windows10 IoT开发系列】配置篇
原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry ...
- ESP8266开发之旅 基础篇④ ESP8266与EEPROM
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
随机推荐
- ArrayBlockingQueue的poll方法底层原理
一.ArrayBlockingQueue的poll方法底层原理 ArrayBlockingQueue 是 Java 并发包 (java.util.concurrent) 中的一个基于数组实现的有界阻塞 ...
- ShardingJdbc学习笔记
Mysql主从复制遇到问题 安装mysql Install/Remove of the Service Denied!错误的解决办法
- H5 ios端微信浏览器下-底部工具固定方法
在外层配置css position: fixed; width: 100%; top: 0px; bottom: 0px; overflow: auto; 结束
- 想靠RAG提升模型回答质量,那是不可能的
提供AI咨询+AI项目陪跑服务,有需要回复1 上周写了一篇AI知识库的文章:聊聊与一体机同等级的智商税:AI知识库 事实上,文章对于AI知识库是稍带了点否定的色彩,因为单独的知识库毫无意义,但企业本身 ...
- eolinker校验规则之正则匹配:返回结果校验的方法和案例(正则校验)
如上图红色箭头,需要校验返回值内是否包含"创建满足条件的优惠券"这一内容 如果需要满足以上校验,最好的方法就是使用正则进行匹配 切换到正则匹配,输入需要校验的内容,即可实现正则匹配 ...
- 康谋方案 | 从概念到生产的自动驾驶软件在环(SiL)测试解决方案
一.自动驾驶软件在环(SiL)测试解决方案 自动驾驶软件在环(SiL)测试解决方案能够研究和验证高历程实验和恶劣驾驶环境下的AD系统的性能,支持云端和PC端操作,提供高保真度的仿真环境和传感器模型,实 ...
- PHP获取下个月今天时间
获取php下个月当前时间public static function fq_time($time = ""){ if (!$time) $time = time(); $arr = ...
- 代码随想录第二十二天 | Leecode 77. 组合、216. 组合总和 III、17. 电话号码的字母组合
Leecode 77. 组合 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出 ...
- Java Solon v3.3.0 发布(国产优秀应用开发基座)
Solon 框架! Solon 是新一代,Java 企业级应用开发框架.从零开始构建(No Java-EE),有灵活的接口规范与开放生态.采用商用友好的 Apache 2.0 开源协议,是" ...
- 记一次ASP.NET CORE线上内存溢出问题与dotnet-dump的排查方法
前言 这周系统更新了一个版本,部署到线上. 客户反馈整个系统全部都卡顿,随即我们上服务器检查 发现整个服务器内存竟然达到了20-30G的占用..如图: 其中有一个订单服务,独自占用13-18G内存, ...