xml:lang Handling in XAML

The xml:lang attribute is an XML-defined attribute that declares the language and culture information for an element in XML. This same meaning of the attribute persists in XAML; however, some additional considerations apply.

XAML Attribute Usage

<object xml:lang="rfc3066lang" />

XAML Values

Value Description
rfc3066lang A string that is derived from the RFC 3066 standard and identifies either a language or a language-region. When it is the latter, the language and region are separated by a single hyphen. See XmlLanguage for more information about the values and format.


The definition for the xml:lang attribute in XAML is derived from xml:lang as defined as a "special attribute" by the World Wide Web Consortium (W3C) for XML. Language and culture information is potentially processed in different ways by elements, depending on their implementations; however, there is no default XAML processing of the xml:lang attribute.

The default value of the xml:lang attribute is an empty string at the attribute level.

The xml:lang attribute effects and the value of the attribute are generally perpetuated to child elements, when interpreted by systems that act on xml:lang values.

When interpreted by XAML writers of .NET XAML Services, an xml:lang value can create XmlLanguage or CultureInfo objects in the underlying object representation; however, that behavior depends on whether the value specified for xml:lang is a valid construction for those classes.

Frameworks can create associations between framework-defined properties and the meaning of xml:lang in XML by applying XmlLangPropertyAttribute to the property.

WPF Usage Nodes

For elements that are derived classes of FrameworkElement or FrameworkContentElement, you can use the equivalent Language dependency property instead of the xml:lang attribute. By default, the Language property uses "en-US" if it is not otherwise set, either through the property or through processing the xml:lang attribute.

See also