DigitalInkRecognitionModelIdentifier
class DigitalInkRecognitionModelIdentifier : NSObject
代表特定語言、指令碼和 (選用) 地區變化版本的專屬數位墨水辨識模型。
-
這個模型符合 BCP 47 規定的語言標記。
聲明
Swift
var languageTag: String { get }
-
語言子標記,即這個辨識模型的 2 或 3 個字母的 ISO 639 語言代碼,例如
"en"
代表英文。聲明
Swift
var languageSubtag: String { get }
-
指令碼子標記,亦即此辨識模型中使用的指令碼 ISO 15924 標準代碼 (四個字母),例如:
"Latn"
代表拉丁文指令碼,"Arab"
代表阿拉伯文指令碼。聲明
Swift
var scriptSubtag: String? { get }
-
地區子標記,例如兩個字母的 ISO 3166-1 Alpha 2 標準區碼,或是聯合國 M.49 標準定義的一組數字代碼,例如
"DE"
代表德國,"002"
代表非洲。聲明
Swift
var regionSubtag: String? { get }
-
請改用
from(languageTag:)
。 -
傳回最符合 BCP 47 格式
languageTag
的語言、指令碼 (如有) 和區域 (如有) 的模型 ID。系統會盡可能進行比對,即使用下列經驗法則,傳回與所提供
languageTag
最相符的模型 ID:- 如果找不到要求的語言子標記的模型 ID,但後者屬於支援的巨集語言,會與巨集語言進行比對,例如
"arb"
(標準阿拉伯文) 會與"ar"
(阿拉伯文) 進行比對。- 如果未提供指令碼,且要求的語言子標記沒有隱含指令碼,則與任何指令碼相符。
- 如果提供的或隱含指令碼子標記是支援指令碼的子集,同樣會與後者進行比對,例如
"zh-Hant"
(中文、繁體中文) 會與"zh-Hani"
(中文、H) 進行比對。- 如未指定區域子標記,系統會比對任何區域,因此建議您比對也未指定區域的模型 ID,例如
"ro"
(羅馬尼亞文) 會與"ro-RO"
(羅馬尼亞文、羅馬尼亞) 相符。- 如果已指定區域子標記卻無法進行比對,系統會將包含指定區域的區域進行比對。舉例來說,
"fr-DZ"
(法文、阿爾及利亞) 會與"fr-002"
(法文、非洲) 進行比對。如果找不到模型 ID,則傳回
nil
。聲明
Swift
class func from(languageTag: String) throws -> DigitalInkRecognitionModelIdentifier
參數
languageTag
代表要求語言的 IETF BCP 47 語言標記。
error
如果無法剖析
languageTag
,則會填入選用的錯誤訊息物件。傳回值
與提供的語言標記完全相符的模型 ID,或是最符合的近似相符結果;如果沒有相符的模型 ID,則為
nil
。如果無法剖析語言標記,請一併設為nil
。 - 如果找不到要求的語言子標記的模型 ID,但後者屬於支援的巨集語言,會與巨集語言進行比對,例如
-
傳回完全符合指定
languageTag
的模型 ID。from(LanguageTag:)
的差異在於,它不會嘗試剖析languageTag
(因此不會產生錯誤),只會傳回與languageTag
完全相符的模型 ID (如果有的話)。聲明
Swift
/*not inherited*/ init?(forLanguageTag languageTag: String)
參數
languageTag
要求模型 ID 的 IETF BCP 47 語言標記。
傳回值
與所提供
languageTag
完全相符的DigitalInkRecognitionModelIdentifier
,如果找不到,則為nil
。 -
傳回所有可用的模型 ID。
聲明
Swift
class func allModelIdentifiers() -> Set<DigitalInkRecognitionModelIdentifier>
-
傳回支援指定語言子標記的一組模型 ID。
以
"en"
為例,這會傳回一組模型 ID,其中包含enUs
(英文、美國)、enUk
(英文、英國)、enKe
(英文、肯亞) 等。如果找不到任何支援語言子標記的模型 ID,則會傳回空白集。
聲明
Swift
class func modelIdentifiers(forLanguageSubtag languageSubtag: String) -> Set<DigitalInkRecognitionModelIdentifier>
參數
languageSubtag
ISO 639 語言代碼 2 或 3 個字母,例如
"en"
代表英文。傳回值
一組支援所提供
languageSubtag
的模型 ID 可能空白。 -
傳回支援指定指令碼子標記的一組模型 ID。
以
"Latn"
為例,這會傳回一組模型 ID,其中包含enUs
(英文、美國)、frFr
(法文、法國)、guLatn
(古吉拉特文、拉丁字母) 等。這個函式也會傳回支援指定指令碼子標記超集的模型 ID,例如針對
Hant
(Han、傳統變化版本),此函式會傳回zh-Hani
辨識模型,因為Hant
是Hani
的子集 (Han,包括傳統和簡化的變體)。如果找不到支援指令碼子標記的模型 ID,則會傳回空白集。
聲明
Swift
class func modelIdentifiers(forScriptSubtag scriptSubtag: String) -> Set<DigitalInkRecognitionModelIdentifier>
參數
scriptSubtag
ISO 15924 標準代碼,共四個字母,例如
"Latn"
代表拉丁文指令碼,"Arab"
代表阿拉伯文指令碼。傳回值
一組支援所提供
scriptSubtag
的模型 ID 可能空白。 -
傳回指定區域子標記專屬的模型 ID 組合。
舉例來說,如果是
"CH"
,這會傳回一組模型 ID,其中包含deCh
(德文、瑞士)、frCh
(法文、瑞士)、itCh
(義大利文、瑞士) 和rmCh
(羅馬尼亞文、瑞士)。這個函式也會傳回包含指定區域子標記區域的特定模型 ID,或是由指定區域子標記所包含的模型 ID。例如,搜尋
DZ
(阿爾及利亞) 會產生包含fr-002
(法文、非洲) 辨識模型的結果,反之亦然。如果找不到任何支援區域子標記的模型 ID,則會傳回空白集。
聲明
Swift
class func modelIdentifiers(forRegionSubtag regionSubtag: String) -> Set<DigitalInkRecognitionModelIdentifier>
參數
regionSubtag
雙字母 ISO 3166-1 Alpha 2 標準區碼,或是 UN M.49 標準定義的其中一個數字代碼,例如
"DE"
代表德國或非洲:"002"
。傳回值
所提供
regionSubtag
專用的一組模型 ID 可能是空白的。