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):新增時區資訊方法,包括與世界標準時間的偏移值。

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。

欄位類型說明預設
id string

含有未定義語言標記的 Unicode BCP-47 語言代碼 ID,以及指定日曆 ID 的單一擴充功能 (來自 https://unicode.org/repos/cldr/中繼/common/bcp47/calendar.xml)。

範例:「und-u-ca-gregory」 「und-u-ca-islamic」

無預設

LocaleId

定義於 fuchsia.intl/intl/fidl

單一語言代碼的輸入 ID,這是一組國際化相關屬性。

大多數使用語言代碼的 API 可能會想接受向量語言代碼,以便將優先順序納入考量。

欄位類型說明預設
id string

Unicode BCP-47 語言代碼 ID (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。

欄位類型說明預設
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 無預設

ENUMS

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

在標準時間從標準時間轉換至日光節約時間 (時間向前) 期間,系統會略過民間時段 (通常是一小時)。這項設定會決定應如何處理這個 Span 中的無效民用時間。

TODO(https://fxbug.dev/42162861):實作 BEFORE_TRANSITIONAFTER_TRANSITION

名稱說明
1

嘗試轉換略過的民用時間時,會傳回 TimeZonesError::INVALID_DATE

2

傳回要求時間之後的最接近的有效時間。

例如,在春天轉換為日光節約時間的「America/New_York」中並不存在 2:30 AM,因此下一個有效時間會改為傳回 3:00 AM (EDT)。

溫度單位嚴格

類型: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]

(請注意,Fusia 目前在轉換日期時不會計算閏秒)。

nanos uint64

奈秒的封閉範圍為 [0, 999_999_999]

weekday DayOfWeek

星期幾。

year_day uint16

一年中的日間休息範圍 ([0, 365])。

time_zone_id TimeZoneId

與這個時間相對應的時區。如果省略,則預設值為世界標準時間。

CivilToAbsoluteTimeOptions

定義於 fuchsia.intl/time_zones.fidl

TimeZones.CivilToAbsoluteTime」的選項。

序數欄位類型說明
repeated_time_conversion RepeatedTimeConversion

用於處理回溯日光節約時間轉換期間重複時間的選用設定。

預設值:BEFORE_TRANSITION

skipped_time_conversion SkippedTimeConversion

用於處理日光節約時間轉換時略過時間的選用設定。

預設值:NEXT_VALID_TIME

Profile

定義於 fuchsia.intl/intl/fidl

一系列經過排名的國際化房地產。

此資訊沒有隱含來源;可能來自使用者帳戶、裝置設定、使用者設定和應用程式專屬覆寫的綜合資料,或是任何其他來源。

Unicode BCP-47 語言代碼 ID 支援的語言獨立屬性 (例如一週的第一天、時區) 會反正規化為 locales 中的語言代碼 ID。

序數欄位類型說明
locales vector<LocaleId>

語言代碼清單 (依偏好順序遞減排序)。向量一律會設定,且一律包含至少一個元素。舉例來說,locales = [ LocaleId("en-US") ] 有效,但語言代碼 = [] 或語言代碼 = 不是。

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 標準指定的規定網域輸入的 ID。

序數欄位類型說明
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

序數Variant類型說明
response TimeZones_AbsoluteToCivilTime_Response
err TimeZonesError

TimeZones_CivilToAbsoluteTime_Result 嚴格

定義於 fuchsia.intl/time_zones.fidl

序數Variant類型說明
response TimeZones_CivilToAbsoluteTime_Response
err TimeZonesError

TimeZones_GetTimeZoneInfo_Result 嚴格

定義於 fuchsia.intl/time_zones.fidl

序數Variant類型說明
response TimeZones_GetTimeZoneInfo_Response
err TimeZonesError

業者

名稱類型說明
DEFAULT_TIME_ZONE_ID UTC String

這是未設定時區時回報的時區。