Get Localization File Management API

The File Management API is meant for developers to interact with their Get Localization project and development environment. The API allows following actions:

  • Creating and updating master files
  • Retrieving files that have been translated
  • Updating of translated files (e.g. if they're translated elsewhere)
  • Getting list of translators

Please note that integrating the API with an actual application shipped to consumers is not supported nor allowed. API is meant for developer use only.

API Overview

Managing Master Files

POST https://api.getlocalization.com/[project-name]/api/create-master/[file-format]/[language-tag]/
POST https://api.getlocalization.com/[project-name]/api/update-master/
GET https://api.getlocalization.com/[project-name]/api/list-master/json/

Managing Translations

GET https://api.getlocalization.com/[project-name]/api/translations/zip/
GET/POST https://api.getlocalization.com/[project-name]/api/translations/file/[master-file-name]/[language-tag]/
GET https://api.getlocalization.com/[project-name]/api/translations/list/json/

Listing translators

GET https://api.getlocalization.com/[project-name]/api/translators/json/

Auto-translation

POST https://api.getlocalization.com/[project-name]/api/master/auto-translate/ (JSON)

Authentication

Get Localization File Management API uses HTTP Basic Auth to provide the widest possible compatibility and support. Therefore it is required to use HTTPS for all communication.

Language Tags

Language tags are used to indicate the language in the corresponding file. Get Localization uses standard IANA language tags, the syntax is defined by the IETF's BCP 47. You can find all the used language and region codes from IANA subtag registry. Most language tags consist of a two- or three-letter language subtag. This is often followed by a two-letter or three-digit region subtag. For example fr-CA indicates French as used in Canada. So if the language name in the project contains a region definition in parenthesis, you must also include a corresponding region subtag when using the API.

Especially when crowdsourcing, the master files are recommended to be in English as typically it is easier to find translators who translate from English to other languages. In the English files, you can use the language code 'en'.

Responses

All the responses a contain message that indicates whether the response was successful or not.

Status codes:

200: Successful

400: Request is not well formed

404: File or resource cannot be found

417: Resource is processing and cannot be updated. Try again after processing is done. 

429: Too many requests / concurrent requests

Examples

Create a New Master File

You can upload master file using e.g. curl command:

curl --form file=@[filename] --user [username]:[password] https://api.getlocalization.com/[project-name]/api/create-master/[file-format]/[language-tag]/

Regarding file formats, see the file formats table end of this article.

Update a Master File

If you already have master file and you wish to update it, e.g. to submit new strings to be translated. Note that the filename in system should match to the filename in Get Localization.

curl --form file=@[filename] --user [username]:[password] https://api.getlocalization.com/[project-name]/api/update-master/

Download a List Of Available Translations

curl --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translations/list/json/

Download All Translations As ZIP File

You can easily download all the translations in a single ZIP file if you wish.

curl --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translations/zip/ -o <output-file-name.zip>

Download a Language Specific Translation File

curl --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translations/file/[master-file-name]/[language-tag]/ -o out-file

Error responses

It's also possible to download all the unapproved strings if proofreading is part of your workflow. When you add unapproved to the url path, also all the unapproved translations will be included into a file.

curl --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translations/file/[master-file-name]/[language-tag]/unapproved -o out-file

Update a Language Specific Translation File

curl --form file=@[filename] --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translations/file/[master-file-name]/[language-tag]/

Get List Of Translators In Your Project

All:

curl --form file=@[filename] --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translators/json/

By language:

curl --form file=@[filename] --user [username]:[password] https://api.getlocalization.com/[project-name]/api/translators/[language-code]/json/

Request Auto-Translation of a Master File

POST https://api.getlocalization.com/[project-name]/api/master/auto-translate/ (JSON)

JSON fields:

component: master file name
language: target language (optional), leave out and all existing language projects are auto-translated.

curl example

curl -X POST --data '{"component": "[master-file-name]"}' --user [username]:[password] https://api.getlocalization.com/[project-name]/api/master/auto-translate -H "Content-Type: application/json"

Special Error Responses with JSON Payload

Some requests return specific information as a JSON.

Status code 417 when updating/downloading translated files

message: error message (e.g. master file is currently processing)
progress: Progress as a percentage (integer)

File Format Table

  • ios = 'iOS'

  • django = 'Django'

  • qt = 'Qt'

  • ruby = 'Ruby On Rails'

  • codeigniter = 'CodeIgniter'

  • symfony ='Symfony'

  • cakephp = 'CakePHP'

  • gettext = 'GNU Gettext'

  • js = 'Javascript / jQuery'

  • resx = 'Resx'

  • xliff = 'Xliff'

  • android = 'Android'

  • ini ='INI file'

  • javaproperties ='Java Properties file'

  • javapropertiesutf8 = 'Java Properties UTF-8'

  • json = 'JSON file (Chrome Extension JSON)'

  • jsondoc = 'JSON file (JSON as a Document)'

  • adobe = 'Adobe AIR'

  • windowsmobile = 'Windows Phone'

  • plain = 'Plain text'

  • phparray = 'PHP Array'

  • mac = 'Mac OS X'

  • xlsx = 'Excel file'

  • html = 'HTML File'

Get Started With Get Localization Today

Get an instant translation quote Try Get Localization Workspace for Free