uniapp多语言的使用

lang文件夹下的index.js

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import English from './en'
import Portuguese from './Portuguese'
import Indonesian from './Indonesian'
import Korea from './Korea'
import German from './German'
import Japanese from './Japanese'
import French from './French'
import Arab from './Arab'
import Turki from './Turki'
import Spanyol from './Spanyol'

Vue.use(VueI18n)

let currentLang = uni.getStorageSync('CURRENT_LANG')
if (!currentLang) {
	// 获取设备信息
	// uni.getSystemInfo({
	// 	success: function (res) {
	// 		uni.setStorageSync('CURRENT_LANG', res.language)
	// 		currentLang = res.language
	// 	}
	// })
	uni.setStorageSync('CURRENT_LANG', 'English')
	currentLang = 'English'
}
const i18n = new VueI18n({
	// 默认选择的语言
	locale: currentLang,
	messages: {
		'English': English,
		'Portuguese': Portuguese,
		'Indonesian': Indonesian,
		'Korea': Korea,
		'German': German,
		'Japanese': Japanese,
		'French': French,
		'Arab': Arab,
		'Turki': Turki,
		'Spanyol': Spanyol,
	}
})
export default i18n

main.js

import App from './App'

import uView from 'uview-ui';
Vue.use(uView);

// 引入请求封装
require('./util/request/index')(app)

// #ifndef VUE3
import Vue from 'vue'
import i18n from './lang/index'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
	i18n,
    ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif

app.vue

<script>
	export default {
		globalData: {
		  $i18n: {
			locale: 'English'
		  },
		  $t: {}
		},
		onLaunch: function() {
			this.globalData.$i18n = this.$i18n
			this.globalData.$t = str => this.$t(str)
			console.log('App Launch')
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import '/static/iconfont/iconfont.css';
	@import "uview-ui/index.scss";
</style>

text.vue

<view class="tab-item" @click="clickItem('English'){{$t('header.language1')}}</view>
const globalData = getApp().globalData
clickItem(language){
	this.tabShow = false;
	globalData.$i18n.locale = language;
	uni.setStorageSync('CURRENT_LANG', language);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值