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

uniapp国际化配置

1、创建资源文件

创建一个locale文件夹,新增index.js,en.json,zh-hans.json
在这里插入图片描述

2.配置locale文件夹中的index.js文件

import Vue from 'vue'
import VueI18n from 'vue-i18n'// v8.x
import en from './en.json'
import zhHans from './zh-Hans.json'
import zhHant from './zh-Hant.json'
import ja from './ja.json'Vue.use(VueI18n)
const messages = {en,'zh-Hans': zhHans,'zh-Hant': zhHant,ja
}let i18nConfig = {locale: uni.getLocale(),// 获取已设置的语言messages
}
const i18n = new VueI18n(i18nConfig)
export default i18n

3、main.js 引入

// VUE2
import i18n from './locale'Vue.use(i18n)const app = new Vue({i18n,...App
})

4、国际化json文件内容

{"index.title": "Hello i18n"
}

5、页面使用i18n

vue和js里的内容国际化是与web通行的方案。

<template><view class="container"><view class="title">{{$t('index.title')}}</view></view>
</template><script>export default {data() {return {}}}
</script>
//普通文本使用方式: 
{{ $t('index.titlee') }}
//标签内使用方式:   
:placeholder="$t('index.title')"
//js内使用方式       
this.$t('index.title')

6、在js文件中使用国际化

import i18n from '../locale'export default {'401': i18n.t('errorCode.401'),'403': i18n.t('errorCode.403'),'404': i18n.t('errorCode.404'),'default': i18n.t('errorCode.default')
}
// 即在引入后使用
i18n.t('')

7、与后台同步切换语言文件

利用封装的request.js对发给后台的接口Header进行统一处理

import store from '@/store'
import config from '@/config'
import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import { toast, showConfirm, tansParams } from '@/utils/common'
import i18n from '../locale'
let timeout = 60000
const baseUrl = config.baseUrlconst request = config => {// 是否需要设置 tokenconst isToken = (config.headers || {}).isToken === falseconfig.header = config.header || {}if (getToken() && !isToken) {config.header['Authorization'] = 'Bearer ' + getToken()}config.header["Accept-Language"] = (uni.getLocale()==='zh-Hans'?'zh':'en') || "en"// get请求映射params参数if (config.params) {let url = config.url + '?' + tansParams(config.params)url = url.slice(0, -1)config.url = url}return new Promise((resolve, reject) => {uni.request({method: config.method || 'get',timeout: config.timeout ||  timeout,url: config.baseUrl || baseUrl + config.url,data: config.data,header: config.header,dataType: 'json'}).then(response => {let [error, res] = responseif (error) {toast(i18n.t('request.unusual'))reject(i18n.t('request.unusual'))return}const code = res.data.code || 200const msg = errorCode[code] || res.data.msg || errorCode['default']if (code === 401) {showConfirm(i18n.t('request.exceedTheTimeLimit')).then(res => {if (res.confirm) {store.dispatch('LogOut').then(res => {uni.reLaunch({ url: '/pages/login' })})}})reject(i18n.t('request.ofNoAvail'))} else if (code === 500) {toast(msg)reject('500')} else if (code !== 200) {toast(msg)reject(code)}resolve(res.data)}).catch(error => {let { message } = errorif (message === 'Network Error') {message = i18n.t('request.unusual')} else if (message.includes('timeout')) {message = i18n.t('request.overtime')} else if (message.includes('Request failed with status code')) {message = i18n.t('request.system') + message.substr(message.length - 3) + i18n.t('request.unusual2')}toast(message)reject(error)})})
}export default request

即将选择语言写到接口的Header中,实现与后端同步切换语言

config.header["Accept-Language"] = (uni.getLocale()==='zh-Hans'?'zh':'en') || "en"

8、在页面切换语言

注意:页面中设置语言后需要调用 this.$i18n.locale = ‘zh-Hans’ 后生效

<template><view><view class="login-footer"><text @click="changeLang('en')" style="margin-right: 5px;" :class="lang==='en'?'text-black':'text-blue'">English</text><text @click="changeLang('zh')" style="margin-left: 5px;" :class="lang==='en'?'text-blue':'text-black'">中文</text></view></view>
</template>
<script>
export default {data() {return {// 语言标识lang:''}},methods: {// 动态更改语言changeLang(e) {this.lang = e || 'en'console.log(e);if (e === 'en') {uni.setLocale('en');this.$i18n.locale = 'en'this.changTitle()} else {uni.setLocale('zh-Hans');this.$i18n.locale = 'zh-Hans'this.changTitle()this.lang = 'zh'}}}}
</script><style lang="scss">	.login-footer {height: 40px;line-height: 40px;position: fixed;// bottom: 40px;margin-top: 20px;width: 100%;text-align: center;font-family: Arial;font-size: 18px;letter-spacing: 1px;}
</style>

相关文章:

uniapp国际化配置

1、创建资源文件 创建一个locale文件夹&#xff0c;新增index.js,en.json,zh-hans.json 2.配置locale文件夹中的index.js文件 import Vue from vue import VueI18n from vue-i18n// v8.x import en from ./en.json import zhHans from ./zh-Hans.json import zhHant from .…...

前端中 try-catch 捕获不到哪些异常和常见错误

在开发过程中&#xff0c;我们的目标是 0error&#xff0c;0warning。 但有很多因素并不是我们可控的&#xff0c;为了避免某块代码的错误&#xff0c;影响到其他模块或者整体代码的运行&#xff0c;我们经常会使用try-catch模块来主动捕获一些异常或者错误。 比如我们在获取…...

javaEE 初阶 — 如何构造一个 HTTP 请求

文章目录使用 form 表单标签构造1 构造 GET 请求2 构造 POST 请求使用 ajax 构造1 什么是异步2 代码中如何使用 ajax使用第三方工具构造1 postman 工具的安装2 postman 工具的使用使用 form 表单标签构造 1 构造 GET 请求 使用 form 表单构造 HTTP 请求&#xff0c;需要用到两…...

CentOS 7下安装PostgreSQL 15版本数据库(图文详细)

文章目录CentOS 7下安装PostgreSQL 15版本数据库(图文详细)1 简介1.1 概述1.2 官网2 PostgreSQL安装2.1 选定版本2.2 安装依赖2.3 执行安装2.4 初始化2.5 配置环境变量2.6 创建数据库2.6.1 进入命令行2.6.2 创建DB2.6.3 设置密码2.7 配置远程2.8 测试链接3 pgAdmin4工具安装3.1…...

代码随想录算法训练营第五十一天 | 309. 最佳买卖股票时机含冷冻期、714. 买卖股票的最佳时机含手续费

309. 最佳买卖股票时机含冷冻期 动规五部曲 1、确定dp数组以及下标的含义 dp[i][j]&#xff0c;第i天状态为j&#xff0c;所剩的最多现金为dp[i][j]。 具体可以区分出如下四个状态&#xff1a; 状态一&#xff1a;持有股票状态&#xff08;今天买入股票&#xff0c;或者是…...

中英文拼写检测纠正开源项目使用入门 word-checker 1.1.0

项目简介 word-checker 本项目用于单词拼写检查。支持英文单词拼写检测&#xff0c;和中文拼写检测。 特性说明 可以迅速判断当前单词是否拼写错误 可以返回最佳匹配结果 可以返回纠正匹配列表&#xff0c;支持指定返回列表的大小 错误提示支持 i18n 支持大小写、全角半角…...

面试如果还不会Netty,看这篇文章就够了

我们去面试的时候&#xff0c;经常被问到netty的题目。我整理了netty的32连问。小伙伴们&#xff0c;收藏起来慢慢看吧。 1. Netty是什么&#xff0c;它的主要特点是什么&#xff1f; Netty是一个高性能、异步事件驱动的网络编程框架&#xff0c;它基于NIO技术实现&#xff0…...

作为大学生,你还不会搭建chatGPT微应用吗?

目录 引言ChatGPT是什么&#xff1f;背景&#xff1a;ChatGPT敢为人先&#xff0c;打破全球僵局示例演示&#xff1a;基于ChatGPT微应用实现的条件及步骤&#xff08;1&#xff09;整体框架&#xff08;2&#xff09;搭建前的准备工作&#xff08;3&#xff09;实际搭建步骤&a…...

Three.js教程:第一个3D场景

推荐&#xff1a;将NSDT场景编辑器加入你3D工具链其他工具系列&#xff1a;NSDT简石数字孪生下面的代码完整展示了通过three.js引擎创建的一个三维场景&#xff0c;在场景中绘制并渲染了一个立方体的效果&#xff0c;为了大家更好的宏观了解three.js引擎&#xff0c; 尽量使用了…...

lua快速入门~在js基础上,知道Lua 和 Js 的不同即可

☺ lua 和 javaScript 差不多的&#xff0c;就是一些语法的细节不同&#xff0c;学过js&#xff0c;再注意一下下面的细节&#xff0c;就能上手了~ 快速入门&#xff0c;可以直接看一下菜鸟教程的lua&#xff1a;https://www.runoob.com/lua/lua-tutorial.html Lua 和 Js 的不同…...

Linux系统【Centos7】更换源详细教程

更换CentOS 7系统的源可以提高网络速度&#xff0c;加快软件升级和安装的速度。以下是详细的更换CentOS 7源实践。 步骤 1&#xff1a;备份原始 Yum.repo 在更换之前&#xff0c;首先要备份原始 Yum.repo 文件&#xff08;一定要记得备份&#xff09;。 bash sudo mv /etc/y…...

金三银四求职季来了!分享几道最常见的app面试题,帮助您更好准备面试求职!

目录&#xff1a;导读 引言 一、Web 端测试和 App 端测试有何不同? 二、App是如何测试的&#xff1f; 三、app闪退的可能原因&#xff1f; 四、给你一个登录页面,你要如何测试&#xff1f; 五、测试过程中遇到app出现crash或者ANR&#xff0c;你会怎么处理&#xff1f; …...

Java集合——List接口学习总结

一、ArrayList实现类 1. 常用方法 增加&#xff1a;add(int index, E element)删除&#xff1a;remove(int index) remove(Object o)修改&#xff1a;set(int index, E element)查看&#xff1a;get(int index)判断&#xff1a;常用遍历方式&#xff1a;//List集合 遍历&…...

低代码(三)低代码平台前端技术组件选型1.0(前端)

目前国内主流的低代码开发平台有&#xff1a;金蝶、用友、宜搭、云程、简道云、明道云、氚云、伙伴云、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi等。这些平台各有优劣势&#xff0c;定位也不同&#xff0c;用户可以根据自己需求选择。如果企业想自主可控&#xff…...

代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球

代码随想录算法训练营第35天|860.柠檬水找零&#xff0c;406.根据身高重建队列&#xff0c;452. 用最少数量的箭引爆气球860.柠檬水找零406. 根据身高重建队列452. 用最少数量的箭引爆气球860.柠檬水找零 题目链接&#xff1a;860.柠檬水找零&#xff0c;难度&#xff1a;简单…...

C++整人代码,十分朴实但威力无穷,让你对cout怀疑人生,整死你的同学

cout人人皆知 /a 只是让电脑响个铃 直接上个简单的代码 #include<iostream> using namespace std; int main() {while(1)cout<<"\a"; }最后普及一下&#xff1a; 控制符的作用有&#xff1a; setbase(n) 以n进制方式输出(n8,10,16) setfill(ch) 设置…...

【Spring Cloud Alibaba】12.定时任务(xxl-job)

文章目录简介什么是xxl-job调度中心执行器官方架构图相关地址环境要求配置调度中心下载源码目录说明初始化数据库源码方式docker方式测试集群&#xff08;可选&#xff09;配置执行器pom.xmlapplication.propertiesXxlJobExecutorApplication.java执行器组件配置创建定时任务任…...

GDB core dump分析

基本知识 Linux core dump&#xff1a;一般称之为核心转储、内核转储&#xff0c;我们统称为转储文件。是某个时刻某个进程的内存信息映射&#xff0c;即包含了生成转储文件时该进程的整个内存信息以及寄存器等信息。转储文件可以是某个进程的&#xff0c;也可以是整个系统的。…...

Leetcode.111 二叉树的最小深度

题目链接 Leetcode.111 二叉树的最小深度 easy 题目描述 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从 根节点 到 最近叶子节点 的 最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,nul…...

【RP-RV1126】SDK编译常用记录

文章目录一、单独编译1.1 单独配置编译kernel1.2 单独编译配置Buildroot1.3 单独编译rkmedia1.3.1 添加自己的rkmedia代码文件荣品的RV1126。一、单独编译 如果执行 build.sh 运行完成后没有在 rockdev/ 目录下生成镜像文件&#xff0c;请执行&#xff1a; ./build.sh firmwa…...

低空经济崛起,实干企业的“品牌失语”危机比“黑飞”更可怕!

最近&#xff0c;低空经济成为热词。从浙江移动发布的低空智联网“4S”安全服务矩阵&#xff0c;到无人机在医疗、巡检、物流等领域的广泛应用&#xff0c;我们看到了一个万亿级市场的技术底座正在快速搭建。然而&#xff0c;在另一片我们称之为“AI空域”的新战场&#xff0c;…...

EvoAgentX智能体开发框架:模块化架构与进化引擎解析

1. 项目概述&#xff1a;一个面向未来的智能体开发框架最近在探索智能体&#xff08;Agent&#xff09;开发领域时&#xff0c;我遇到了一个名为“EvoAgentX”的项目。这个名字本身就很有意思&#xff0c;“Evo”暗示着进化&#xff0c;“AgentX”则指向了智能体及其无限的可能…...

LLM应用开发资源导航:从Awesome List到实战项目构建

1. 项目概述&#xff1a;当“Awesome”遇见LLM应用如果你最近在GitHub上逛过&#xff0c;或者对大型语言模型&#xff08;LLM&#xff09;的应用开发感兴趣&#xff0c;那么“Shubhamsaboo/awesome-llm-apps”这个仓库大概率已经躺在你的浏览器书签或者GitHub星标列表里了。它不…...

GTA5线上小助手:终极免费工具让你的洛圣都之旅更精彩

GTA5线上小助手&#xff1a;终极免费工具让你的洛圣都之旅更精彩 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 还在为GTA5线上模式中繁琐的操作而烦恼吗&#xff1f;想要更轻松地管理游戏数据、快速到…...

免费网盘直链下载助手:一站式解决九大平台文件下载难题

免费网盘直链下载助手&#xff1a;一站式解决九大平台文件下载难题 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

如何5分钟掌握QRemeshify:Blender四边形网格重构终极指南

如何5分钟掌握QRemeshify&#xff1a;Blender四边形网格重构终极指南 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify 你是否曾被Blen…...

新手避坑指南:用ROS Melodic在Ubuntu 18.04上为Dofbot机械臂配置MoveIt!

新手避坑指南&#xff1a;用ROS Melodic在Ubuntu 18.04上为Dofbot机械臂配置MoveIt&#xff01; 第一次为Dofbot机械臂配置ROS Melodic和MoveIt时&#xff0c;很多新手会在环境搭建、依赖安装和配置文件调试等环节遇到各种"坑"。这些看似简单的问题往往耗费大量时间…...

人群计数老将CSRNet:6年后再看CVPR2018的洞见,它的设计思想对今天还有何启发?

人群计数经典CSRNet&#xff1a;6年后重审其设计哲学与当代启示 2018年CVPR会议上亮相的CSRNet&#xff0c;在当时以简洁优雅的架构刷新了人群计数任务的性能记录。六年过去&#xff0c;当Vision Transformer、扩散模型等新范式不断冲击计算机视觉领域时&#xff0c;回看这个基…...

用户为中心交互系统工程在智能制造系统中应用

用户为中心交互系统工程&#xff08;User-Centered Interaction System Engineering, UCI-SE&#xff09;是智能制造与 AI 时代下&#xff0c;重塑传统工业软件&#xff08;如 MES、ERP、SCADA&#xff09;和硬件控制终端&#xff08;如 HMI、具身智能教导盒&#xff09;的核心…...

如何免费解锁Cursor AI Pro功能:终极三步激活指南

如何免费解锁Cursor AI Pro功能&#xff1a;终极三步激活指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial r…...