Xamarin RESX Import / Export for Mobile
Using the RESX file format to import/export content from/to your Xamarin projects
Within the Localize dashboard, we provide you with the ability to import and export phrases and translations in various file formats.
Importing / Exporting
To see a general explanation of how importing and exporting works in Localize, click here. Be sure to adhere to the file requirements below so that Localize will be able to successfully read your files.
File Requirements
UTF-8 Character Encoding
Be sure that you are using the UTF-8 character encoding when working with the external files you are creating for importing purposes, so that special characters like accents are encoded properly.
The following are the minimum requirements for the XAMARIN RESX file format.
Use XAMARIN RESX
Be sure to select the "XAMARIN RESX" file type instead of the "RESX" file type, since they use a different syntax.
The following header data is required for the file:
<?xml version="1.0" encoding="utf-8"?>
<root>
- the root node<data>
- at least 1data
node is required
The following header data is optional for the file:
<schema>
- theschema
node is optional as seen in the example below<resheader>
- theresheader
nodes are optional
The following is optional for <data>
elements:
labels
- a list of labels, separated by spaces
The data
nodes use this syntax:
<data name="PHRASE_KEY">
<value>Source phrase or translation</value>
</data>
- The
name
attribute is the phrase key, which is common across all languages files. - The
<value>
node contains either the source phrase or the corresponding translation of the phrase
Example English source language file:
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="happy-with-localize">
<value>We’re happy that we chose Localize for our localization efforts!</value>
</data>
<data name="what-we-do">
<value>What we do | Localize — LZ Product Demo</value>
</data>
<data name="partners-are-important">
<value>Our partners are so important and we accomplish a lot together.</value>
</data>
<data name="no-irrigation-possible">
<value>We can’t possibly run irrigation to this tree, so it will have to survive on its own.</value>
</data>
<data name="land-conservation">
<value>We conserve land through outreach, restoration, and research.</value>
</data>
</root>
Example Spanish target language file:
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="happy-with-localize">
<value>¡Estamos contentos de haber elegido Localize para nuestros esfuerzos de localización!</value>
</data>
<data name="what-we-do">
<value>Lo que hacemos | Localize - LZ Product Demo</value>
</data>
<data name="partners-are-important">
<value>Nuestros socios son muy importantes y logramos mucho juntos.</value>
</data>
<data name="no-irrigation-possible">
<value>No es posible que podamos regar este árbol, por lo que tendrá que sobrevivir por sí solo.</value>
</data>
<data name="land-conservation">
<value>Conservamos la tierra mediante divulgación, restauración e investigación.</value>
</data>
</root>
Example Spanish file as exported from the Localize dashboard:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated by Localizejs.com App Localization -->
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<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="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</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:choice>
</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="land-conservation" xml:space="preserve">
<value>Conservamos la tierra mediante divulgación, restauración e investigación.</value>
</data>
<data name="no-irrigation-possible" xml:space="preserve">
<value>No es posible que podamos regar este árbol, por lo que tendrá que sobrevivir por sí solo.</value>
</data>
<data name="partners-are-important" xml:space="preserve">
<value>Nuestros socios son muy importantes y logramos mucho juntos.</value>
</data>
<data name="what-we-do" xml:space="preserve">
<value>Lo que hacemos | Localize - LZ Product Demo</value>
</data>
<data name="happy-with-localize" xml:space="preserve">
<value>¡Estamos contentos de haber elegido Localize para nuestros esfuerzos de localización!</value>
</data>
</root>
Troubleshooting
If your import fails you will see a message on screen after the failure occurs. Or you can view the error here under Import History.
Updated over 1 year ago