uniapp实现后端数据i18n国际化

1.在main.js配置请求获取到数据再设置到i18n中,

我这里是通过后端接口先获取到一个多个数据的的json链接,通过链接再获取数据,拿到数据后通过遍历的方式设置i18n

//接口数据示例:{"vi": "http://localhost:8899/_data/storage/languages/vi.json","zh_CN": "http://localhost:8899/_data/storage/languages/zh_CN.json","pt": "http://localhost:8899/_data/storage/languages/pt.json"
}

main.js

import App from './App'
import { getLanguageJson } from "@/api/index.js";// 初始化一个对象来存储语言数据
const i18nData = {};// 设置 i18n 配置
const i18nConfig = {locale: uni.getLocale(), // 获取当前设备语言messages: uni.getStorageSync("i18nData") || {}, // 从缓存获取语言数据silentTranslationWarn: true,missingWarn: false,silentFallbackWarn: true,fallbackWarn: false
};// 异步加载所有语言文件
const loadLanguages = async () => {try {const res = await getLanguageJson();const obj = res.data;console.log(obj);// 使用 Object.entries 生成语言文件请求的 Promise 数组const promises = Object.entries(obj).map(([lang, url]) => new Promise((resolve) => {uni.request({url: url,method: 'GET',success: (res) => {if (res.statusCode === 200 && res.data) {i18nData[lang] = res.data;console.log(`语言包 ${lang} 加载成功`);} else {console.error(`语言包 ${lang} 加载失败`);i18nData[lang] = {}; // 设置为空对象以避免错误}resolve();},fail: (err) => {console.error(`语言包 ${lang} 加载失败`, err);i18nData[lang] = {}; // 设置为空对象以避免错误resolve();}});}));// 等待所有 Promise 完成await Promise.all(promises);// 加载完语言包后保存到本地缓存uni.setStorageSync("i18nData", i18nData);} catch (error) {console.error("获取语言包列表失败", error);}
};// #ifdef VUE3import { createSSRApp } from 'vue'import { createI18n } from 'vue-i18n'var i18n = createI18n(i18nConfig);// 拿到数据后加载语言包loadLanguages().then(() => {Object.entries(i18nData).forEach(([lang, messages]) => {i18n.global.setLocaleMessage(lang, messages);console.log(`语言包 ${lang} 加载成功`);});});export function createApp() {const app = createSSRApp(App);app.use(i18n);return {app};}// #endif

2.uniapp内置的文本语言无法通过异步国际化,只能在根目录locale文件夹下提前配置好。

├── locale
│ ├── en.json
│ ├── zh-Hans.json
│ └── zh-Hant.json

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

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

相关文章

3D机器视觉的类型、应用和未来趋势

3D相机正在推动机器视觉市场的增长。很多制造企业开始转向自动化3D料箱拣选,专注于使用3D视觉和人工智能等先进技术来简化操作并减少开支。 预计3D相机将在未来五年内推动全球机器视觉市场,这得益于移动机器人和机器人拣选的强劲增长。到 2028 年&#…

Mac-docker配置

1.配置的文件路径 cd ~/.docker (base) zhangyaweimacbookair .docker % ls buildx cli-plugins config.json contexts daemon.json desktop-build mutagen run (base) zhangyaweimacbookair .docker % cat daemon.json## 重启docker服务 sudo systemctl daemon-reload sudo…

SSM-SpringMVC-请求响应、REST、JSON

目录 “为什么要学 SpringMVC?它和 Servlet 是什么关系?” “什么是异步?为什么异步交互中常用 JSON 格式?异步请求和 JSON 如何配合?” 一、概述 SpringMVC主要负责 1 SpringMVC的常用组件 2 SpringMVC的工作流程…

【Arm】Arm 处理器的半主机(semihosting)机制

概览 通过 semihosting 机制,主机可以通过调试器使用目标计算机 IO 接口。 例如开发者的 PC 通过 J-Link 来使用 STM32 MCU 的输入输出。 这些功能的示例包括键盘输入、屏幕输出和硬盘 I/O。例如,可以使用此机制启用 C Library 中的函数,如…

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击: xSS 全称(Cross site Scripting )跨站脚本攻击,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013/2017年度分别为第三名和第七名,XSS是指攻…

深度学习与计算机视觉 (博士)

文章目录 零、计算机视觉概述一、深度学习相关概念1.学习率η2.batchsize和epoch3.端到端(End-to-End)、序列到序列(Seq-to-Seq)4.消融实验5.学习方式6.监督学习的方式(1)有监督学习(2)强监督学习(3)弱监督学习(4)半监督学习(5)自监督学习(6)无监督学习(7)总结:不同…

n 维数组(张量)关于轴 axis 的理解

本文将从两个角度来理解 “轴” 的概念,着重阐述 1.2 节中的理解,并借此加深问题一和问题二的理解。 一、问题:如何理解 numpy 数组在轴上的 sum 操作 二、问题:torch 张量中的维度 dim 也是如此 一、问题:如何理解 n…

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <

操作手册:集成钉钉审批实例消息监听配置

此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时&#xff0c;能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库&#xff0c;存储钉钉发送的消息&#xff0c;可以忽略&#xff0c;若不配置&#xff0c;则钉钉的消息将不再记录到…

mysql -> 达梦数据迁移(mbp大小写问题兼容)

安装 注意后面初始化需要忽略大小写 初始化程序启动路径 F:\dmdbms\tool dbca.exe 创建表空间&#xff0c;用户&#xff0c;模式 管理工具启动路径 F:\dmdbms\tool manager.exe 创建表空间 创建用户 创建同名模式&#xff0c;指定模式拥有者TEST dts 工具数据迁移 mysql -&g…

MacBook Linux 树莓派raspberrypi安装Golang环境

个人还是比较喜欢用go语言开发,比java开发效率高,以后会持续更新golang相关的博客 MacBook安装golang环境 官方下载地址: https://golang.google.cn/dl/ 官方下载Mac对应版本 tar.gz包 OS macOS 版本 x86-64 #解压 tar -zxvf xxx.tar.gz #配置环境变量 vim ~/.zshrc #文件最后…

基于LabVIEW的BeamGage自动化接口应用

设置 National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现&#xff1a; 在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件&#xff08;例如&#xff1a;C:\Program Files\National Ins…

SQL概述

SQL SQL&#xff08;Structured Query Language&#xff09;是“结构化查询语言”&#xff0c;它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中。如&#xff1a;MySQL、Oracle、SQL Server 等。除了 SQL 标准之外&#xff0c;大部分 SQL 数据库程序都拥有它们自…

WandB使用笔记

最近看代码&#xff0c;发现代码中有wandb有关的内容&#xff0c;搜索了一下发现是一个模型训练工具&#xff0c;然后学习了一下&#xff0c;这里记录一下使用过程&#xff0c;方便以后查阅。 WandB使用笔记 登录WandB 并 创建团队安装 WandB 并 登录模型训练过程跟踪模型版本管…

中国科技统计年鉴EXCEL版(2021-2023年)-社科数据

中国科技统计年鉴EXCEL版&#xff08;2021-2023年&#xff09;-社科数据https://download.csdn.net/download/paofuluolijiang/90028724 https://download.csdn.net/download/paofuluolijiang/90028724 中国科技统计年鉴提供了从2021至2023年的详尽数据&#xff0c;覆盖了科技…

Cursor无限续杯——解决Too many free trials.

前情提要 我们都知道Cursor对新用户是有14天且500条免费限制的。 一般情况下&#xff0c;当14天过期&#xff0c;是可以注销账户再重新注册&#xff0c;这样就可以继续拥有14天的体验时长。 但是&#xff01;&#xff01;如果使用超过500次&#xff0c;Cusor就会把你的电脑I…

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…

Mysql--基础篇--事务(ACID特征及实现原理,事务管理模式,隔离级别,并发问题,锁机制,行级锁,表级锁,意向锁,共享锁,排他锁,死锁,MVCC)

在MySQL中&#xff0c;事务&#xff08;Transaction&#xff09;是一组SQL语句的集合&#xff0c;这些语句一起被视为一个单一的工作单元。事务具有ACID特性&#xff0c;确保数据的一致性和完整性。通过事务&#xff0c;可以保证多个操作要么全部成功执行&#xff0c;要么全部不…

Linux下文件重定向

文章目录 一 重定向的基本使用1. 标准输出重定向2. 标准错误输出重定向3. 同时重定向标准输出和标准错误输出4. 输入重定向&#xff08;<&#xff09; 二 重定向基本原理1. 文件描述符概念2.什么是文件描述符3. 文件描述符的分配规则初始分配与默认对应关系动态分配规则 4. …

Android车载音频系统目录

目录 第一章 1.1 Android Automotive&#xff08;一&#xff09; 1.2 Android Automotive&#xff08;二&#xff09; 1.3 Android Automotive&#xff08;三&#xff09; 第二章 2.1 Android车载音频系统概览 2.2 车载音频焦点 2.3 车载音频配置 2.4 Audio control HAL…