uniapp 手机语言
获取手机系统语言
在 uniapp 中,可以通过 uni.getSystemInfoSync() 或 uni.getSystemInfo() 获取设备信息,包括系统语言。
同步方式:
const systemInfo = uni.getSystemInfoSync();
const language = systemInfo.language; // 返回系统语言,如 "zh"、"en" 等
console.log(language);
异步方式:
uni.getSystemInfo({
success(res) {
const language = res.language;
console.log(language);
}
});
动态切换应用语言
如果需要根据系统语言动态调整应用语言,可以结合 uni.setStorageSync() 存储语言偏好,并在应用启动时读取。
存储语言设置:

// 根据系统语言设置默认语言
const systemInfo = uni.getSystemInfoSync();
const defaultLanguage = systemInfo.language === 'zh' ? 'zh-CN' : 'en-US';
uni.setStorageSync('language', defaultLanguage);
读取语言设置:
const currentLanguage = uni.getStorageSync('language') || 'en-US';
多语言支持(i18n)
使用 vue-i18n 或其他多语言库实现国际化。
安装 vue-i18n:

npm install vue-i18n
配置多语言:
// main.js 或独立语言配置文件
import Vue from 'vue';
import VueI18n from 'vue-i18n';
Vue.use(VueI18n);
const messages = {
'en-US': {
welcome: 'Welcome'
},
'zh-CN': {
welcome: '欢迎'
}
};
const i18n = new VueI18n({
locale: uni.getStorageSync('language') || 'en-US', // 默认语言
messages
});
// 挂载到 Vue 实例
new Vue({
i18n,
...App
}).$mount();
在页面中使用:
<template>
<view>{{ $t('welcome') }}</view>
</template>
手动切换语言
提供用户手动切换语言的选项,并更新存储和 i18n 实例。
methods: {
switchLanguage(lang) {
this.$i18n.locale = lang;
uni.setStorageSync('language', lang);
}
}
注意事项
- 部分安卓设备可能返回的语言代码带地区(如
zh-CN),需根据实际需求处理。 - 如果使用
uni-app的manifest.json配置语言,需确保与动态逻辑一致。 - 测试时可通过模拟器或真机切换系统语言验证效果。






