What are .resx files, and what to pay attention to prior to localizing?
File Extensions | .resx, .resw |
API Extension | windows8_resource |
Import | Yes |
Export | Yes |
Pluralization supported? | No |
Descriptions supported? | Yes |
Windows 8 Resource File is an XML-based file format used primarily by Windows applications. Compared with other file formats, such as XLIFF and TS, it is not designed specifically for localization or translation. Therefore, it is usually not bi-lingual or multi-lingual. When used for localization, strings pending translation are stored in the <value> element nested under <data>. <value> elements under other tags are not supposed to be changed or filtered for translation.
Code Sample
<?xml version="1.0" encoding="UTF-8"?>
<root>
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded"/>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="boolean_key">
<value>--- true
</value>
</data>
<data name="empty_string_translation">
<value/>
</data>
<data name="key_with_description">
<value>This key has a description! (At least in some formats)</value>
<comment>I'm an important description for that key!</comment>
</data>
<data name="key_with_line-break">
<value>This translations contains
a line-break.</value>
</data>
<data name="nested.deeply.key">
<value>I'm a deeply nested key.</value>
</data>
<data name="nested.key">
<value>This key is nested inside a namespace.</value>
</data>
<data name="null_translation">
<value/>
</data>
<data name="pluralized_key">
<value>You have no pluralization.</value>
</data>
<data name="sample_collection">
<value>---
- first item
- second item
- third item
</value>
</data>
<data name="simple_key">
<value>Simple key, simple message.</value>
</data>
<data name="unverified_key">
<value>Not yet verified translation waiting for it. (In some formats we also export this status)</value>
</data>
</root>