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

文章目录

    之前开发 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/

    阅读更多 👀

    React Native 跨平台应用开发教程

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式