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


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

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

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

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

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

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

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

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

Служба транслитерации сопоставляет текст Юникода из входного скрипта с выходным скриптом, символом за символом или термином. Приложение может выбрать получение конкретной интересующей службы транслитерации, указав входные и выходные скрипты при вызове MappingGetServices или указав GUID службы. Другой вариант для приложения — перечислить все доступные службы транслитерации, указав категорию служб "Транслитерация" при вызове 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 } };

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