音譯服務
ELS 音譯服務會將 UTF-16 文字從一個寫入系統對應到另一個寫入系統。 每個服務實際上是套用至一組特定輸入和輸出 Unicode 腳本的資料,而實際的音譯是在 ELS 平臺內部。 應用程式可以選擇性地列舉特定輸入和輸出腳本的可用服務,並選取所需的服務。
平臺會維護 ELS 音譯服務的中繼資料。 每個服務的中繼資料都會提供服務的描述,並列出服務支援的輸入和輸出腳本。 中繼資料是由MappingGetServices函式所擷取的MAPPING_SERVICE_INFO結構表示。
輸入轉譯服務
轉譯服務的輸入是一個寫入系統中的 UTF-16 文字。
音譯服務的輸出
音譯服務的輸出是對應至第二個寫入系統的 UTF-16 文字。 如果輸入文字的任何指定區塊都無法使用適當的音譯對應,區塊會保持不變。
音譯服務作業
音譯服務會視需要,將 Unicode 文字從輸入腳本對應至輸出腳本、依字元或逐字詞。 應用程式可以選擇在呼叫 MappingGetServices時指定輸入和輸出腳本,或提供服務 GUID,以取得感興趣的特定音譯服務。 應用程式的另一個選項是藉由在呼叫 MappingGetServices時指定服務類別 「Transliteration」 來列舉所有可用的音譯服務。 在此情況下,應用程式會呼叫每個服務,並比較結果與原始文字,以查看特定服務的作業是否已變更結果。
應用程式可以使用 MappingRecognizeText的呼叫,要求 ELS 音譯服務的文字辨識。 收到要求時,音譯服務會配置緩衝區以包含轉譯的資料,然後針對應用程式所提供的輸入字串中的每個程式碼點執行文字辨識。
注意
原始文字和音譯文字的長度可能不同。
音譯服務 GUID
Transliteration 服務的 GUID 會在 Elssrvc.h 中宣告,如下列程式碼所示。
// {A3A8333B-F4FC-42f6-A0C4-0462FE7317CB}
static const GUID ELS_GUID_TRANSLITERATION_HANT_TO_HANS =
{ 0xA3A8333B, 0xF4FC, 0x42f6, { 0xA0, 0xC4, 0x04, 0x62, 0xFE, 0x73, 0x17, 0xCB } };
// {3CACCDC8-5590-42dc-9A7B-B5A6B5B3B63B}
static const GUID ELS_GUID_TRANSLITERATION_HANS_TO_HANT =
{ 0x3CACCDC8, 0x5590, 0x42dc, { 0x9A, 0x7B, 0xB5, 0xA6, 0xB5, 0xB3, 0xB6, 0x3B } };
// {D8B983B1-F8BF-4a2b-BCD5-5B5EA20613E1}
static const GUID ELS_GUID_TRANSLITERATION_MALAYALAM_TO_LATIN =
{ 0xD8B983B1, 0xF8BF, 0x4a2b, { 0xBC, 0xD5, 0x5B, 0x5E, 0xA2, 0x06, 0x13, 0xE1 } };
// {C4A4DCFE-2661-4d02-9835-F48187109803}
static const GUID ELS_GUID_TRANSLITERATION_DEVANAGARI_TO_LATIN =
{ 0xC4A4DCFE, 0x2661, 0x4d02, { 0x98, 0x35, 0xF4, 0x81, 0x87, 0x10, 0x98, 0x03 } };
// {3DD12A98-5AFD-4903-A13F-E17E6C0BFE01}
static const GUID ELS_GUID_TRANSLITERATION_CYRILLIC_TO_LATIN =
{ 0x3DD12A98, 0x5AFD, 0x4903, { 0xA1, 0x3F, 0xE1, 0x7E, 0x6C, 0x0B, 0xFE, 0x01 } };
// {F4DFD825-91A4-489f-855E-9AD9BEE55727}
static const GUID ELS_GUID_TRANSLITERATION_BENGALI_TO_LATIN =
{ 0xF4DFD825, 0x91A4, 0x489f, { 0x85, 0x5E, 0x9A, 0xD9, 0xBE, 0xE5, 0x57, 0x27 } };
相關主題