expo-localization
@amazon-devices/expo-localization为原生用户本地化信息提供接口。
它提供getCalendars() 和getLocales() 方法及其相应的挂钩,这些方法返回有关用户区域设置的特定信息,例如languageCode、uses24HourClock、currencyCode和textDirection。它本身不提供任何格式化文本或值的方法。当应用区域设置发生变化时,挂钩将触发重新渲染。
这是一个系统部署的库,可供适用于Vega的React Native应用使用,无需单独的安装过程。它作为自动链接库进行部署,您的应用在运行时会链接到该库。只能在库和为其构建的适用于Vega的React Native版本之间保证兼容性。
安装
- 在
package.json文件中添加JavaScript库依赖项。"dependencies": { ... "@amazon-devices/expo-localization": "~2.0.0", "@amazon-devices/keplerscript-turbomodule-api": "~1.0.0", ... } - 使用
npm install命令重新安装依赖项。
示例
下面的示例演示了如何检索用户的语言代码。
import React from 'react';
import {StyleSheet, Text, View} from 'react-native';
import {useLocales, useCalendars} from '@amazon-devices/expo-localization';
export const App = () => {
const locales = useLocales();
const calendars = useCalendars();
return (
<View style={styles.container}>
<Text style={styles.text}>useLocales():</Text>
<Text style={styles.text}>{JSON.stringify(locales, null, 2)}</Text>
<Text style={styles.text}>useCalendars():</Text>
<Text style={styles.text}>{JSON.stringify(calendars, null, 2)}</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row',
backgroundColor: 'white',
},
text: {
color: 'black',
fontSize: 32,
},
});
API参考
请查看以下专门文档页面,了解有关此库、API参考等的信息: 针对expo-localization的官方Expo文档(仅提供英文版)。
常量
| 常量 | 描述 |
|---|---|
locale |
可以考虑改用Localization.getLocales()来获取用户首选区域设置的列表。IETF BCP 47语言标签,由两个字符的语言代码以及可选的脚本、地区和变体代码组成。 |
挂钩
| 挂钩 | 描述 |
|---|---|
useCalendars |
一个提供用户首选日历列表的挂钩,以Calendar类型的对象数组的形式返回。保证包含至少1个元素。目前总是返回单个元素,但将来可能会在某些平台上返回用户首选项列表。如果操作系统设置发生变化,挂钩将使用新的日历列表重新呈现。 |
useLocales |
一个提供用户区域设置列表的挂钩,以Locale类型的对象数组的形式返回。保证包含至少1个元素。这些对象将按照用户在设备设置中定义的顺序返回。在网页上,不提供货币和计量系统,而是返回为null。如果需要,您可以使用查询表从当前地区推断出它们。如果操作系统设置发生变化,挂钩将使用新的区域设置列表重新呈现。 |
方法
| 方法 | 描述 |
|---|---|
getCalendars |
用户首选日历的列表,以Calendar类型的对象数组的形式返回。保证包含至少1个元素。目前总是返回单个元素,但将来可能会在某些平台上返回用户首选项列表。 |
getLocales |
用户区域设置列表,以Locale类型的对象数组的形式返回。保证包含至少1个元素。这些对象将按照用户在设备设置中定义的顺序返回。在网页上,不提供货币和计量系统,而是返回为null。如果需要,您可以使用查询表从当前地区推断出它们。 |
实现详情
-
在Vega上,
Localization类型上的region字段始终为null。 -
函数
useLocales()、useCalendars()、getCalendars()和getLocales()将始终返回其中包含一个项目的数组,而其他平台可能会返回空数组或多个有效的区域设置/日历。 -
Vega不支持已弃用的常量和方法:
getLocalizationAsync()
支持的版本
| 程序包版本 | 基于 | @amazon-devices/react-native-kepler版本 |
|---|---|---|
| 2.0.x | 14.6.0 | 2.0.x |
其他资源
有关其他库的信息,请参阅支持的第三方库和服务。
Last updated: 2025年9月30日

