Поделиться через


Службы транслитерации

Службы транслитерации ELS сопоставляют текст UTF-16 из одной системы записи с другой системой записи. Каждая служба действительно применяется к определенному набору скриптов ввода и вывода Юникода, а фактическое транслитерация является внутренней для платформы ELS. Приложение может дополнительно перечислить доступные службы для определенных скриптов ввода и вывода и выбрать нужную службу.

Платформа поддерживает метаданные для служб транслитерации ELS. Метаданные для каждой службы предоставляют описание службы и перечисляют скрипты ввода и вывода, поддерживаемые службой. Метаданные представлены структурой MAPPING_SERVICE_INFO, полученной функцией MappingGetServices.

Входные данные в службу транслитерации

Входные данные для службы транслитерации — это текст UTF-16 в одной системе записи.

Выходные данные службы транслитерации

Выходные данные службы транслитерации — это текст UTF-16, сопоставленный со второй системой записи. Если для любого заданного блока входного текста не доступно соответствующее сопоставление транслитерации, блок остается неизменным.

Операция службы транслитерации

Служба транслитерации сопоставляет текст Юникода из входного скрипта с выходным скриптом, символом по символам или термином по термину в соответствии с соответствующим образом. Приложение может выбрать получение определенной службы транслитерации, указав входные и выходные скрипты при вызове MappingGetServicesили указав GUID службы. Другим вариантом для приложения является перечисление всех доступных служб транслитерации путем указания категории службы "Transliteration" при вызове MappingGetServices. В этом случае приложение вызывает каждую службу и сравнивает результаты с исходным текстом, чтобы узнать, были ли результаты изменены операцией определенной службы.

Приложение может запросить распознавание текста для службы транслитерации ELS с вызовом MappingRecognizeText. При получении запроса служба транслитерации выделяет буфер для хранения транслитерированных данных, а затем выполняет распознавание текста для каждой точки кода в входной строке, предоставленной приложением.

Заметка

Исходный текст и транслитерированный текст могут иметь разные длины.

 

Идентификаторы GUID службы транслитерации

Идентификаторы 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 } };

о расширенных лингвистических службах