Font and language configuration support for Windows Phone 8

May 10, 2014

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Windows Phone 8 supports fonts for the majority of the writing systems of the world. Although the phone client UI is localized in 50 major languages, apps can display a much larger selection of languages. Both Windows Phone 8 and Windows Phone OS 7.1 support each language with at least one font family, often more.

This topic contains the following sections.

For Windows Phone 8, all fonts are present on all phone versions. However, for Windows Phone OS 7.1, although there is at least one font provided for each supported language, some additional language-specific fonts shipped only in markets using those languages.

Custom embedded fonts

Apps also may embed fonts to provide typefaces not included with the phone.

Text input

The selection of languages for which a phone has preinstalled keyboards and input method UIs is dependent on which market a phone is sold in. At any time the user can download and use a keyboard for any of the 50 supported phone client UI languages. The language of the keyboard, which determines the characters that are written to a TextBox control, is not programmatically available to an app.

Impact of xaml:lang on fonts

Windows Phone displays text in the FontFamily specified by your app. When characters aren’t supported by that FontFamily, or your app doesn't specify a FontFamily, Windows Phone chooses a font based on both the character and the xml:lang of the framework element that displays the text.

On Windows Phone, xml:lang drives fallback font selection, complex script shaping, and type conversion in data bindings. Additionally, third-party controls often base behavior on the xml:lang, for example, date pickers.

The xml:lang attribute of the framework element that displays text can be changed by app code. It’s typically set or retrieved using the Language attribute of a control. If an app doesn’t specify the Language of an element in XAML markup or in the code-behind, it inherits the value from its parent. If the Language of an app’s root element is not specified, it will be “‘en-US”. If you add supported languages to localize your app, note that New Project templates include code to pick up the app language from the loaded localized resource file and assign it to the RootFrame.Language by default.

Unicode code point and Language

Because of inherent Unicode features, in some cases simply specifying the correct Unicode value may not result in rendering the expected font. For East Asian languages and languages written with a complex script, specifying the correct Language value of the element displaying a font is particularly important. These include the locales described by the codes “zh-CN”, “zh-TW”, “ja-JP”, and “ko-KR”, and locales with languages written using Arabic, Cyrillic, and Devanagri scripts.

For the full list of supported display languages, see Culture and language support for Windows Phone.

As mentioned in the overview, new project default behavior is that Language properties of the running app are initialized using parameters from the resource file the app loads when it launches (ResourceLanguage and ResourceFlowDirection). This behavior imposes the pattern that the font and text flow direction are aligned with the language of the resource being displayed at run time.

When you add additional languages (Supported Culture) to your app, Visual Studio generates a new .resx file for each language. It inserts the regional ID code (LCID) of the supported culture into the filename. Visual Studio also initializes the string table values of the language parameters to match the language of the resource file’s locale and the traditional flow direction of its script.

The InitializeLanguage() function in the App.xaml.cs file sets the app's RootFrame.Language based on the value of the AppResoures.ResourceLanguage resource, and its RootFrame.lowDirection based on the value of the AppResources.ResourceFlowDirection resource.

If the default pattern of the Language alignment described here doesn’t work for your app design, you can override the default language and flow direction for any locale in several ways. A few examples are listed below. If you decide to break the default behavior, remember the need to explicitly set the Language values in your controls when any of them display East Asian and complex script languages.

  • If you want to start from scratch, you can comment out the app's InitializeLanguage method call in App.xaml.cs.

  • If you want to globally impose a specific language regardless of which locale the user has chosen for their phone's display language, you can modify the RootLanguage string in each of the app’s .resx files.

  • If you want FlowDirection to globally flow in one direction regardless of traditional direction of the app’s runtime language, you can modify the ResourceFlowDirection string in the apps .resx files.

  • If you want a specific element (or set of elements) to use a specific language, leave the app's default InitializeLanguage pattern in place and override inheritance by explicitly declaring the language of any element at any point in the XAML hierarchy.

Keep language alignment in mind if you plan to display localized data from a server in your app. You can run into an issue with the languages described here if the language of the content displayed is different from the language specified in CurrentUICulture in the running app. By knowing the language of the data to be displayed—via app logic or server metadata—and explicitly setting the language attributes of the display element(s) to match, you can keep language alignment for your app.

Language alignment also is a concern for user input. Although it is ideal to set the Language attribute of an element to the language of the content it will display, remember that the language of the keyboard in current use is not available in the app model.

If Windows Phone doesn’t support a font that you want to use in your app, you can embed the font in your app.

Caution noteCaution:

The East Asian language fonts listed in the UI Fonts Supported in Windows Phone table are not redistributable for apps.

Windows Phone uses Unicode to represent characters. We recommend developing your app with Unicode encoding to ensure that your app can run in a global context. You can use the Encoding class to convert encodings from one Unicode type to another, for example, from UTF-8 to UTF-16.

Characters without encoding

Non-Unicode characters without encoding information are displayed according to the system locale setting on the phone. The system locale setting is set by the user, and represents the default character set and font on the phone.

Yen and Won characters - ¥ and ₩

The 'Reverse Solidus' Unicode character (U+005C) displays a Yen character in the Japanese display language, and a Won character in the Korean display language. However, because this character will render as a backslash in any other display language, instead use the 'Yen Sign' Unicode character (U+00A5) and the 'Won Sign' Unicode character (U+20A9) to ensure that they always render correctly.

WebBrowser control

If you use the WebBrowser control to display content or design a website to be displayed on a Windows Phone, ensure that you include the correct encoding metadata information in your HTML.

In the following code example, many characters will not accurately render in the WebBrowser instance named BrowserControl, because the string is not correctly encoded.

string testString = "<html><body>日本列島の占領の最初の兆候が縄文時代で約14,000のBC。</body></html>";BrowserControl.NavigateToString(testString);

Instead, include encoding information in the HTML content, as described in the following code example.

string testString = "<html><head><meta content=”text/html; charset=utf-16”/></head><body>日本列島の占領の最初の兆候が縄文時代で約14,000のBC。</body></html>";BrowserControl.NavigateToString(testString);

The following table lists all UI fonts that are supported on a Windows Phone device. Availability of each font for a specific device depends on which display languages are included on the device.

Latin, Cyrillic, and Greek–based languages

All Latin, Cyrillic, Greek, Arabic, and Hebrew–based display languages use the UI font Segoe WP. This font is included on all phones, so even if a different display language, such as Japanese, is set, any Latin, Cyrillic, Greek, Arabic, or Hebrew–based text will render using the Segoe WP UI font.

Windows Phone 8 UI fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Segoe WP

Latin, Cyrillic, Greek, Arabic, and Hebrew–based languages

green check markconditional check markconditional check markconditional check markred xred x

DengXian

Chinese (Simplified)

green check markconditional check markconditional check markconditional check markred xred x

Microsoft Mhei

Chinese (Traditional)

green check markconditional check markconditional check markconditional check markred xred x

Yu Gothic

Japanese

green check markconditional check markconditional check markconditional check markred xred x

Microsoft NeoGothic

Korean

green check markconditional check markconditional check markconditional check markred xred x

Segoe UI

Latin, Cyrillic, Greek, Arabic, and Hebrew–based languages

green check markconditional check markconditional check markconditional check markred xred x

Nirmala UI

India languages

green check markconditional check markconditional check markconditional check markred xred x

Leelawadee

Thai

green check markconditional check markconditional check markconditional check markred xred x

Segoe UI Symbol

Supports various Unicode symbols, including emoji symbols added in Unicode 6.0.

green check markconditional check markconditional check markconditional check markred xred x

Windows Phone OS 7.1 UI fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Segoe WP

Latin, Cyrillic, Greek, Arabic, and Hebrew–based languages

green check markconditional check markconditional check markconditional check markgreen check markgreen check mark

Segoe WP SemiLight

Latin, Cyrillic, Greek, Arabic, and Hebrew–based languages

green check markconditional check markconditional check markconditional check markred xred x

Segoe WP SemiBold

Latin, Cyrillic, Greek, Arabic, and Hebrew–based languages

green check markconditional check markconditional check markconditional check markred xred x

DengXian

Chinese (Simplified)

green check markconditional check markconditional check markconditional check markred xred x

Microsoft Mhei

Chinese (Traditional)

green check markconditional check markconditional check markconditional check markred xred x

Yu Gothic

Japanese

green check markconditional check markconditional check markconditional check markred xred x

Microsoft NeoGothic

Korean

green check markconditional check markconditional check markconditional check markred xred x

Segoe UI

Latin, Cyrillic, Greek, Arabic, and Hebrew–based languages

green check markconditional check markconditional check markconditional check markred xred x

SimSun

Chinese (Simplified)

Caution noteCaution:
This font is included only on Windows Phone OS 7.1 devices that have the Chinese (Simplified) display language.
green check markconditional check markconditional check markconditional check markred xred x

Segoe UI Symbol

Supports various Unicode symbols, including emoji symbols added in Unicode 6.0.

green check markconditional check markconditional check markconditional check markred xred x

NoteNote:

Use the Yu Gothic UI font when localizing your Windows Phone app for Japanese.

The following table lists all text display fonts that are supported on a Windows Phone.

Windows Phone 8 text display fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Ebrima

Nko, Ethiopic, Tifinagh, Vai, and Osmanya

green check markconditional check markconditional check markconditional check markred xred x

Estrangelo Edessa

Syriac

green check markconditional check markconditional check markconditional check markred xred x

Gadugi

Cherokee, and Unified Canadian Aboriginal Syllabics

green check markconditional check markconditional check markconditional check markred xred x

Khmer UI

Khmer

green check markconditional check markconditional check markconditional check markred xred x

Lao UI

Lao

green check markconditional check markconditional check markconditional check markred xred x

Microsoft Himalaya

Tibetan

green check markconditional check markconditional check markconditional check markred xred x

Microsoft New Tai Lue

New Tai Lue

green check markconditional check markconditional check markconditional check markred xred x

Microsoft Tai Le

Tai Le

green check markconditional check markconditional check markconditional check markred xred x

Microsoft Uighur

Uighur

green check markconditional check markconditional check markconditional check markred xred x

Microsoft Yi Baiti

Yi

green check markconditional check markconditional check markconditional check markred xred x

Mongolian Baiti

Mongolian

green check markconditional check markconditional check markconditional check markgreen check markgreen check mark

MV Boli

Thaana

green check markconditional check markconditional check markconditional check markred xred x

PhagsPa

Phags-pa

green check markconditional check markconditional check markconditional check markred xred x

SimSun

Chinese (Simplified)

green check markconditional check markconditional check markconditional check markred xred x

Urdu Typesetting

Arabic

green check markconditional check markconditional check markconditional check markred xred x

Windows Phone OS 7.1 text display fonts

NoteNote:

The following Windows Phone OS 7.1 text display fonts aren’t available in Windows Phone 8.

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Microsoft YaHei

Chinese (Traditional), Chinese (Simplified)

green check markconditional check markconditional check markconditional check markred xred x

Meiryo UI

Japanese

green check markconditional check markconditional check markconditional check markred xred x

Malgun Gothic

Korean

green check markconditional check markconditional check markconditional check markred xred x

The following table lists all additional fonts that are supported on a Windows Phone.

Windows Phone 8 additional fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Arial

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xgreen check mark

Calibri

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markgreen check markred x

Comic Sans MS

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Courier New

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Georgia

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Lucida Sans Unicode

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Tahoma

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Times New Roman

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Trebuchet MS

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Verdana

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Windows Phone OS 7.1 additional fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Arial

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xgreen check mark

Calibri

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Comic Sans MS

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Courier New

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Georgia

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Lucida Sans Unicode

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Tahoma

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Times New Roman

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Trebuchet MS

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Verdana

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

The following table lists all mathematical and symbol fonts that are supported on a Windows Phone.

Windows Phone 8 mathematical and symbol fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Cambria / Cambria Math

Latin, Cyrillic, and Greek–based languages

green check markconditional check markconditional check markconditional check markred xred x

Wingdings

Symbols

green check markconditional check markconditional check markconditional check markred xred x

Webdings

Symbols

green check markconditional check markconditional check markconditional check markred xred x

Windows Phone OS 7.1 symbol fonts

Font name

Languages

Regular

Bold

Italic

Italic Bold

Light

Black

Wingdings

Symbols

green check markconditional check markconditional check markconditional check markred xred x

Webdings

Symbols

green check markconditional check markconditional check markconditional check markred xred x

The symbols used in the above tables are explained as follows:

Symbol

Description

green check mark

Supported

conditional check mark

Achieved by algorithmic bolding or italicization

red x

Not supported

Show:
© 2014 Microsoft