File Formats

Supported file formats

We work on extending the list of formats supported. If you need a format and can't find it here send us an email.
locize does generally only handle the translation content, so keys and values, and never saves your imported file as with the original file structure. So if you want to import a file and export it later on with the original structure and information this is not supported for each format.

JSON nested

Will import / export in JSON format nesting keys separated by .:
1
{
2
"appName": "locize.com - localization as a service",
3
"label": {
4
"cancel": "cancel",
5
"save": "save"
6
}
7
}
Copied!

JSON flatten

Will import / export in JSON format flat ignoring . separation:
1
{
2
"appName": "locize.com - localization as a service",
3
"label.cancel": "cancel",
4
"label.save": "save"
5
}
Copied!

CSV and XLSX

Exports reference language and target language in one file. This format is also supported for imports and is an option to send translations to freelancers not supporting other formats.
For optimal import reuse the previously exported files including added translations.
1
"key","de","en"
2
"appName","locize.com - Lokalisierung als Service","locize.com - localization as a service"
3
"label.cancel","abbrechen","cancel"
4
"label.save","speichern","save"
Copied!
On import make sure the first line contains the same language codes you have in created locize.
In the UI, CSV and XLSX formats, can be imported and exported as:
    To import/export a "all" format file for the whole project, be sure to not select any language or namespace in the filter:
You might see a “###ignore###” text in your exported "all" format file. This is there on purpose, for all keys that for example does not exist in reference language (this often indicates an issue in your project) or if using the i18next format, to mark that the corresponding plural format does not exist for the specific language. This is done to show the translator, that that translation does not exist.

yaml

Yaml is a alternative format to json.
1
appName: locize.com - localization as a service
2
label.cancel: cancel
3
label.save: save
Copied!

xliff 1.2

Well known translation exchange format.
1
<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
2
<file original="formats" datatype="plaintext" source-language="de" target-language="en">
3
<body>
4
<trans-unit id="appName">
5
<source>locize.com - Lokalisierung als Service</source>
6
<target>locize.com - localization as a service</target>
7
</trans-unit>
8
<trans-unit id="label.cancel">
9
<source>abbrechen</source>
10
<target>cancel</target>
11
</trans-unit>
12
<trans-unit id="label.save">
13
<source>speichern</source>
14
<target>save</target>
15
</trans-unit>
16
</body>
17
</file>
18
</xliff>
Copied!
On import try to make sure you have only 1 file tag within the xliff file.

xliff 2.0

Well known translation exchange format. Used format on iOS.
1
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="de" trgLang="en">
2
<file id="formats">
3
<unit id="appName">
4
<segment>
5
<source>locize.com - Lokalisierung als Service</source>
6
<target>locize.com - localization as a service</target>
7
</segment>
8
</unit>
9
<unit id="label.cancel">
10
<segment>
11
<source>abbrechen</source>
12
<target>cancel</target>
13
</segment>
14
</unit>
15
<unit id="label.save">
16
<segment>
17
<source>speichern</source>
18
<target>save</target>
19
</segment>
20
</unit>
21
</file>
22
</xliff>
Copied!
On import try to make sure you have only 1 file tag within the xliff file.

Android resource string

Format used on Android.
1
<resources>
2
<string name="appName">locize.com - localization as a service</string>
3
<string name="label.cancel">cancel</string>
4
<string name="label.save">save</string>
5
</resources>
Copied!

Strings resources

Format used for example for OS X and iOS.
1
"appName" = "locize.com - localization as a service";
2
3
"label.cancel" = "cancel";
4
5
"label.save" = "save";
Copied!

Gettext po files

Gettext standard format.
1
msgid ""
2
msgstr ""
3
"Project-Id-Version: locize: My project - translations\n"
4
"MIME-Version: 1.0\n"
5
"Content-Type: text/plain; charset=utf-8\n"
6
"Content-Transfer-Encoding: 8bit\n"
7
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
8
"POT-Creation-Date: 2017-07-14T22:26:46.631Z\n"
9
"PO-Revision-Date: 2017-07-14T22:26:46.631Z\n"
10
"Language: it\n"
11
12
msgid "title"
13
msgstr "La soluzione migliore per il miglior cliente!"
14
15
msgid "description"
16
msgstr ""
17
"S est Lorem ipsum dolor sit amet. Il cammino è morto, a duo dolores ed a "
18
"rebum. Stet clita kasd gubergren, senza mare incontro sanctus est Lorem "
19
"ipsum dolor sit amet."
Copied!

TMX

Used mostly as translation memory file.
1
<tmx version="1.4b">
2
<header creationtool="tmexchange" creationtoolversion="1.0.1" adminlang="en" datatype="PlainText" segtype="sentence" o-tmf="ABCTransMem" srclang="en"/>
3
<body>
4
<tu tuid="appName">
5
<prop type="group">my-namespace</prop>
6
<tuv xml:lang="en">
7
<seg>locize.com - localization as a service</seg>
8
</tuv>
9
<tuv xml:lang="de">
10
<seg>locize.com - Lokalisierung als Dienstleistung</seg>
11
</tuv>
12
</tu>
13
<tu tuid="label.cancel">
14
<prop type="group">my-namespace</prop>
15
<tuv xml:lang="en">
16
<seg>cancel</seg>
17
</tuv>
18
<tuv xml:lang="de">
19
<seg>Abbrechen</seg>
20
</tuv>
21
</tu>
22
<tu tuid="label.save">
23
<prop type="group">my-namespace</prop>
24
<tuv xml:lang="en">
25
<seg>save</seg>
26
</tuv>
27
<tuv xml:lang="de">
28
<seg>Speichern</seg>
29
</tuv>
30
</tu>
31
</body>
32
</tmx>
Copied!

resx Files (.net)

Localization files used in .net framework
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
<!--
4
Microsoft ResX Schema
5
6
Version 2.0
7
8
The primary goals of this format is to allow a simple XML format
9
that is mostly human readable. The generation and parsing of the
10
various data types are done through the TypeConverter classes
11
associated with the data types.
12
13
Example:
14
15
... ado.net/XML headers & schema ...
16
<resheader name="resmimetype">text/microsoft-resx</resheader>
17
<resheader name="version">2.0</resheader>
18
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
<value>[base64 mime encoded serialized .NET Framework object]</value>
24
</data>
25
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
<comment>This is a comment</comment>
28
</data>
29
30
There are any number of "resheader" rows that contain simple
31
name/value pairs.
32
33
Each data row contains a name, and value. The row also contains a
34
type or mimetype. Type corresponds to a .NET class that support
35
text/value conversion through the TypeConverter architecture.
36
Classes that don't support this are serialized and stored with the
37
mimetype set.
38
39
The mimetype is used for serialized objects, and tells the
40
ResXResourceReader how to depersist the object. This is currently not
41
extensible. For a given mimetype the value must be set accordingly:
42
43
Note - application/x-microsoft.net.object.binary.base64 is the format
44
that the ResXResourceWriter will generate, however the reader can
45
read any of the formats listed below.
46
47
mimetype: application/x-microsoft.net.object.binary.base64
48
value : The object must be serialized with
49
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
: and then encoded with base64 encoding.
51
52
mimetype: application/x-microsoft.net.object.soap.base64
53
value : The object must be serialized with
54
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
: and then encoded with base64 encoding.
56
57
mimetype: application/x-microsoft.net.object.bytearray.base64
58
value : The object must be serialized into a byte array
59
: using a System.ComponentModel.TypeConverter
60
: and then encoded with base64 encoding.
61
-->
62
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
64
<xsd:element name="root" msdata:IsDataSet="true">
65
<xsd:complexType>
66
<xsd:choice maxOccurs="unbounded">
67
<xsd:element name="metadata">
68
<xsd:complexType>
69
<xsd:sequence>
70
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
71
</xsd:sequence>
72
<xsd:attribute name="name" use="required" type="xsd:string"/>
73
<xsd:attribute name="type" type="xsd:string"/>
74
<xsd:attribute name="mimetype" type="xsd:string"/>
75
<xsd:attribute ref="xml:space"/>
76
</xsd:complexType>
77
</xsd:element>
78
<xsd:element name="assembly">
79
<xsd:complexType>
80
<xsd:attribute name="alias" type="xsd:string"/>
81
<xsd:attribute name="name" type="xsd:string"/>
82
</xsd:complexType>
83
</xsd:element>
84
<xsd:element name="data">
85
<xsd:complexType>
86
<xsd:sequence>
87
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
88
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
89
</xsd:sequence>
90
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
91
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
92
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
93
<xsd:attribute ref="xml:space"/>
94
</xsd:complexType>
95
</xsd:element>
96
<xsd:element name="resheader">
97
<xsd:complexType>
98
<xsd:sequence>
99
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
100
</xsd:sequence>
101
<xsd:attribute name="name" type="xsd:string" use="required"/>
102
</xsd:complexType>
103
</xsd:element>
104
</xsd:choice>
105
</xsd:complexType>
106
</xsd:element>
107
</xsd:schema>
108
<resheader name="resmimetype">
109
<value>text/microsoft-resx</value>
110
</resheader>
111
<resheader name="version">
112
<value>2.0</value>
113
</resheader>
114
<resheader name="reader">
115
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
</resheader>
117
<resheader name="writer">
118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
</resheader>
120
<data name="action.add" xml:space="preserve">
121
<value>Add</value>
122
</data>
123
<data name="action.addDemoProject" xml:space="preserve">
124
<value>Create a demo project</value>
125
</data>
126
<data name="action.addNewLanguage" xml:space="preserve">
127
<value>Add new language</value>
128
</data>
129
</root>
Copied!

Fluent

Mozilla's translation format https://projectfluent.org/
1
emails =
2
{ $unreadEmails ->
3
[one] You have one unread email.
4
*[other] You have { $unreadEmails } unread emails.
5
}
6
7
-brand-name =
8
{
9
*[nominative] Firefox
10
[accusative] Firefoxa
11
}
12
13
-another-term = another term
14
15
app-title = { -brand-name }
16
17
restart-app = Zrestartuj { -brand-name[accusative] }.
18
19
# Note: { $title } is a placeholder for the title of the web page
20
# captured in the screenshot. The default, for pages without titles, is
21
# creating-page-title-default.
22
login = Predefined value
23
.placeholder = [email protected]
24
.aria-label = Login input value
25
.title = Type your login email
26
27
logout = Logout
Copied!

Laravel

PHP Laravel's translation format https://laravel.com/docs/localization
1
<?php
2
return [
3
'key1' => 'Hello! Let\'s go!',
4
'key2' => 'An application to manipulate and process laravel php language files',
5
'key' => [
6
'nested' => 'laravel Data Manager'
7
]
8
];
Copied!

.properties

(Java) .properties files https://en.wikipedia.org/wiki/.properties
1
key1 = Hello! Let\'s go!
2
key2 = An application to manipulate and process .properties language files
3
key.nested = .properties Data Manager
Copied!
Last modified 26d ago