MLKitDigitalInkRecognition 架構參考資料

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

  • 傳回完全符合指定 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 辨識模型,因為 HantHani 的子集 (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 可能是空白的。