Lokalise is a project-based translation management system. A project organizes everything you need for translating your app, website, or game. It includes the languages you're translating into, the keys (text placeholders), the actual translations, and any screenshots linked to those keys for context. It also keeps track of contributors who have access and all relevant project settings.
Usually, each project covers translations for one app, website, or game. For convenience, it’s a good idea to keep keys and translations for all platforms (like iOS, Android, web, backend) in the same project. This way, you can manage everything in one place, rather than splitting it into multiple projects.
Every project belongs to one team. A team acts as a container for all its projects, users, and settings. Each team has its own subscription plan.
Team
Settings
Subscription plan
Team users (can participate in one or more projects)
Project
Languages
Translation keys
Translation values (one translation per language)
Settings
Contributors
Tasks
Screenshots
Snapshots (backups)
A team includes multiple projects and defines how users and subscriptions are managed. Keys and translations always stay within the project they belong to, while users and settings are managed at the team level.
Creating a new project
You have to be at least team admin to create projects.
You can create unlimited number of projects but be aware of other team quotas — specifically, the number of keys you can create.
To create a project, open the main dashboard and click New project:
Project templates
Lokalise doesn’t currently have a "project templates" feature, but there are two easy alternatives to achieve similar results:
Create a project snapshot: Take a snapshot of an existing project and restore it whenever needed. This allows you to create a copy of the project.
Copy an existing project: To make a copy of an existing project:
Go to the project settings.
Scroll to the bottom of the page.
Click Create project copy.
This method works well if you want to set up a "base project" with predefined languages and settings that you can duplicate as many times as needed.
Choosing project type
After pressing New project, you'll be asked to choose the project type:
Currently, we support three project types:
Web and mobile — choose this type if you are working with translation files in a key-value format (JSON, YAML, Strings, XLSX) or if you're looking to connect with services like GitHub, WordPress, or Figma.
Marketing and support — choose this type if you're looking to exchange and translate content from services like Iterable, Marketo, Contentful, Zendesk, Salesforce, and others.
Ad doc documents — choose this type if your content is stored in text files like DOCX, PPTX, HTML, or IDML.
You can find all the supported file formats in the corresponding articles collection. Please note that you cannot change the type after the project is created.
Adjusting project options
After choosing the project type, you'll be presented with the following dialog:
Let's discuss the available options (most of these can be adjusted after the project is created):
Project name — enter the name of your translation project. This name will be visible to other project contributors.
Base language — this is the "main" language of your project, the language you are going to be translating from.
Target languages — choose one or more languages that you would like to translate into.
Segmentation — this feature is not available for the Marketing and support projects. When enabled, your translations uploaded to the project will be split into smaller, relevant chunks. It's quite convenient when translating longer texts. Upon downloading translations, these segments will be automatically combined into a single translation string.
Please note that you cannot enable or disable segmentation after the project is created.
Also, keep in mind that segmented projects do not support branching, so if you were planning to use this feature, do not enable segmentation.
Content integration — this option is available only for the Marketing and support projects. Use this dropdown to pick a third-party service to integrate with.
Once you are ready, click Create project and a new project will be created for you!
Project ID
Each project has a unique alphanumeric ID that is generated upon project creation. Each project URL contains this ID, for example:
https://app.lokalise.com/project/2178052454e5eecbe36c68.09719217/
You can also find this ID in the project settings:
Please note that the project ID cannot be modified.
This ID is used when referring to a project with Lokalise API or CLI. If you are not planning to use these developer tools, then most likely you won't need the project ID and knowing only its name should be enough.
I've created a project: what's next?
That's a good question! The next steps will depend on what you are trying to achieve. Let's explore some options.
Adjust project settings
Please check the Project settings article to learn more.
You might want to adjust your project settings. To do that, click More > Settings in the top menu:
Here you can change your project name, description, enable or disable additional features, create project snapshots (backups), set up automation rules, and perform other actions.
Upload translation files
Please check the Uploading translation files article to learn more.
After adjusting your project settings, you'll probably want to upload your content to start translating. Go to the Upload page:
Here, you'll need to choose one or more files to upload and adjust the uploading settings.
Add more project languages
Please check the Language settings article to learn more.
When creating the project, you have already chosen one base language and one or more target languages. Also, when you upload translation files, all missing languages will be created automatically in your project. However, you might still need to add even more languages, and this is very simple to do.
Click on the Languages dropdown and choose New language:
Then choose one or more languages from the dropdown and click Add:
Get yourself familiar with the project editor
Please check the Project editor article to learn about all the available features.
Once you've uploaded one or more translation files, you can return to the project editor:
Learn how keys, platforms, and files are organized
One important question is: what happens once my translation file is uploaded to Lokalise? How will my data be stored and organized?
Important terms
Check the Keys and platforms article to learn more.
First of all, let's discuss some important terminology.
Translation file
This is a file that contains your translation data. It can be a regular DOCX file or a JSON file that stores data in a key-value format.
Translation key
A translation key is commonly used in key-value formats to act as a placeholder in your app’s source code. When the app is served to the user, the key is replaced with the corresponding translation value based on the user’s language settings (locale).
For example:
In your app’s source code, you might have a key like
index.hello
.This key could have two translation values:
"Hello"
(for English) and"Sveiki"
(for Latvian).When a user with their language set to Latvian opens the app,
index.hello
is replaced with"Sveiki"
.
Keys in documents
The concept is slightly different for document-type files (e.g., DOCX, PPTX), which don’t use key-value storage. In these cases, Lokalise automatically generates alphanumeric keys for every translatable part of the document.
For example:
In a Word document, each paragraph might be treated as a separate key.
In a PowerPoint file, each item (like headings, subheadings, and text blocks) is considered a key.
This approach ensures every part of the document is trackable and can be translated seamlessly.
Translation value
A value is basically a string of text translated into a single language. One translation key can have multiple translation values depending on how many languages you are planning to support.
So, if your Lokalise project has five languages, then every translation key will have five translation values.
Platform
In Lokalise, a platform is an attribute you can assign to a translation key. There are four platforms available:
Web
iOS
Android
Other
Every key must be assigned to at least one platform, but you can assign the same key to multiple platforms if needed. This is especially useful if you’re working on both a web app and a mobile app that share the same translations.
A platform determines which file formats a key will be exported in. When you download translations from Lokalise, you’ll select an output file format. Lokalise supports over 20 formats, organized by platform.
For example:
.json
is a Web format..strings
is an iOS format.
If a key is assigned to the Web platform, it will be included when exporting .json
files but skipped for .strings
files—unless you override this behavior.
What happens when I upload file to Lokalise?
When you upload your translation files to Lokalise, the platform parses the files and extracts all key-value pairs, along with any additional attributes like comments, descriptions, or extra metadata. Based on the file format, the extracted keys are automatically assigned to the appropriate platforms.
For standard key-value formats (e.g.,
.json
,.strings
), the keys are matched with their respective platforms, such as Web, iOS, or Android.For document files (e.g., Word or PowerPoint), Lokalise splits the text into paragraphs or similar sections, and each section is treated as a separate key.
This automated process ensures your translations are organized and ready for further editing, managing, or exporting.
Keys and values will be displayed in the following way:
So, what's happening here?
api
is your translation key. Clicking the key name opens the key editor, where you can adjust options for the key.The Android icon shows this key is assigned to the Android platform, while the Chrome icon shows it’s also assigned to the Web platform. You can click these icons to add or remove platforms for the key.
The small label icon lets you add or remove tags for the key. For example, the key in this screenshot has an "API" tag. Tags are helpful for organizing and filtering keys.
%LANG_ISO%.json
indicates the filename this key belongs to. When I uploaded the filesen.json
(English) andfr.json
(French), Lokalise detected the valid locale ISO codes (en
andfr
) and replaced them with the%LANG_ISO%
placeholder.When I download the translations, Lokalise will generate separate files for each language, replacing
%LANG_ISO%
with the actual language code. For example, downloading English and French translations will result inen.json
andfr.json
files.You can click on the key name to access the key editor and manage options, like filenames.
To the right, you can see the translations for English and French, both linked to the
api
key. You can click on any translation to edit it directly.
Now we can create a simple hierarchy:
Translation key
Name
Description
Translation values (one value per language)
Platform(s)
Filenames (please note that filenames can contain multiple keys)
Tags (tags can contain multiple keys)
Invite contributors to the project
Please check the Contributors article to learn more.
If you're working with a team, then you'll need to invite more people to the project, right? To do that, go to the Contributors page:
Here, you'll be able to add one or more people to the project and adjust their access rights.
Assign tasks to the contributors
Please check the Tasks article to learn more.
Now that the contributors are invited, you'll probably want to assign some work to them. To do that, go to the Tasks page:
On this page, you'll be able to create a new task, choose translations to include, and assign this task to specific contributors.
Use Lokalise apps
Please check the Apps collection to learn more.
If your content was initially hosted on a third-party platform, like a GitHub repo, WordPress website, or Zendesk Guide, you'll probably need an easy way to perform content exchange. That's why we've introduced Lokalise apps that enable you to connect with numerous services and tools easily. To get started, go to the Apps page:
Choose one of the apps and install it!
Download translations back to your project
Check the Downloading translation files article to learn more.
After you're done working with translations, you'll probably want to download them back to your project. To do that, go to the Download page:
Here, you'll need to choose an output file format, the language to include, and adjust other options.
My project is empty and I see a message that it was archived!
We archive inactive teams and the corresponding projects on a regular basis. However, all your data is still preserved. Please check the Archiving inactive teams article to learn more about this process and how you can unarchive your projects.