当前位置: 首页 > news >正文

vue3 环境配置vue-i8n国际化

一.依赖和插件的安装

主要是vue-i18n和 vscode的自动化插件i18n Ally

https://vue-i18n.intlify.dev/

npm install vue-i18n@10
pnpm add vue-i18n@10
yarn add vue-i18n@10

vscode在应用商城中搜索i18n Ally:如图

二.实操

安装完以后在对应项目中的跟package.json同级的目录下建立对该i8n ally插件的设置,也可以设置为全局 在.vscode文件下新建setting.json配置如下:

{"i18n-ally.localesPaths": ["src/lang"], // 项目的翻译的储存路径// 如下须要手动配置"i18n-ally.keystyle": "nested", // 翻译路径格式 (翻译后变量格式 nested:嵌套式  flat:扁平式)"i18n-ally.sortKeys": true,"i18n-ally.namespace": true,"i18n-ally.enabledParsers": ["json"], // 翻译文件可允许的格式,默认json"i18n-ally.sourceLanguage": "zh", // 根据此语言文件翻译其他语言文件的变量和内容"i18n-ally.displayLanguage": "zh", // 显示语言"i18n-ally.extract.keygenStyle": "camelCase", // 翻译字段命名样式采用驼峰"i18n-ally.translate.engines": ["google"],"i18n-ally.enabledFrameworks": ["vue"],"i18n-ally.editor.preferEditor": true,"i18n-ally.extract.autoDetect": false
}

项目的语言国际化目录如图:

 

新建lang文件夹,新建en.json,zh.json,index.js

其中index.js是初始化vue-I18n的实例如下:

import { createI18n } from "vue-i18n";
import EN from "./en";
import ZH from "./zh";const messages = {zh: {...ZH,},en: {...EN,},
};
const currentLang = window.sessionStorage.getItem("lang_IAP") || "zh";
const i18n = createI18n({locale: currentLang, // 设置当前语言类型legacy: false, // 如果要支持compositionAPI,此项必须设置为false;globalInjection: true, // 全局注册$t方法messages,
});export default i18n;

 然后在main.ts中全局注册:

import i18n from "./lang";
import App from "./App.vue";const app = createApp(App);app.use(i18n);
app.mount("#app");

然后选中某个要翻译的vue单文件,在最左侧会出现一个关于i18n Ally插件的ui图标点击打开可以出现一个UI编辑器 对应的就是该vue单文件的文字解析如图:

需要知道两个功能一个是hard-coded,单击选择第一个生成对应的k-v值

第二个就是中文翻译成英文需要再下方确实的文案中选中 ,单击然后选择全部翻译如图:

此时就会自动在json中生成en.json,zh.json对应的k-v

自动捉取文字,翻译录入json,vue替换对应的语法就都自动完成了但是需要注意的vue单文件可能会报错,因为这个环境使用的是vue3而非vue2,所以$t可能找不到需要单独手动在每个vue单文件中 使用useFN去引出t函数:

import { useI18n } from "vue-i18n";
const { t } = useI18n();

至此大功告成!!! 希望学习的小伙伴也能成功,今天的学习就到这里啦

三.总结:

后续再总结,先发布一版哈哈

相关文章:

  • 当人工智能拥抱餐饮业,传统与创新的交融
  • 每天五分钟深度学习pytorch:基于pytorch搭建一元线性回归模型
  • 【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
  • 【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
  • 【web安全】——sql注入
  • 查缺补漏----该不该考虑不可屏蔽中断
  • TypeScript 算法手册【选择排序】
  • 基于yolov8深度学习的120种犬类检测与识别系统python源码+onnx模型+评估指标曲线+精美GUI界面目标检测狗类检测犬类识别系统
  • 英语音标与重弱读
  • Java后端分布式系统的服务健康检查:Spring Boot Health
  • 低代码时代的企业信息化:规范与标准化的重要性
  • 无人机视角垃圾检测数据集,26700余张无人机图像,超过4万标注信息,共3.6GB数据量,可用于环卫快速检查,垃圾快速定位等应用。
  • 自定义注解加 AOP 实现服务接口鉴权以及内部认证
  • EEditor中的redo/uodo机制
  • 亚洲市场|人工智能对固态硬盘SSD需求影响
  • 【译】JS基础算法脚本:字符串结尾
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 「面试题」如何实现一个圣杯布局?
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CSS盒模型深入
  • gitlab-ci配置详解(一)
  • java2019面试题北京
  • js对象的深浅拷贝
  • js数组之filter
  • leetcode386. Lexicographical Numbers
  • Nacos系列:Nacos的Java SDK使用
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • PAT A1120
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Travix是如何部署应用程序到Kubernetes上的
  • 从setTimeout-setInterval看JS线程
  • 多线程事务回滚
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 官方解决所有 npm 全局安装权限问题
  • 讲清楚之javascript作用域
  • 坑!为什么View.startAnimation不起作用?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 以太坊客户端Geth命令参数详解
  • FaaS 的简单实践
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (LLM) 很笨
  • (vue)页面文件上传获取:action地址
  • (二)Eureka服务搭建,服务注册,服务发现
  • (分布式缓存)Redis持久化
  • (分布式缓存)Redis哨兵
  • (九)信息融合方式简介
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (七)Java对象在Hibernate持久化层的状态
  • (四)鸿鹄云架构一服务注册中心
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)