之前开发 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 聊聊, 查看更多联系方式