by Michael S. Kaplan, published on 2007/10/31 12:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/10/31/5800258.aspx
This is some info that Peter Constable put together which I am re-posting with permission... good stuff! :-)
Script and Font Support In Windows
Since before Windows 2000, new script support has been added in each major release of Windows. The following describes changes made in each major release.
Note that support for a script may require certain changes to text stack components as well as changes to fonts. Windows has many different text stack components: GDI, Uniscribe, GDI+, WPF, RichEdit, ComCtl32… The information provided here pertains to GDI and Uniscribe.
Comments on language usage are included in cases in which associations between scripts and languages may not be well known. The list of languages for any given script is not necessarily exhaustive.
Windows 2000
This was the first version of Windows that included the Uniscribe component (usp10.dll). Functional benefits included:
- Shaping support for complex scripts such as Arabic and Thai were brought together in a single library, allowing all language version of Windows to be built from a single source and to display text in any supported script. (Previously, enablement support for particular languages was added to localized versions.)
- Some new complex scripts were supported.
- Font fallback for different scripts was provided. (This is done in Uniscribe ScriptString* APIs that are typically used in UI components.)
Support for basic Latin, Greek and Cyrillic (without combining marks) existed with W APIs in Windows NT 4 and Windows ME. In relation to complex scripts, support for Arabic, Hebrew and Thai existed in previous versions and was consolidated in Windows 2000 in the Uniscribe component. The following are new scripts supported in Windows 2000 and associated fonts:
New scripts
Region where script is from FontsComments on language usage Armenian Eurasia SylfaenDevanagari South Asia Mangal Used for many langauges including Hindi, Marathi, Sanskrit. Georgian Eurasia Sylfaen Tamil South Asia Latha
Windows XP
New scripts supported and associated fonts:
New scriptsRegion where script is from FontsComments on language usage Gujarati South Asia Shruti Gurmukhi South Asia Raavi Used in India for the Punjabi language. Kannada South Asia Tunga Syriac Middle East Estrangelo Edessa Telugu South Asia Gautami ThaanaSouth Asia MV BoliUsed for the Divehi language. A surrogates shaping engine was also added to Uniscribe to allow display of Unicode supplementary-plane characters in the GDI text stack. (GDI supports wide characters, but does not understand UTF-16 surrogate pairs.) Also, Uniscribe's font fallback mechanism was extended to support fallback for Unicode supplementary planes: for each plane from 1 to 16, a single fallback font can be specified in the registry.
The changes in Uniscribe to support supplementary-plane characters allow Windows XP to support CJK Extension B characters.
Windows XP SP2
New scripts supported and associated fonts:
New scriptsRegion where script is from Fonts Comments on language usage Bengali South Asia Vrinda Used for the Assamese language as well as Bengali. Malayalam South Asia Kartika
Windows Vista
New scripts supported and associated fonts:
New scriptsRegion where script is from FontsComments on language usage Canadian Syllabics North America Euphemia Used for several languages including Inuktitut and Cree. Cherokee North America Plantagenet Ethiopic Africa Nyala Used for Amharic and other languages. Khmer Southeast Asia DaunPenh
MoolBoranLao Southeast Asia DokChampa MongolianNorth Asia Mongolian BaitiOriya South Asia Kalinga Sinhala South Asia Iskoola Pota Tibetan Central Asia Microsoft Himalaya Yi China Microsoft Yi Baiti Character coverage for several already-supported scripts was extended to Unicode 4.1 or 5.0. Several fonts were updated accordingly. In particular, support for Latin, Greek, Cyrillic, Hebrew and Arabic was extended in the following fonts:
- Arial
- Courier New
- Microsoft Sans Serif
- Tahoma
- Times New Roman
The new Aero-theme UI font, Segoe UI, also provides Unicode 5.0 support for Latin, Greek, Cyrillic and Arabic.
Extension B fonts for the SimSun and MingLiU families were added, as well as a variation of MingLiU with HKSCS support.
The Uighur language uses Arabic script, which was already supported. However, a different font is required for Uighur typography. The Microsoft Uighur font was added to support this.
Uniscribe's font fallback mechanism for Unicode supplementary planes was enhanced to support different fallback fonts depending on the starting font. In this way, fallback for CJK Extension B characters uses appropriate fonts for the given language. For example, for UI displayed using the SimSun font (Simplified Chinese), the fallback font for Extension B is SimSun-ExtB.
New APIs were added to Uniscribe to support OpenType advanced typographic functionality in non-complex scripts. This provides a way for clients to expose advanced font capabilities such as language-specific glyphs; discretionary ligatures; true typographic small caps, superscripts and subscripts; old-style as well as tabular digits.
Windows Vista includes the Cambria Math font, which has additional tables used to support layout of mathematical formulas. Special software support is also required to render math formulas, however. This is provided in Office 2007, but not in Windows Vista text-stack components.
Of course the obvious question is what's coming next, but it is a bit early for that at the moment.
We should spend at least a little time revelling in what we have, right? :-)
This post brought to you by ༂ (U+0f02, a.k.a. TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA)
# Mihai on 31 Oct 2007 8:26 PM:
Great summary, nice to have it all in one place (forward thanks to Peter :-)
But "of course the obvious question is": where can we see samples of the "new APIs ... added to Uniscribe to support OpenType advanced typographic functionality in non-complex scripts."
See, it was not that obvious :-)
# Michael S. Kaplan on 3 Nov 2007 10:02 AM:
I think I just lost some comments. Grrrr.
Tom, if you wanted to re-post your comment I'll do my best to make sure I do not over-prune spam again....
# Peter Constable on 5 Nov 2007 11:06 PM:
Re Mihai's question: The following Uniscribe APIs were added in Vista to support OpenType functionality:
# Mangat Bhardwaj on 21 Apr 2008 7:58 AM:
I have no experience of Microsoft Office 2008 for Mac. But no other Mac software, including Apple's own iWork, can properly handle (compose words from) the excellent Unicode fonts of Indian scripts freely downloadable from ildc.gov.in. On the other hand, even the FREE Windows program Open Office can do this.
Jan Kučera on 22 Aug 2011 4:06 AM:
Should not be that early now, any summary of what has come next? :-)