



### uni.getLocale()

获取当前设置的语言

**平台差异说明**

|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序、飞书小程序|QQ小程序|快手小程序|华为快应用|360小程序|京东小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|3.2.5+|3.2.5+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|

如果当前应用设置过语言，会获取到之前设置的语言，未设置时会返回根据系统语言类型自动选择的语言。


### uni.setLocale(locale)

设置当前语言

**平台差异说明**

|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序、飞书小程序|QQ小程序|快手小程序|华为快应用|360小程序|京东小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|3.2.5+|3.2.5+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|

仅可设置为框架内置语言与[自定义扩展的语言](/tutorial/i18n.html#uni-framework)，遵循 BCP47 规范。

**参数说明**

|参数名|类型|必填|
|:-|:-|:-|
|locale|String|是|

### uni.onLocaleChange(callback)

用于监听应用语言切换

**平台差异说明**

|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序、飞书小程序|QQ小程序|快手小程序|华为快应用|360小程序|京东小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|3.2.7+|3.2.7+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|3.4.14+|

**callback返回参数说明**

|参数名|类型|说明|
|:-|:-|:-|
|locale|String|当前语言|



### 注意事项

* 组件和接口显示会根据设置的语言环境自动切换，未支持的系统语言环境会显示为英文。
* App-Android、App-iOS 平台修改系统语言后会重启应用。
* App-Android 平台设置新的语言后会自动重启应用。
* 框架内置如下语言，如需自定义内容或增加其他语言参考：[自定义国际化内容](https://uniapp.dcloud.io/collocation/i18n?id=uni-framework)。
  * 英语 en
  * 中文简体 zh-Hans
  * 繁体 zh-Hant
  * 法语 fr
  * 西班牙语 es
* 在 [manifest.json](/collocation/manifest) -> locale 可以配置应用的默认语言。
* 仅 3.1.5 - 3.2.4 版本会自动使用 vue-i18n 内配置的语言。
* 在小程序平台仅影响用户业务层（vue-i18n）的语言配置，不能影响小程序原生组件和接口的语言。

### 语言回退规则

需要注意的是，语言的处理逻辑是建立在应用locale目录 配置了对应资源的前提下。 [资源配置文档](https://uniapp.dcloud.net.cn/tutorial/i18n.html#vue%E7%95%8C%E9%9D%A2%E5%92%8Cjs%E5%86%85%E5%AE%B9%E7%9A%84%E5%9B%BD%E9%99%85%E5%8C%96)

即 

+ 如果应用的 locale目录下配置了对应的资源，那么语言的设置和获取是一致的

+ 如果应用的 locale目录没有配置对应的资源，则会根据具体的平台规则进行回退。


举个例子，应用中仅配置了英文和中文资源，没有配置日语资源，但是通过系统设置修改语言为日文，此时调用 `uni.getLocale()` 在android平台上获取到的返回值不会是jp 而是en



