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.
What moves
Section titled “What moves”| What | How it arrives |
|---|---|
| Files and keys | One Ownlate file per source file, keys in the order of the file |
| Translations | With their status: approved in the source stays approved, reviewed stays reviewed, the rest waits for review |
| Plurals | As plural segments with the forms of each language |
| Descriptions, length limits, tags | On the segment |
| Keys that are not translated | Marked as such |
| Comments | With the name of the author and the time they were written |
| Screenshots | With the area of the key on the screenshot |
| Translation memory | Into the memory of the workspace; from Lokalise, export it as TMX and add it on its own |
| Glossary | Into the glossary of the workspace, merged into terms you already have |
| People | Invited 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.
Where from
Section titled “Where from”- 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.tmxand a glossary as.tbxor a CSV underglossary/. 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.ymlwrites that file for you — see CLI.
Ownlate recognises the usual layouts of an archive on its own:
| In the archive | Becomes |
|---|---|
locales/en/auth.json, locales/de/auth.json | one file auth.json with German translations |
config/locales/en.yml, config/locales/de.yml | one Rails file en.yml |
res/values/strings.xml, res/values-de/strings.xml | one Android file strings.xml |
auth.xliff with target-language="de" | German translations of the keys inside |
memory.tmx | translation memory |
glossary/terms.tbx, glossary/terms.csv | glossary |
A file whose language Ownlate cannot tell from its content or its path is listed in the report and left out.
The report
Section titled “The report”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.
While it runs
Section titled “While it runs”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.
Running it again
Section titled “Running it again”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.
People
Section titled “People”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.
Memory and glossary on their own
Section titled “Memory and glossary on their own”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.