React Native 获取当前手机系统语言,或者浏览器语言

更新日期: 2025-01-16 阅读次数: 127 字数: 219 分类: ReactJS

之前开发 app 都是基于手机系统 locale 实现多语言翻译就行。

但是在 AI 横行的时代,又多了一项需求,就是根据手机系统的语言,自动返回对应语言的聊天内容。

这样就需要传递一个语言参数给后台接口。

languageCode

An IETF BCP 47 language tag without the region code. Example: 'en', 'es', 'pl'.

而 locale 则是 languageCode 和 regionCode 的组合。例如 en-US, zh-CN. 当然还有其他的 code 组合。

安装 expo-localization 依赖

在 React Native 项目下执行:

npx expo install expo-localization

这个库同时支持 android, ios 和 web。

代码

import { getLocales } from 'expo-localization';

const language = getLocales()[0].languageCode;  // en / es

getLocales 返回的数据格式:

[{
  "languageTag": "pl-PL",
  "languageCode": "pl",
  "textDirection": "ltr",
  "digitGroupingSeparator": " ",
  "decimalSeparator": ",",
  "measurementSystem": "metric",
  "currencyCode": "PLN",
  "currencySymbol": "zł",
  "regionCode": "PL",
  "temperatureUnit": "celsius"
}]

参考

https://docs.expo.dev/versions/latest/sdk/localization/

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式