Lokalise: Professional Translation Platform

Yessika Budiono
SkyshiDigital
Published in
4 min readApr 27, 2017

Hi, readers!

This time we will get to know about another translation platform, Lokalise. Lokalise is serving more than 1000 companies from 37 countries. Companies who are using Lokalise we might be known are MSQRD, Carousell, Megogo, Deposit Photos, Player FM, plag, Roamer, Digital Chalk, Orderry, Poster, Dispatch, and many more.

Lokalise API base on HTTPS GET or POST requests passing data as request parameters for GET and URL form-encoded for POST. So it is very easy to use on multi development platform. Responses are encoded as JSON objects. If the operation was unsuccessful, the JSON object will contain an error code and a message. There is Lokalise CLI tool acting as a wrapper for import and export functions. Every request to the API must contain the parameter api_token, which we can get from our Lokalise account.

Step by Step

# Create Account

Go to Lokalise and register or login using your github / google account.

# Create New Project

Click “New Project” > Name your project title and description > Select your base language

# Upload language files or add a key

Supported language files (if there are any update, you can follow up here):
- Android Resources (*.xml)
- Apple Strings (*.strings)
- Apple Stringsdict (*.stringsdict)
- Apple Xliff (*.xliff)
- Comma-separated Values (*.csv)
- Excel (*.xls, *.xlsx)
- Gettext (*.po, *.pot)
- JSON flat, JSON nested(*.json)
- Java Properties (*.properties)
- Objective-C / Cocoa Properties (*.plist)
- PHP Arrays, PHP Laravel language files (*.php)
- PHP INI (*.ini)
- QT Linguist (*.ts)
- Salesforce Translation(*.stf)
- YAML (*.yml, *.yaml)

For example, I uploaded a laravel language php file contain multiple nested level of arrays, then Lokalise create keys and values which to be translated.

Keys we’ve inserted from language file. As we can see there are double colons to separate nested level of the arrays.

We able to add key by clicking “Add key” button.

1. General Tab

Key: name of key; Platforms: Different platforms have different export formats. Keys can be assigned to multiple platforms; Description: Description can be used to help project contributors to better understand the purpose of the translation; Tags: Optionally tag keys for filtering or export.

2. Advanced Tab

Assigned to file: Optionally, each key can be assigned to one filename in case you decide to use original project filenames; Hide from contributors: Turn on to hide this key from contributors. Other project owners will still see it; Context: Context is used with some file formats. There is no need to add context if you are not using it in the code; Character Limit: Optional. Set to enable live character limit warning in the editor. This feature does not prevent from saving longer translations.

3. Plurals Tab

Add plural form: You can have unlimited plural forms for each key and name them as you wish — one, many, other etc; Plural key: Some file formats support plural key different from the key itself. In most cases you need to set this the same as the key.

4. Screenshots Tab

5. Save

This is new key we’ve just created

# Add Language

Go to Projects > Look up to your new project > Click Add Language button > Select any languages we want to localize into.

# Add Contributors

Select a project’s language > Click person icon on top left (Contributors) > Let’s Invite your team members

Type in contributor’s email, name. Set Reference language and contributes language. Administrator: to give same rights on this project as you.

After adding the keys manually, we will need to add the English (main language) phrase version. How to:
Click the main language (English) on the project > Click on “Empty” phrases > Type in prases to be translated

# Start Translating

Select the language on the project > Click on “Empty” phrases > Type in the translations

# Call API

You can see complete documentation here.

How to get the project id?
Click the project > copy & paste the index[1] of the URIs

Resposes example:

Well, that’s all. The only left need to do is integrating the API on our web or mobile apps.

Thanks for reading. I hope this article can be a big help for your multi language website problem. Feel free to leave comments below if you have any questions. Cheers!

“One language sets you in a corridor for life. Two languages open every door along the way.” ~ (Frank Smith)

--

--

Yessika Budiono
SkyshiDigital

Experienced web programmer, EN-ID translator, community & social media manager. Love to learn new things.