Documentation

Integration

Language file converter

Convert a language file from one format to another — Apple .strings to Android .xml, .po to .json, .resx to .yml — from the browser or over HTTP. 5 min read

The Language File Converter is a free tool that converts a linguistic file from one format into another. An Apple .strings file can become an Android .xml file, a Gettext .po file can become JSON, a .resx file can become YAML, and so on.

It is a standalone tool: it does not touch your projects, and it needs no account. Point your browser at converter.webtranslateit.com, upload a file, choose the format you want out of it, and download the result.

It is the right tool for a one-off migration — moving a legacy file into the format your new platform expects, or producing a copy of a file for a team that works in a different toolchain. For an ongoing need, don’t convert files by hand: put them in a WebTranslateIt project and let the File Manager hold the same content in as many formats as you need.

Limits

Uploads are limited to 12 MB. Files above that need to be split, or handled in a project instead.

Conversion is a format translation, not a semantic one. Where the source format supports something the target format has no equivalent for — plural forms, comments, nested structures — that information cannot survive the round trip. Check the output before you ship it.

Converting over HTTP

The converter is also reachable programmatically, which is useful in a build script or a migration job. Two endpoints do the same work, differing only in how you hand over the file.

Neither endpoint requires authentication.

From a URL

GET https://converter.webtranslateit.com/convert [GET]
Parameter Required Description
convert_to yes The format to convert to. See the table below.
file_url A publicly reachable URL to fetch the source file from.
file The source file, as an upload, if you are not using file_url.
encoding no Character encoding of the source file. Detected automatically when omitted.

Supply either file_url or file.

bash
curl -o strings.xml \
  "https://converter.webtranslateit.com/convert?convert_to=AndroidXml2&file_url=https://example.com/en.strings"

By uploading a file

POST https://converter.webtranslateit.com/converter [POST]
Parameter Required Description
convert_to yes The format to convert to.
file yes The source file, as a multipart upload.
encoding no Character encoding of the source file.
bash
curl -o Localizable.strings \
  -F convert_to=Strings \
  -F file=@values/strings.xml \
  https://converter.webtranslateit.com/converter

Responses

On success, both endpoints return the converted file as a download. The filename is your original filename with the extension swapped for the target format’s.

You do not tell the converter what format the input is — that is detected from the file itself.

If convert_to is not a format the converter knows, it responds 404 Not Found with a JSON body:

json
{
  "error": "Converter Foo doesn’t exist",
  "request": "https://converter.webtranslateit.com/convert?convert_to=Foo"
}

Available Formats

Use the value in the first column as convert_to.

convert_to Format Output extension
AndroidXml1 Android .xml v1 .xml
AndroidXml2 Android .xml v2 .xml
Ass SubStation Alpha .ass/.ssa .ass
AzureAdXml Microsoft Azure AD B2C .xml
Csv Comma Separated Value (CSV) .csv
JavaXml Java .xml .xml
JqueryGlobHash jQuery-glob (as a hash) .js
JqueryGlobList jQuery-glob (as a list) .js
Json JSON .json
MicrodvdSub MicroDVD .sub .sub
Nsh Windows Installer .nsh .nsh
PhpArray PHP Array .php
PhpArrayList PHP ArrayList .php
PhpDefine PHP Define .php
PhpIni PHP .ini, PHP .conf .ini
PhpLaravel PHP Laravel .php
PlayMessages Play Framework Messages
Po Gettext .po/.pot .po
Properties1 Java .properties, InnoSetup .isl .properties
Properties2 Java .properties v2, InnoSetup .isl .properties
Rc Microsoft Windows Resource File .rc .rc
Resx Microsoft .resx, .resw .resx
ResxPlural Microsoft .resx, .resw (with plurals) .resx
Sami SAMI Subtitles .smi .smi
Sbv YouTube Closed Caption .sbv .sbv
Srt SubRip subtitles .srt .srt
Strings Apple .strings .strings
Stringsdict Apple .stringsdict .stringsdict
SubviewerSub Subviewer .sub .sub
Tbx Term Base Exchange .tbx .tbx
Tmx Translation Memory Exchange .tmx .tmx
Ts Qt Linguist .ts .ts
Ttml TTML/DFXP Subtitles .ttml
Vtt WebVTT Subtitles .vtt .vtt
WixXml WiX (.NET installer) .wxl .wxl
XliffXml XLIFF .xlf
XliffXml2 XLIFF 2 .xlf
Xlsm Microsoft Excel .xlsm (macro-enabled) .xlsm
Xlsx Microsoft Excel .xlsx .xlsx
XtbXml XTB .xtb
Yml YAML .yml

Apple .strings output is encoded as UTF-16LE, as the format expects.

Each of these formats is described in more detail under Supported File Formats.

Next Up: API. This document describes the resources that make up the WebTranslateIt API… »