Skip to content

Moving a project from another tool

A project moves into Ownlate in one go: Ownlate reads what the old system has, shows you a report, and writes only after you confirm it. You can run the same move again while your team still works in the old system, and only what changed there comes across.

WhatHow it arrives
Files and keysOne Ownlate file per source file, keys in the order of the file
TranslationsWith their status: approved in the source stays approved, reviewed stays reviewed, the rest waits for review
PluralsAs plural segments with the forms of each language
Descriptions, length limits, tagsOn the segment
Keys that are not translatedMarked as such
CommentsWith the name of the author and the time they were written
ScreenshotsWith the area of the key on the screenshot
Translation memoryInto the memory of the workspace; from Lokalise, export it as TMX and add it on its own
GlossaryInto the glossary of the workspace, merged into terms you already have
PeopleInvited to the workspace as translators

Branches are not moved: only the main branch comes across. The history of each translation starts with one “imported” entry.

  • Crowdin or Lokalise. Connect the account with a personal token or sign in with the service, pick the project, and Ownlate reads everything above through the API.
  • An archive from any tool. Export a ZIP from the old system — XLIFF files, or your app files per language — and add memory.tmx and a glossary as .tbx or a CSV under glossary/. This is the way for Phrase, Tolgee, Transifex, POEditor, Weblate, Localazy and anything else. An archive takes at most 200 MB.
  • Your repository. If the translations already live next to the code, connect the repository with an ownlate.yml. Coming from Crowdin, ownlate init --from crowdin.yml writes that file for you — see CLI.

Ownlate recognises the usual layouts of an archive on its own:

In the archiveBecomes
locales/en/auth.json, locales/de/auth.jsonone file auth.json with German translations
config/locales/en.yml, config/locales/de.ymlone Rails file en.yml
res/values/strings.xml, res/values-de/strings.xmlone Android file strings.xml
auth.xliff with target-language="de"German translations of the keys inside
memory.tmxtranslation memory
glossary/terms.tbx, glossary/terms.csvglossary

A file whose language Ownlate cannot tell from its content or its path is listed in the report and left out.

Nothing is written before you confirm the report. It shows:

  • how many files, keys and words the project has, and how many translations of each status per language;
  • the Ownlate language each source language becomes, with the choice to change it or skip the language;
  • keys that appear twice in one file — the last value wins;
  • the people who will be invited, each of whom you can leave out;
  • the name of the new project and its source language.

The plan’s word limit is checked once, here: the approved words the import adds must fit. The first project of a workspace is not checked, whatever its size.

The import writes in batches and shows its progress. It carries on after a restart of the service from the batch it stopped at, and Cancel stops it after the current batch, keeping what was written. When it finishes, the summary lists what was created and updated, who was invited, and everything that was skipped with the reason.

An import of the same source project writes into the project the first import made:

  • new keys are added, changed texts and translations are updated;
  • a key renamed in the source keeps its segment, translations and history under the new name;
  • a key removed in the source is removed in Ownlate;
  • keys that did not change in the source are left as they are, including anything you edited in Ownlate since.

This lets the team keep working in the old system until the day you switch.

Everyone listed in the source project is invited to the workspace as a translator. Someone already in the workspace as a viewer becomes a translator; owners, admins and translators keep their level. An invitation that would take the workspace over its member limit is not sent and is named in the summary.

Only people whose email address the old system shares can be invited. Crowdin shares it on Crowdin Enterprise, so members of a crowdin.com project usually stay out, and the report says how many.

A TMX file can be added to the translation memory, and a TBX or CSV file to the glossary, without moving a project — with Import TMX on the translation memory page and Import TBX or CSV on the glossary page. The glossary file goes into the source language picked on that page. Each file takes at most 10 MB; a larger one goes in an archive.