Find tech documentation, guides, tutorials, and more here.
For support, please contact



Before uploading your file for translation, please ensure that it's compatible with system requirements. If your file type is not listed below then please contact our localization team for assistance.

Please note: Non-spreadsheet based files that contain comments or instructions for the translators, will not be included in the submission. Your comments may be important, in which case please consider changing your file format so that your comments can be included.

We recommend using a spreadsheet based file (.xlsx, .xls, .csv)

MS Excel (.XLSX) Open Document Office (.ODS)
file format cell

Make sure file is UTF-8 encoded. Use double quote (") characters around each field and comma (,) to separate the fields. If the text contains an actual double quote (") then replace it with two double quotes ("").

"CaveSpeech_01","It's dangerous to go alone!","Old man speaking"
"CaveSpeech_02","Take this.","Old man speaking"
GetText PO

Example 1 (Standard)

#: ../crop-thumbnails.php:35
msgid "Globular Clusters"
msgstr ""

Example 2 (Multiple lines)

msgid  ""
"It's dangerous to go alone!\n"
"Take this.\n"
msgstr ""

Currently, we DO NOT support GetText PO file that has plural content.

iOS (.strings)

Example 1 (Standard)

/* Dialogue 1 */
"CaveSpeech_01" = "It's dangerous to go alone!";
// Dialogue 2
"CaveSpeech_02" = "Take this.";

Example 2 (Multiple lines)

"iOS_String3" = "This
is a multi

Example 3 (Contain special characters)

"File \"%@\" cannot be opened" = " ... ";
"Type \"OK\" when done" = " ... ";
"iOS_String5"="This is a \"quote\" "
Android (.xml)

Example 1 (Standard)

<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="string_name">It's dangerous to go alone!</string>

Example 2 (Contain array)

<?xml version="1.0" encoding="utf-8"?>
<resources> <string-array name="string_array_name">
<item>It's dangerous to go alone!</item>
<item>Take this.</item>

Example 3 (Contain plural items)

<?xml version="1.0" encoding="utf-8"?>
<resources> <plurals name="numberOfSongsAvailable">
<!-- As a developer, you should always supply "one" and "other" strings. Your translators will know which strings are actually needed for their language. Always include %d in "one" because translators will need to use %d for languages where "one" doesn't mean 1 (as explained above). --> <item quantity="one">%d song found.</item> <item quantity="other">%d songs found.</item> </plurals>

Example 1 (Standard)

        "CaveSpeech_01": "It's dangerous to go alone!",
        "CaveSpeech_02": "Take this." 

Example 2 (Contain special characters)

"etag" : "\"2f40495373a384b0d85aa37d7723f1dc\""

We DO NOT support extracting in cases of boolean, number, array:

    "sammy" : {
        "online" : true,
        "followers" : 987,
        "REF_21": [ "Ford", "BMW", "Fiat" ]

Example 1 (Standard)

<?xml version="1.0" encoding="utf-8"?>
    <data name="CaveSpeech_01" xml:space="preserve">
        <value>It's dangerous to go alone!</value>
        <comment>Old man speaking</comment>
    <data name="CaveSpeech_02" xml:space="preserve">
        <value>Take this.</value>
        <comment>Old man speaking</comment>

Example 2 (Contain special characters)

<?xml version="1.0" encoding="utf-8"?>
        <data name="" xml:space="preserve">
            <value>Reach a \"total\" of {0} Trophies.  Don &apos t change</value>
            <comment>Please don't change the name of the application</comment>

We DO NOT count content in the comments of .RESX file.


Example 1 (Xliff 1.2)

<trans-unit id="CaveSpeech_01">
    <source>It's dangerous to go alone!</source>
    <note>It's not really dangerous</note>
<trans-unit id="CaveSpeech_02">
    <source>Take this.</source>
    <note>Old man speaking</note>

Example 2 (Xliff 2.0)

<segment id="CaveSpeech_01">
    <source>It's dangerous to go alone!</source>
    <note>It's not really dangerous</note>
<segment id="CaveSpeech_02">
    <source>Take this.</source>
    <note>Old man speaking</note>

LocDirect CMS


LocDirect Instructions


Github HTTP API Examples

Python example code on GitHub for reading and writing string data via LocDirect HTTP API

Localize Direct API documentation

LocDirect API - Messages.pdf

LocalizeDirect HTTP API.pdf

LocalizeDirect Socket API - Messages.pdf

LocalizeDirect Socket API.pdf

Recommended Java 8 (64-bit) Version

Amazon Corretto 8 (64-bit) is since April 2019 the recommended version of Java to be used with LocDirect. Versions supported for Windows and macOS can be downloaded from here:

* Windows x64

* macOS x64

* All downloads of Amazon Corretto 8 can be found here.

LocDirect users manual


Instructions on how to install the LocDirect server


How to trigger API commands via command line

LocalizeDirect Command Line.pdf

Windows .bat file to execute client commands from command line

Rename to ld.bat and place in the Localize Direct client install folder


Mac OSX client

LocDirect Mac OS installation instructions

  1. Download and install Java Amazon Corretto 8 for Mac OS X from here
  2. Download the installer from here, open it and follow the instructions. That's it!

Tip: After the installation you'll find LocDirect under Applications. You can drag the application to the Dock if you wish. You might get the following message when you try to start the application. Then please follow the instructions below:


To allow the application to open, you can do this:

  • In the Finder, go to Applications and locate LocDirect. (Don’t use Launchpad to do this. Launchpad doesn’t allow you to access the shortcut menu.)
  • Control-click the app icon, then choose Open from the shortcut menu.
  • Click Open. The app is saved as an exception to your security settings, and you can open it in the future by double-clicking it just as with any app.