夜猫子的知识栈 夜猫子的知识栈
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

夜猫子

前端练习生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 调用微信小程序位置插件
  • Uniapp请求的ts封装
  • I18国际化
  • uniapp路径与base64互相转化
  • 使用webview渲染html字符串
  • 移动端IOS安全区兼容
  • 《Uniapp》笔记
夜猫子
2023-06-16

I18国际化

一、国际化使用方案 uni-app是基于vue.js的,因此国际化的方案也是使用的 i18n 插件

二、i18n配置及使用 1.引入i18n插件依赖 首先,我们将i18n插件引入到项目中,安装依赖的方式就不多赘述了,我使用的是npm安装

npm install vue-i18n --save
1

2.配置 因为项目里面全部都是需要用到这个插件的,所以封装了一个文件

在这里插入图片描述

en 里面的文件是分模块处理的,为了后期语言删减或修改更好的维护

在这里插入图片描述

import Vue from 'vue'
import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

function loadLocaleMessages() {
    const locales = require.context('.', true, /[A-Za-z0-9-_,\s]+\/index\.js$/i)
    const messages = {}
    locales.keys().forEach(key => {
        messages[key.replace('./', '').replace('/index.js', '')] = locales(key).default
    })
    return messages
}

// console.log(Object.entries(loadLocaleMessages().en).reduce((prev,[k,v])=>`${prev}\n"${k}","${v}"`,'"中文","English"'))

const locale = process.env.VUE_APP_I18N_LOCALE || (process.env.NODE_ENV === 'production' ? 'id' : 'zh')
const i18n = new VueI18n({
    locale,
    fallbackLocale: locale,
    messages: loadLocaleMessages()
})

let lang = uni.getStorageSync("lang") || "es"

i18n.locale = lang

Vue.prototype._i18n = i18n
export default i18n
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

然后在main.js里引入并挂载

import i18n from './i18n';

const app = new Vue({
    i18n,
    store,
    ...App
})
1
2
3
4
5
6
7

ndex.js里面已经都给配置好了,默认语言设置,也可以针对手机系统语言设置,最最主要的是上面的loadLocaleMessages()方法,返回不同的语言

下面是en或es里面的文件内容

export default {
    "验证码":"Verification Code",
    "再次搜取":"Reacquire",
    "工作信息":"Work info",
    "经济来源":"Source of Income",
    "收益水平":"Income Level",
    "公司电话":"Company Phone",
} 
1
2
3
4
5
6
7
8
export default {
    "验证码":"Código de verificación",
    "再次搜取":"Volver a adquirir",
    "工作信息":"Información de trabajo",
    "经济来源":"Fuente de ingreso",
    "收益水平":"Nivel de ingreso",
    "公司电话":"Teléfono de la empresa",
}  
1
2
3
4
5
6
7
8

使用(你快要成功了,最后一步)

<view class="title">
	{{ $t("验证码") }}
</view>
1
2
3
编辑 (opens new window)
上次更新: 2023/8/22 19:22:36
Uniapp请求的ts封装
uniapp路径与base64互相转化

← Uniapp请求的ts封装 uniapp路径与base64互相转化→

最近更新
01
IoC 解决了什么痛点问题?
03-10
02
如何调试 Nest 项目
03-10
03
Provider注入对象
03-10
更多文章>
Copyright © 2019-2025 Study | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式