Uniscribe es el conjunto de servicios de Microsoft Windows para la representación de texto codificado en Unicode , compatible con el diseño de texto complejo . Se implementa en la biblioteca de vínculos dinámicos USP10.DLL . Uniscribe se lanzó con Windows 2000 e Internet Explorer 5.0. Además, la plataforma Windows CE admite Uniscribe desde la versión 5.0.
"USP" es la sigla de Procesador de Scripts Unicode . Entre sus características se incluyen :
Aunque Uniscribe sigue manteniéndose a partir de 2021, su reemplazo previsto DirectWrite , que tiene más funciones, se introdujo con Windows 7. [ 1]
A continuación se enumeran algunas versiones comunes de usp10.dll, así como los métodos mediante los cuales se distribuyen.
Las características se agregan de acuerdo con la parte "principal.secundaria" del número de versión, la tercera parte del número de versión completo se utiliza para los números de identificación del sistema de destino para el cual Microsoft portó la DLL y la última parte es el número de compilación en cada versión del sistema de destino (que puede cambiar dentro de las actualizaciones regulares del sistema/software). Algunas revisiones brindan actualizaciones solo para aplicaciones específicas (especialmente en el directorio de instalación de Office) y no son adecuadas para su uso en el directorio del sistema de Windows (cuya versión de la DLL nunca se debe actualizar y a menudo está protegida por el sistema):
Los tamaños de archivo pueden variar dependiendo de las localizaciones específicas de la DLL (dependiendo del sistema de destino o la aplicación para la que fue compilada); las que se dan aquí son para la localización en inglés de EE. UU.
Los alfabetos con un diseño de texto complejo tienen requisitos contextuales y no lineales para reproducir su tipografía correctamente. Estos requisitos incluyen: ligaduras , donde dos caracteres consecutivos se combinan en una sola forma (latín, devanagari); reordenamiento, donde algunos caracteres se escriben antes de la letra que siguen en la pronunciación (bengalí, cingalés y otros alfabetos índicos); y modelado contextual, donde algunas letras tienen que cambiar de forma dependiendo de si aparecen al principio, en el medio o al final de la palabra (árabe, mongol).
Uniscribe utiliza varios motores de modelado específicos para cada escritura para manejar la tipografía en las escrituras complejas admitidas; estos se implementan además de un motor genérico para escrituras no complejas (como latinas o cirílicas). Los motores que se utilizan actualmente incluyen [3] variantes de la lengua índica (bengalí, devanagari, gujarati, gurmukhi, kannada, etc.), árabe, hangul, hebreo, jemer, birmano y tailandés/lao.
La complejidad del estándar Unicode y las ambigüedades en la especificación OpenType a menudo resultan en implementaciones incompletas o erróneas de diseños de texto complejos. Los motores de modelado específicos de cada script funcionan caso por caso y no manejan de manera consistente las características comunes de las fuentes OpenType, lo que dificulta que los programadores de sistemas operativos y los desarrolladores de fuentes admitan nuevos scripts. Los errores de implementación son muy difíciles o imposibles de corregir en una etapa posterior sin romper la compatibilidad con versiones anteriores de los documentos y fuentes existentes, lo que a menudo requiere nuevas características de diseño OpenType y un rediseño de las fuentes y motores de renderización tipográfica existentes. [3] [7] [8] [9]
En Windows 10, se realizó un importante trabajo de refactorización para Uniscribe con el fin de implementar un modelo de modelado generalizado, el Universal Shaping Engine (USE). [10] Este motor se basa directamente en las propiedades de los glifos definidas en el estándar Unicode, con la esperanza de que cualquier escritura compleja con una fuente adecuada fuera compatible sin el tiempo y el esfuerzo necesarios para crear un motor de modelado dedicado. [4]
USE se basa en un "modelo de clúster universal" generalizado desarrollado para las escrituras índicas, que modela un superconjunto de sistemas de escritura humana. El motor clasifica cada carácter de una escritura compleja en varias categorías, clases base y subclases. Por ejemplo, una clasificación índica provisional incluye categorías generales, silábicas y posicionales, divididas a su vez en base (número, consonante, letra tonal, vocal dependiente, etc.), vocal base (vocal independiente), número (número de unión de Brahmi), consonantes finales, mediales y modificadoras, consonantes mediales, así como consonantes y vocales superiores, inferiores, izquierdas y derechas. Las cadenas de símbolos Unicode se convierten en colecciones de clases USE utilizando reglas bien definidas, lo que hace que la composición de glifos sea un procedimiento estándar y permite interacciones entre caracteres que no son posibles con las características lingüísticas actuales definidas en las especificaciones OpenType. [3]
El Universal Shaping Engine se presentó en la reunión de desarrolladores OpenType de 2014; un enfoque compatible también fue implementado por el modelador de texto de código abierto HarfBuzz . A partir de 2020, el USE en Windows 10 maneja un total de 70 scripts complejos: Adlam, Ahom, Balinese, Batak, Bhaiksuki, Brahmi, Buginese, Buhid, Chakma, Cham, Chorasmian, Dives Akuru, Duployan, Egypt Hieroglyphs, Elymaic, Grantha, Gunjala Gondi, Hanifi Rohingya, Hanunoo, Javanese, Kaithi, Kayah Li, Kharoshthi, Khitan Small Script, Khojki, Khudawadi, Lepcha, Limbu, Mahajani, Makasar, Mandaic, Manichaean, Marchen, Masaram Gondi, Medefaidrin, Meitei Mayek, Miao, Modi, Mongolian, Multani, Nandinagari, Newa, N'Ko, Nyiakeng Puachue Hmong, Pahawh Hmong, Phags-pa, Salterio Pahlavi, Rejang, Saurashtra, Sharada, Siddham, Sinhala, Sogdian, Old Sogdian, Soyombo, Sundanese, Syloti Nagri, Tagalog, Tagbanwa, Tai Le, Tai Tham (apoyo limitado), Tai Viet, Takri, Tibetan, Tifinagh, Tirhuta, Wancho, Yezidi y Zanabazar Square. [10]
Aunque Uniscribe está disponible desde Windows 2000, las nuevas versiones de Uniscribe han proporcionado más funciones al sistema, en concreto, compatibilidad con otros sistemas de escritura. Una actualización anterior de la misma admitía la visualización de árabe y hebreo , y luego de tailandés y vietnamita . Desde Windows XP , se admiten más escrituras del sur de Asia y asirias.