vue 项目i18n国际化,快速抽离中文,快速翻译

国际化大家都知道vue-i18n 实现的,但是有个问题,就是繁杂的抽离中文字符的过程,以及翻译中文字符的过程,关于这个有些小工具可以希望可以帮到大家
1.安装vue-i18n
npm i vue-i18n@8.22.2
2.ElementUI多语言配置 

在src目录下创建文件夹lang以及index.js

    |- src|-lang|-index.js|-th.json # 从资源包中拷入的|-zh.json # 从资源包中拷入的

/src/lang/index.js文件内容如下

import Vue from "vue";
import VueI18n from "vue-i18n";
// 引入自定义语言
import zh from "./zh.json";
import th from "./th.json";
// 引入element框架语言
import ElementLocale from "element-ui/lib/locale";
import thLocale from "element-ui/lib/locale/lang/th";
import zhLocale from "element-ui/lib/locale/lang/zh-CN";ElementLocale.i18n((key, value) => i18n.t(key, value));
Vue.use(VueI18n);
// 准备翻译的语言环境信息
const i18n = new VueI18n({locale: localStorage.getItem("lang") || "zh", //将语言标识存入localStorage或sessionStorage中,页面刷新不会默认中文显示messages: {// 中文语言包zh: {...zh,...zhLocale,},//泰文语言包th: {...th,...thLocale,},},silentTranslationWarn: true, //解决vue-i18n黄色警告"value of key 'xxx' is not a string"和"cannot translate the value of keypath 'xxx'.use the value of keypath as default",可忽略globalInjection: true, // 全局注入fallbackLocale: "zh", // 指定的locale没有找到对应的资源或当前语种不存在时,默认设置当前语种为中文
});export const langs = [{ value: 'zh', label: '中文' },{ value: 'th', label: 'ภาษาไทย' }
]export const getLocaleText = (lang) => {return langs.find(item => item.value == lang).label
}export const setLocal = (lang) => {localStorage.setItem('lang', lang)i18n.locale = lang
}export default i18n;

/src/lang/zh.json

{"复制成功": "复制成功","泰文名称": "泰文名称","个人中心": "个人中心","分配用户": "分配用户","规则组成": "规则组成","库区设置": "库区设置","使用甘特图排产": "使用甘特图排产","修改生成配置": "修改生成配置","出厂检验": "出厂检验","库位设置": "库位设置","分配角色": "分配角色"
}

 /src/lang/th.json

{"复制成功": "คัดลอกสำเร็จ","泰文名称": "ชื่อภาษาไทย","个人中心": "ศูนย์ส่วนบุคคล","分配用户": "กำหนดผู้ใช้","规则组成": "องค์ประกอบของกฎ","库区设置": "การตั้งค่าพื้นที่ห้องสมุด","使用甘特图排产": "ใช้ Gantt Diagram เพื่อขับไล่การผลิต","修改生成配置": "แก้ไขการกำหนดค่าการสร้าง","出厂检验": "การตรวจสอบโรงงาน","库位设置": "การตั้งค่าไลบรารี","分配角色": "กำหนดบทบาท"
}
3.在main.js中挂载 i18n的插件
import i18n from '@/lang'// 加入到根实力配置中
new Vue({el: '#app',router,store,i18n,render: h => h(App)
})
4.配置完成之后使用

在想要使用多语言的页面,用$t(‘属性名’)来生成标题。这里的t是引入了i18n之后,自动挂载在vue实例上的功能。在script上使用this.$t

<div class="dashboard-editor-container">{{ $t('navbar.welcomes') }} {{ $t('navbar.companyName') }}
</div>

在js模块使用

import i18n from './lang/index'
export function tob () {return i18n.t('检测到有新版本!')
}
5 抽离中文字符

使用vscode 插件 vue-i18n-transform

在项目根目录创建vue-i18n-transform.config.js

module.exports = {entry: 'src', // 编译入口文件夹,默认是 srcoutdir: 'src/lang', // i18n 输出文件夹 默认是 src/localesexclude: ['src/lang/th.json'], // 不重写的文件夹, 默认是 ['src/locales']extensions: ['.vue'], // 重写的文件类型,默认是 ['.js', '.vue', '.ts']single: false, // 是否为单文件编译, 默认为 false. 如果为 true, 则 entry 需为文件而不是文件夹, 如 entry: 'src/index.vue'filename: 'zh', // 输入的中文 json 文件名,默认为 zh_cnuseChineseKey: true // 是否使用中文作为key值,默认为false}

 在文件鼠标右键有个transformFile i18n的选项,点击之后就会自动抽离,自动追加到zh.json文件末尾,还会自动去重

另外他也有一个node组件

npm i vue-i18n-transform -D

 支持整个项目一键抽离中文

npx vue-i18n-transform
6 将中文翻译成泰文,可以使用chatGPT 翻译,很好用,不用一个个翻译,也不用安装一堆插件,还要配百度翻译key

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第六篇-阶段总结篇】

因为马上就要进入下一个阶段&#xff0c;制作动态编辑体积纹理的模块。 但在这之前&#xff0c;要在这一章做最后一些整理。 首先&#xff0c;我们完成没完成的部分。其次&#xff0c;最后整理一下图表。最后&#xff0c;本文附上正在用的贴图 完善Shader 还记得我们之前注…

联想ThinkPad笔记本怎么开启vt_ThinkPad笔记本开启vt虚拟化教程

最近使用联想ThinkPad笔记本的小伙伴们问我&#xff0c;联想ThinkPad笔记本怎么开启vt虚拟。大多数可以在Bios中开启vt虚拟化技术&#xff0c;当CPU支持VT-x虚拟化技术&#xff0c;有些电脑会自动开启VT-x虚拟化技术功能。而大部分的电脑则需要在Bios Setup界面中&#xff0c;手…

Florence-2视觉语言模型简明教程

近年来&#xff0c;计算机视觉领域见证了基础模型的兴起&#xff0c;这些模型无需训练自定义模型即可进行图像注释。我们已经看到了用于分类的 CLIP [2]、用于对象检测的 GroundingDINO [3] 和用于分割的 SAM [4] 等模型——每个模型都在其领域表现出色。但是&#xff0c;如果我…

将VSCode界面的显示语言改为简体中文,切换VScode界面的显示语言

VSCode界面默认的语言为英语&#xff0c;需要安装简体中文语言包&#xff0c;语言包为插件 &#xff08;Extension&#xff09;。 Step1: 点击左侧扩展按钮 Step2: 在搜索栏 &#xff0c;输入chinese Step3: 选择第一个简体中文&#xff0c;点击右下角install 按钮 Step4: 安装…

【K8S系列】Kubernetes node节点NotReady问题及解决方案详解【已解决】

Kubernetes 集群中的每个节点都是运行容器化应用的基础。当节点状态显示为 NotReady 时,意味着该节点无法正常工作,这可能会导致 Pod 无法调度,从而影响整个应用的可用性。本文将深入分析节点不健康的各种原因、详细的排查步骤以及有效的解决方案。 一、节点不健康的原因 节…

小程序视频SDK解决方案,提供个性化开发和特效定制设计

美摄科技作为视频处理技术的领航者&#xff0c;深知在这一变革中&#xff0c;每一个细微的创新都能激发无限可能。因此&#xff0c;我们精心打造了一套小程序视频SDK解决方案&#xff0c;旨在满足不同行业、不同规模客户的多元化需求&#xff0c;携手共创视频内容的璀璨未来。 …

推动AI技术研发与应用,景联文科技提供专业高效图像采集服务

景联文科技提供专业图像采集服务&#xff0c;涵盖多个领域的应用需求。 包含人体图像、人脸图像、手指指纹、手势识别、交通道路、车辆监控等图像数据集&#xff0c;计算机视觉图像数据集超400TB&#xff0c;支持免费试采试标。 高质量人像采集服务&#xff1a;支持不同光线条件…

Java最全面试题->Java基础面试题->JavaWeb面试题->Git/SVN面试题

文章目录 Git/SVN面试题Git和SVN有什么区别&#xff1f;SVN优缺点&#xff1f;Git优缺点&#xff1f;说一下Git创建分支的步骤&#xff1f;说一下Git合并的两种方法以及区别&#xff1f;Git如何查看文件的提交历史和分支的提交历史?什么是 git stash&#xff1f;什么是git sta…

纯前端实现语音合成并输出提示

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>语音合成</title><style>body {max-…

配置nginx服务通过ip访问多网站

1.关闭防火墙 [rootlocalhost wzj]# systemctl stop firewalld [rootlocalhost wzj]# sstenforce 0 bash: sstenforce: command not found... [rootlocalhost wzj]# setenforce 0 2&#xff0c;挂mnt [rootlocalhost wzj]# mount/dev/sr0/mnt bash: mount/dev/sr0/mnt: No suc…

Excel常用操作培训

1 Excel基本操作 1.1 常用快捷键 1.1.1快捷键操作工作簿、工作表 1.1.2快捷键操作 1.1.3单元格操作 1.1.4输入操作 2.1 常见功能描述 2.1.1 窗口功能栏 excel有很多功能可以用&#xff0c;新建文档后&#xff0c;可以最上方&#xff0c;可以看到所有的功能栏目 2.1.2 剪切板…

双链表的增删改查

目录 一、主程序&#xff08;test.c&#xff09; 二、自定义头文件&#xff08;DList.h&#xff09; 三、函数程序&#xff08;DList.c&#xff09; 一、主程序&#xff08;test.c&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #include "DList.h"int main() {…

思想是花 嘴是大地

思想是花 嘴是大地 作者&#xff1a;楚旺群 把最美丽的花 播种于嘴的田野 ——舌底生华 思想就会展现灿烂之花 做个比喻 思想是花 嘴是田野 世界上最美的是心灵之花 生成心灵之花的是舌底生灿 最慰藉心田的是话语 产生语言的沃土是嘴把思想来展现 语言交流 它就是产生思…

Spring中导致事务传播失效的情况(自调用、方法访问权限、异常处理不当、传播类型选择错误等。在实际开发中,务必确保事务方法正确配置)

文章目录 1. 自调用&#xff08;内部调用&#xff09;导致事务失效示例&#xff1a;解决办法&#xff1a; 2. 事务方法不是 public 修饰示例&#xff1a;解决办法&#xff1a; 3. 未被 Spring 管理的对象示例&#xff1a;解决办法&#xff1a; 4. 异常类型不匹配导致事务回滚失…

Flutter中使用Cookies

Cookie Cookie 是一种在用户的浏览器中存储的小型文本文件&#xff0c;用于保存有关用户和他们的访问信息。它们通常用于以下目的&#xff1a; 主要功能 会话管理&#xff1a;保持用户登录状态&#xff0c;例如识别已登录的用户。个性化设置&#xff1a;保存用户的偏好设置&a…

Xcode真机运行正常,打包报错

1.问题&#xff1a; 老项目Xcode真机运行没问题&#xff0c;但但打包的时候却报了以下错误&#xff1a; some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/r…

基于python智能推荐的丢失物品招领网站的制作,前端vue+django框架,协同过滤算法实现推荐功能

背景 基于 Python 智能推荐的丢失物品招领网站&#xff0c;通过前端 Vue 和后端 Django 框架的结合&#xff0c;为用户提供便捷、个性化的服务。该系统的核心在于实现智能推荐功能&#xff0c;采用协同过滤算法来提高用户体验&#xff0c;帮助用户更快找到合适的失物或招领信息…

爬虫日常实战

爬取美团新闻信息&#xff0c;此处采用两种方法实现&#xff1a; 注意点&#xff1a;因为此处的数据都是动态数据&#xff0c;所以一定要考虑好向下滑动数据包会更新的情况&#xff0c;不然就只能读取当前页即第一页数据&#xff0c;方法一通过更新ajax数据包网址页数&#xf…

代码随想录算法训练营第51天|101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104.建造最大岛屿

文章目录 101. 孤岛的总面积102. 沉没孤岛103. 水流问题104.建造最大岛屿 101. 孤岛的总面积 卡码网 101. 孤岛的总面积 代码随想录 from collections import deque n, m map(int, input().split())matrix []for i in range(n):matrix.append(list(map(int, input().split(…

二叉树展开为链表

二叉树展开为链表 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同…