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.1", "@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 |
IETF BCP 47语言标签,由两个字符的语言代码以及可选的脚本、地区和变体代码组成。可以考虑改用Localization.getLocales()来获取用户首选区域设置的列表。 |
挂钩
| 挂钩 | 描述 |
|---|---|
useCalendars |
用户首选日历的列表,以Calendar类型的对象数组的形式返回。保证包含至少一个元素。总是返回单个元素,但将来可能会在某些平台上返回用户首选项列表。如果操作系统设置发生变化,挂钩将使用新的日历列表重新呈现。 |
useLocales |
用户区域设置列表,以Locale类型的对象数组的形式返回。保证包含至少一个元素。这些对象将按照用户在设备设置中定义的顺序返回。在网页上,不提供货币和计量系统,而是返回为null。如果需要,您可以使用查询表从当前地区推断出货币和计量。如果操作系统设置发生变化,挂钩将使用新的区域设置列表重新呈现。 |
方法
| 方法 | 描述 | 支持 |
|---|---|---|
getCalendars |
用户首选日历的列表,以Calendar类型的对象数组的形式返回。保证包含至少一个元素。总是返回单个元素,但将来可能会在某些平台上返回用户首选项列表。 |
✅ 是 |
getLocales |
用户区域设置列表,以Locale类型的对象数组的形式返回。保证包含至少一个元素。这些对象将按照用户在设备设置中定义的顺序返回。在网页上,不提供货币和计量系统,而是返回为null。如果需要,您可以使用查询表从当前地区推断出货币和计量。 |
✅ 是 |
getLocalizationAsync |
已弃用。 | ❌ 否 |
已知问题和限制
-
在Vega上,
Localization类型上的region字段始终为null。 -
函数
useLocales()、useCalendars()、getCalendars()和getLocales()将始终返回其中包含一个项目的数组,而其他平台可能会返回空数组或多个有效的区域设置/日历。
支持的版本
| 程序包版本 | 基于 | @amazon-devices/react-native-kepler版本 |
|---|---|---|
| 2.0.x | 14.6.0 | 2.0.x |
相关主题
Last updated: 2025年9月30日

