Xamarin: How to use Localize to translate your Xamarin mobile application
This guide will walk you through the process of using Localize to translate your mobile application using the Xamarin framework.
What you'll learn
- How to import files, translate files, export files, for use in your Xamarin mobile apps using one of the following file formats:
RESXfiles for Xamarin.FormsLocalizable.stringsfiles for the Xamarin.iOS native platformAndroid Stringsfiles for the Xamarin.Android native platform
Prerequisites
- You have a project set up in Localize
- You have experience developing Xamarin mobile applications
Xamarin.Forms
Preparing your Xamarin.Forms for localization
When localizing the text content in your Xamarin.Forms you will be using RESX files. You will create a separate RESX file for each language. You should name the files using the same root name as the main resource file, adding the appropriate language code to the filename. For example:
- Resources.resx - for the source language file
- Resources.es.resx - for the Spanish target language file
- Resources.fr.resx - for the French target language file
If you have hard-coded any copy into Xamarin.Forms directly you will need to apply best practices and abstract your strings into a RESX file.
When a user’s mobile device is changed to a different language, your mobile application will attempt to load resources for that language by loading the appropriate assembly. For example, if the mobile device is set to French your application will attempt to load resources from the assembly that contains the Resources.fr.resx file.
Using the Localize Dashboard to translate your Xamarin.Forms
Import your RESX file into Localize
RESX file into Localize- Within your Localize Dashboard go to the Phrases > File Import/Export page
- Select Import from the left submenu
- Select RESX as your file type
- Select the language you are importing
- Select an import type of Phrases
- Upload and submit your
RESXfile
Translate your imported phrases
Using the Localize dashboard, you may translate your source language phrases into as many languages as you need. If you are unfamiliar with the translation workflow, please see our Basic Translation Workflow with Localize video.
Export your translations into new RESX files
RESX files- Within your Localize Dashboard go to the Phrases > File Import/Export page
- Select Export from the left submenu
- Select RESX as your file type
- Select your desired phrase filtering options
- Select what language you want exported
- Select an export type of Phrases
- Click Export and your browser will download a copy of your new
RESXfile - Repeat for each language you need in your mobile application
- Place a copy of each language file into the corresponding directory within your codebase and rename the file to
Resources.es.resx(using the appropriate language code, Spanish used here) or simply update existing files with content from the new ones.
Test your translated mobile application
Now that your files are properly formatted and loaded into your mobile application, change the language of your simulator or live device to one of your newly installed languages and load up your application. You should see all content properly translated.
Xamarin.iOS Native Apps
Preparing your Xamarin.iOS native app for localization
When localizing the text content in your Xamarin.iOS native app you will be using Localizable.strings files which contain key=value pairs. You will create a separate Localizable.strings file for each language. The key for each phrase will be the same across all languages, so that the app can use the key to retrieve the appropriate translation.
"submit_button"="Submit"
"first_name_field"="First Name"
"last_name_field"="Last Name"
A language-specific Localizable.strings file will be stored within a directory named with the appropriate language code, e.g.: <language>.lproj.
If you have hard-coded any copy into your Xamarin.iOS native app directly, you will need to apply best practices and abstract your strings into a Localizable.strings file.
When a user’s mobile device is changed to a different language, your mobile application will attempt to load resources for that language by loading the appropriate language file. For example, if the mobile device is set to French your application will load resources from the fr.lproj directory.
Using the Localize Dashboard to translate your Xamarin.iOS Native App
Import your Localizable.strings file into Localize
Localizable.strings file into Localize- Within your Localize Dashboard go to the Phrases > File Import/Export page
- Select Import from the left submenu
- Select XCODE STRINGS as your file type
- Your source language will automatically be selected as the only language option
- Select an import type of Phrases
- Upload and submit the
Localizable.stringsfile that contains your source language
Translate your imported phrases
Using the Localize dashboard, you may translate your source language phrases into as many languages as you need. If you are unfamiliar with the translation workflow, please see our Basic Translation Workflow with Localize video.
Export your translations into new Localizable.strings files
Localizable.strings files- Within your Localize Dashboard go to the Phrases > File Import/Export page
- Select Export from the left submenu
- Select XCODE STRINGS as your file type
- Select your desired phrase filtering options
- Select what language you want exported
- Select an export type of Phrases
- Click Export and your browser will download a copy of your new
XCODE STRINGSfile - Repeat for each language you need in your mobile application
- Place a copy of each language file into the corresponding directory within your codebase and rename the file to
Localizable.stringsor simply update existing files with content from the new ones.
Test your translated mobile application
Now that your files are properly formatted and loaded into your mobile application, change the language of your simulator or live device to one of your newly installed languages and load up your application. You should see all content properly translated.
Xamarin.Android Native Apps
Preparing your Xamarin.Android native app for localization
When localizing the text content in your Xamarin.Android native app you will be using Strings.xml files. Each phrase contains a string XML element with the resource ID specified as the name attribute and the translated string as the value. The resource ID for each phrase will be the same across all languages, so that the app can use it to retrieve the appropriate translation.
<?xml version = "1.0" encoding="UTF-8"?>
<resources>
<string name="submit_button">Submit</string>
<string name="first_name_field">First Name</string>
<string name="last_name_field">Last Name</string>
</resources>
You will create a separate Strings.xml file for each language. Each language-specific Strings.xml file will be stored within a directory named with the appropriate language code, e.g.: values-<language-code>.
If you have hard-coded any copy into your Xamarin.Android native app directly, you will need to apply best practices and abstract your strings into a Strings.xml file.
When a user’s mobile device is changed to a different language, your mobile application will attempt to load resources for that language by loading the appropriate language file. For example, if the mobile device is set to French your application will load resources from the values-fr directory.
Using the Localize Dashboard to translate your Xamarin.Android Native App
Import your Strings.xml source language file into Localize
Strings.xml source language file into Localize- Within your Localize Dashboard go to the Phrases > File Import/Export page
- Select Import from the left submenu
- Select ANDROID XML as your file type
- Your source language will automatically be selected as the only language option
- Select an import type of Phrases
- Upload and submit the
Strings.xmlfile that contains your source language
Translate your imported phrases
Using the Localize dashboard, you may translate your source language phrases into as many languages as you need. If you are unfamiliar with the translation workflow, please see our Basic Translation Workflow with Localize video.
Export your translations into new Strings.xml files
Strings.xml files- Within your Localize Dashboard go to the Phrases > File Import/Export page
- Select Export from the left submenu
- Select ANDROID XML as your file type
- Select your desired phrase filtering options
- Select what language you want exported
- Select an export type of Phrases
- Click Export and your browser will download a copy of your new
Strings.xmlfile - Repeat for each language you need in your mobile application
- Place a copy of each language file into the corresponding directory within your codebase and rename the file to
Strings.xmlor simply update existing files with content from the new ones.
Test your translated mobile application
Now that your files are properly formatted and loaded into your mobile application, change the language of your simulator or live device to one of your newly installed languages and load up your application. You should see all content properly translated.
Add Localize to your build process
Localize REST API
You can integrate Localize into your build process by writing scripts that make RESTful HTTP requests using the Localize REST API for the import and export of localization files, as well as much more. Our route documentation provides examples of HTTP requests in cURL, Node, Ruby, JavaScript, and Python.
npm module
You may also use our npm module, @localize/node, a Node-based wrapper for Localize’s REST API.
Localize CLI
You can also use the Localize CLI which uses a simple push/pull paradigm to push content into Localize and then pull out the translations.
Read about the CLI
Updated over 1 year ago
