Format Source Resource File
Android Strings res/values/strings.xml
CSV File *.csv
iOS/Mac Strings Localizable.strings, InfoPList.strings
iOS/Mac Stringsdict Localizable.stringsdict
Java Properties *.properties
JS File *.js
JSON File *.json
Chrome extension JSON    _locales/{locale}/messages.json
RESW *.resw
RESX *.resx
PO File *.pot
TS File *.ts
XLIFF *.xlf, *.xliff, *.sdlxliff, *.mxliff
XTB File *.xtb

Android Strings

Source Resource File (English): res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello" description="Greeting from Main UI">Hello!</string>
</resources>

Localized Resource File (Spanish): res/values-es/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello" description="Greeting from Main UI">¡Hola!</string>
</resources>

iOS/Mac Strings

Source Resource File (English): en.lproj/Localizable.strings

/* Greeting from Main UI */
"Hello!" = "Hello!";

Localized Resource File (Spanish): es.lproj/Localizable.strings

/* Greeting from Main UI */
"Hello!" = "¡Hola!";

CSV

Column Number Description
1 Source ID
2 Source
3 Target
4 Comment
   

Source Resource File (English): example.csv

hello,Hello!,Hello!,Greeting from Main UI

Localized Resource File (Spanish): example_es-ES.csv

hello,Hello!,¡Hola!,Greeting from Main UI

iOS/Mac Stringsdict

Source Resource File (English): en.lproj/Localizable.stringsdict

<plist version="1.0">
<dict>
<key>Hello %d world(s)</key>
<dict>
    <!-- Greeting from Main UI -->
    <key>NSStringLocalizedFormatKey</key>
    <string>%#@world@</string>
    <key>world</key>
    <dict>
        <key>NSStringFormatSpecTypeKey</key>
        <string>NSStringPluralRuleType</string>
        <key>NSStringFormatValueTypeKey</key>
        <string>d</string>
        <key>one</key>
        <string>Hello %d world</string>
        <key>other</key>
        <string>Hello %d worlds</string>
    </dict>
</dict>
</dict>
</plist>

Localized Resource File (Spanish): es.lproj/Localizable.stringsdict

<plist version="1.0">
<dict>
<key>Hello %d world(s)</key>
<dict>
    <!-- Greeting from Main UI -->
    <key>NSStringLocalizedFormatKey</key>
    <string>%#@world@</string>
    <key>world</key>
    <dict>
        <key>NSStringFormatSpecTypeKey</key>
        <string>NSStringPluralRuleType</string>
        <key>NSStringFormatValueTypeKey</key>
        <string>d</string>
        <key>one</key>
        <string>Hola %d mundo</string>
        <key>other</key>
        <string>Hola %d mundos</string>
    </dict>
</dict>
</dict>
</plist>

Java Properties

3 flavors are supported: PROPERTIES (UTF-8), PROPERTIES_JAVA (ISO-8891), PROPERTIES_NOBASENAME (UTF-8 + ISO-8859)

Source Resource File (English): en.properties (no basename) or messages.properties (with basename)

# Greeting from Main UI
hello = Hello!

Localized Resource File (Spanish): es.properties (no basename) or messages_es.properties (with basename)

# Greeting from Main UI
hello = ¡Hola!

JS

Source Resource File (English): en.js

export default {
  // Greeting from Main UI
  "hello": "Hello!"
}

Localized Resource File (Spanish): es.js

export default {
  // Greeting from Main UI
  "hello": "¡Hola!"
}

JSON

Source Resource File (English): example.json

{
  // Greeting from Main UI
  "hello": "Hello!"
}

Localized Resource File (Spanish): example_es-ES.json

{
  // Greeting from Main UI
  "hello": "¡Hola!"
}

Chrome extension JSON

See chrome.i18n documentation documentation for more details

Source Resource File (English): _locales/en/messages.json

{
  "hello": {
    "message": "Hello!",
    "description": "Greeting from Main UI"
  }
}

Localized Resource File (Spanish): _locales/es-ES/messages.json

{
  "hello": {
    "message": "¡Hola!",
    "description": "Greeting from Main UI"
  }
}

RESW

Source Resource File (English): en/Resources.resw

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="hello" xml:space="preserve">
    <value>Hello!</value>
    <comment>Greeting from Main UI</comment>
  </data>
</root>

Localized Resource File (Spanish): es/Resources.resw

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="hello" xml:space="preserve">
    <value>¡Hola!</value>
    <comment>Greeting from Main UI</comment>
  </data>
</root>

RESX

Source Resource File (English): Resources.resx

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="hello" xml:space="preserve">
    <value>Hello!</value>
    <comment>Greeting from Main UI</comment>
  </data>
</root>

Localized Resource File (Spanish): Resources.es-ES.resx

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="hello" xml:space="preserve">
    <value>¡Hola!</value>
    <comment>Greeting from Main UI</comment>
  </data>
</root>

TS

Source Resource File (English): en.ts

namespace Translations {
  // Greeting from Main UI
  "hello": "Hello!"
}

export default Translations;

Localized Resource File (Spanish): es.ts

namespace Translations {
  // Greeting from Main UI
  "hello": "¡Hola!"
}

export default Translations;

XLIFF

Source Resource File (English): resource.xliff

<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:okp="okapi-framework:xliff-extensions" version="1.2">
  <file original="" source-language="en" datatype="x-undefined">
    <body>
      <trans-unit id="1" resname="hello" datatype="php">
        <source>Hello!</source>
        <note>Greeting from Main UI</note>
      </trans-unit>
    </body>
  </file>
</xliff>  

Localized Resource File (Spanish): resource_es-ES.xliff

<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:okp="okapi-framework:xliff-extensions" version="1.2">
  <file original="" source-language="en" target-language="es-es" datatype="plaintext">
    <body>
      <trans-unit id="1" resname="hello" datatype="php">
        <source>Hello!</source>
        <target xml:lang="es-es">¡Hola!</target>
        <note>Greeting from Main UI</note>
      </trans-unit>
    </body>
  </file>
</xliff>

PO File

Source Resource File (English): messages.pot

msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-24 11:50-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Greeting from Main UI
#: file.js:2
msgctxt "hello"
msgid "Hello!"
msgstr ""

Localized Resource File (Spanish): es_ES/LC_MESSAGES/messages.po

msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-24 11:50-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Greeting from Main UI
#: file.js:2
msgctxt "hello"
msgid "Hello!"
msgstr "¡Hola!"

XTB

Source Resource File (English): Example-en-US.xtb

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE translationbundle>
<translationbundle lang="en-US">
    <translation id="1" key="hello" source="example.js">Hello!</translation>
</translationbundle>

Localized Resource File (Spanish): Example-es-ES.xtb

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE translationbundle>
<translationbundle lang="en-US">
    <translation id="1" key="hello" source="example.js">¡Hola!</translation>
</translationbundle>