Fuchsia.intl

添加次数:7

协议

PropertyProvider

fuchsia.intl/property_provider.fidl 中定义

提供国际化属性。

需要根据用户的国际化配置文件更改其行为的组件可以从其命名空间请求此服务的实例(如果有)。组件可以选择将它从其父项收到的服务传递给自己的子项,也可以替换该服务并应用其他自定义设置。

另请参阅 fuchsia.ui.views.View

GetProfile

获取用户的国际化配置文件。

请求

<EMPTY>

响应

名称类型
profile Profile

OnChange

表示属性可能已更改,客户端应再次查询这些属性。

响应

<EMPTY>

TimeZones

fuchsia.intl/time_zones.fidl 中定义

提供有关时区的信息,并提供日期时间转换方法。

TODO(https://fxbug.dev/42162409):添加时区信息方法,包括相对于世界协调时间 (UTC) 的偏移量。

AbsoluteToCivilTime

使用公历将指定的绝对时间转换为指定时区中的民用日期和时间。

请求

名称类型
time_zone_id TimeZoneId
absolute_time zx/Time

响应

名称类型
payload TimeZones_AbsoluteToCivilTime_Result

CivilToAbsoluteTime

将指定时区中的指定民用日期和时间转换为自 Unix 纪元以来的纳秒时间。

请求

名称类型
civil_time CivilTime
options CivilToAbsoluteTimeOptions

响应

名称类型
payload TimeZones_CivilToAbsoluteTime_Result

GetTimeZoneInfo

检索指定时区的有关详细信息。

请求

名称类型
time_zone_id TimeZoneId
at_time zx/Time

响应

名称类型
payload TimeZones_GetTimeZoneInfo_Result

结构

CalendarId

fuchsia.intl/intl.fidl 中定义

输入的单个日历系统的标识符。目前仅包含一个日历 ID。

字段类型说明默认
id string

Unicode BCP-47 语言区域标识符,具有未定义的语言标记和指定日历 ID 的单个扩展(来自 https://unicode.org/repos/cldr/Relay/common/bcp47/calendar.xml)。

示例: "und-u-ca-gregory" "und-u-ca-islamic"

无默认取景方式

LocaleId

fuchsia.intl/intl.fidl 中定义

单个语言区域的类型化标识符,该标识符是一组与国际化相关的属性。

大多数使用语言区域的 API 可能希望接受语言区域矢量以考虑优先级。

字段类型说明默认
id string

Unicode BCP-47 语言区域标识符 (http://www.unicode.org/reports/tr35/#BCP_47_Conformance)。

必须进行规范化且格式正确。不应通过任意用户或第三方输入填充此字段,而应以编程方式生成。

包括语言、区域、脚本和变体,以及 Unicode 扩展名(在“u”单例下)。允许使用其他扩展名,但会被忽略。

示例: “en-US” 美式英语 “fr-u-hc-h12” 法语(12 小时制) “ar-EG-u-fw-mon-nu-latn” 包含“拉丁”数字的埃及阿拉伯语,星期一的第一天

无默认取景方式

TimeZoneId

fuchsia.intl/intl.fidl 中定义

时区的类型标识符。

字段类型说明默认
id string

tzdata 中的时区 ID,例如“America/New_York”。请参阅 https://www.iana.org/time-zones。

无默认取景方式

TimeZones_AbsoluteToCivilTime_Response

fuchsia.intl/time_zones.fidl 中定义

字段类型说明默认
civil_time CivilTime 无默认取景方式

TimeZones_CivilToAbsoluteTime_Response

fuchsia.intl/time_zones.fidl 中定义

字段类型说明默认
absolute_time zx/Time 无默认取景方式

TimeZones_GetTimeZoneInfo_Response

fuchsia.intl/time_zones.fidl 中定义

字段类型说明默认
time_zone_info TimeZoneInfo 无默认取景方式

枚举

DayOfWeek 严格

类型:uint8

fuchsia.intl/calendar.fidl 中定义

枚举星期几。

名称说明
1
2
3
4
5
6
7

严格月份

类型:uint8

fuchsia.intl/calendar.fidl 中定义

枚举年份。

名称说明
1
2
3
4
5
6
7
8
9
10
11
12

RepeatedTimeConversion 灵活

类型:int32

fuchsia.intl/time_zones.fidl 中定义

在从夏令时转换为标准时间(将时钟调慢)期间,民用时间可以对应于两个可能的绝对时间。此设置用于确定在转换为绝对时间期间应假定其中哪个时间。

TODO(https://fxbug.dev/42162861):实现 AFTER_TRANSITION

名称说明
1

返回转换前的挂钟时间。

例如,在“America/New_York”中,在秋季的夜间过渡到标准时间时,1:30 AM 会被解读为 01:30-04:00 (EDT),即 05:30Z

SkippedTimeConversion 灵活

类型:int32

fuchsia.intl/time_zones.fidl 中定义

在从标准时间转换为夏令时期间(将时钟调快),系统会跳过一段民用时间(通常为 1 小时)。此设置用于确定应如何处理此跨度内的民用时间无效。

TODO(https://fxbug.dev/42162861):实现 BEFORE_TRANSITIONAFTER_TRANSITION

名称说明
1

尝试转换跳过的民用时间时,会返回 TimeZonesError::INVALID_DATE

2

返回所请求时间之后最接近的有效时间。

例如,在“America/New_York”中,在春季转换到夏令时的晚上,2:30 AM 不存在,因此系统会改为返回下一个有效时间 3:00 AM (EDT)。

TemperatureUnit 严格

类型:uint32

fuchsia.intl/intl.fidl 中定义

选择温度单位

名称说明
0

温度应采用摄氏度显示温度。

1

温度的格式应显示为以华氏度为单位的温度。

TimeZonesError灵活

类型:int32

fuchsia.intl/time_zones.fidl 中定义

名称说明
1

服务发生内部错误。

2

请求的时区 ID 无效。

3

提供的日期超出范围或无效。

CivilTime

fuchsia.intl/time_zones.fidl 中定义

描述民历(公历)上的时间,精度为纳秒。这大致相当于 C 标准库中 time.h 中的 tm 结构体,用作输出或解析日期的结构化中间格式。

序数字段类型说明
year uint16

年份,在闭区间 [1678, 2262] 中。

month Month

一年中的月。

day uint8

一个月中的某一天,在闭区间 [1, 31] 之间。

hour uint8

一天中的小时,在闭区间 [0, 23] 中。

minute uint8

一小时中的分钟,闭合范围 [0, 59]

second uint8

一分钟中的秒,在闭合范围 [0, 59] 中。

(请注意,Fuchsia 目前在转换日期时不会计算闰秒。)

nanos uint64

纳秒,在闭合范围 [0, 999_999_999] 中。

weekday DayOfWeek

周几。

year_day uint16

一年中的第几天,在闭区间 [0, 365] 之间。

time_zone_id TimeZoneId

与此时间对应的时区。如果省略,则默认为世界协调时间 (UTC)。

CivilToAbsoluteTimeOptions

fuchsia.intl/time_zones.fidl 中定义

TimeZones.CivilToAbsoluteTime”的选项。

序数字段类型说明
repeated_time_conversion RepeatedTimeConversion

用于在向后夏令时转换期间处理重复时间的可选设置。

默认值:BEFORE_TRANSITION

skipped_time_conversion SkippedTimeConversion

用于在正向夏令时转换期间处理跳过时间的可选设置。

默认值:NEXT_VALID_TIME

配置文件

fuchsia.intl/intl.fidl 中定义

按顺序排名的国际化属性的集合。

此类信息没有默示来源;它可能来自用户帐号、设备设置、用户设置的组合以及针对具体应用的替换项,也可能来自任何其他位置。

Unicode BCP-47 语言区域 ID 支持的与语言无关的属性(例如周几、时区)会反规范化为 locales 中的语言区域 ID。

序数字段类型说明
locales vector<LocaleId>

语言区域排名列表(按优先级降序排列)。矢量将始终被设置,并且始终至少包含一个元素。例如,locales = [ LocaleId("en-US") ] 有效,但 locales = [] 或 locales = 无效。

calendars vector<CalendarId>

日历的排名列表(按偏好设置的降序排列)。 第一个条目是主日历,将等于 locales 中指示的日历。矢量将始终被设置,并且始终至少包含一个元素。该列表支持多项按顺序排名的偏好设置,可供可显示多个日历系统的应用使用。

time_zones vector<TimeZoneId>

时区排名列表(按降序排列)。第一个条目是主时区,默认情况下应使用此时区来设置日期和时间的格式;该时区与 locales 中指示的日历相同。该列表适用于可以显示多个时区的应用,例如世界时钟。 矢量将始终被设置,并且始终至少包含一个元素。在 Fuchsia 上,未定义或选择更具体的时区时,默认时区始终为 DEFAULT_TIME_ZONE_ID

temperature_unit TemperatureUnit

所选温度单位。系统始终会报告单位:如果当前环境中没有设置,则系统会使用默认值 CELSIUS。

RegulatoryDomain

fuchsia.intl/intl.fidl 中定义

IEEE 802.11 标准中指定的监管域的类型化标识符。

序数字段类型说明
country_code string

ISO 3166-1 alpha-2,由两个字母组成的代码,表示操作域。 (https://www.iso.org/publication/PUB500001.html)

TimeZoneInfo

fuchsia.intl/time_zones.fidl 中定义

描述时区在特定时刻的属性。

TODO(https://fxbug.dev/42162409):包含偏移和 DST 状态细分的附加字段。

序数字段类型说明
id TimeZoneId

时区的 IANA ID。

total_offset_at_time zx/Duration

在查询时间 (at_time) 与 UTC 之间的总偏移量(如果时区采用的是夏令时,则包括夏令时)。如果时区早于 UTC,此值将是一个正值;如果时区晚于世界协调时间 (UTC),则为负值。

in_dst_at_time bool

指示时区在查询的时间 (at_time) 是否采用夏令时。

联合

TimeZones_AbsoluteToCivilTime_Result 严格

fuchsia.intl/time_zones.fidl 中定义

序数变体类型说明
response TimeZones_AbsoluteToCivilTime_Response
err TimeZonesError

TimeZones_CivilToAbsoluteTime_Result 严格

fuchsia.intl/time_zones.fidl 中定义

序数变体类型说明
response TimeZones_CivilToAbsoluteTime_Response
err TimeZonesError

TimeZones_GetTimeZoneInfo_Result 严格

fuchsia.intl/time_zones.fidl 中定义

序数变体类型说明
response TimeZones_GetTimeZoneInfo_Response
err TimeZonesError

常量

名称类型说明
DEFAULT_TIME_ZONE_ID UTC String

这是在未设置时区时报告的时区。