
Do you need to have your internal staff translate documents? Do you need to split a translation between two or more translators?
OmegaT’s "team project" feature conveniently allows multiple translators to work on the same project.
Since version 2.6.0, OmegaT, the free and open source assisted translation tool, has introduced a very interesting feature: two or more translators can work on the same project without using external tools, sharing glossaries and translation memories almost in real time.
Note: if you don’t know what is meant by "translation memory," find out in our glossary on translation terms.
Table of Contents
Version Control through Apache Subversion
The translator collaboration offered by OmegaT is based on the “version control” functionality, widely used among software developers to keep track of changes to the source code of a program.
There are several tools that implement version control, or versioning.
Two of the best known are Subversion (abbreviated SVN) and Git, not coincidentally the very ones supported by OmegaT. This guide will focus on Subversion.
Note: If you want to learn more you can read a very comprehensive free guide to Subversion available in several languages and published by O’Reilly Media.
Apache Subversion is a program installed on a server that allows you to host the source code of an application under development.
All programmers involved connect to that server to add their code changes. At the end, Subversion creates a single version by “merging” the various modifications made by the contributors.
Similarly, by loading an OmegaT translation project on an SVN server, it is possible to assign it to various translators who can then work on it simultaneously.
Here are some basic terminology explanations:
- repository is the place where files are saved;
- checkout is the creation of a working copy from the repository to the local computer;
- commit is the operation of copying changes from the local computer to the repository.
How to Share a Project Using SVN
Note: the following procedure is only provided as an example. For more detailed documentation on setting up both with Subversion and Git, refer to OmegaT’s online Help, particularly section 6.1, "Set up a Team Project."
One must first have an SVN server.
There are two options:
- installing SVN on your own server, or
- using a hosted service.
Googling “free svn hosting” will bring up several sites that offer this service for free.
The method presented here relies on the free SVN server (limited to 2 users) offered by ProjectLocker.
If you decide to use an external service, you must be aware of the possible implications regarding confidentiality, since you are loading the original document on a server outside of your direct control.
To avoid this issue you can set up a private SVN server, for example if you already have an Apache server with the software in question (e.g. VisualSVN). In this case the configuration is slightly different and will not be treated here.
To start with, we recommend experimenting with ProjectLocker or a similar service.
Once you’ve made the SVN server available, you must also locally install an SVN client, in order to manage the folders on your computer.
For Windows we recommend TortoiseSVN, while for Mac you can use SmartSVN or svnX, among others.
The whole process for sharing an OmegaT project among multiple translators is conceptually divided into 3 steps:
- creating the repository on the server;
- importing the OmegaT project into the repository;
- checkout of the OmegaT project.
The first step is the same for all operating systems. The project manager, or whoever among the group of translators is responsible for the management. This step is performed only once: it consists of creating a root folder on the SVN server that will contain all OmegaT projects to share.
How to import the OmegaT project into the repository depends on your operating system. It simply means copying the OmegaT project to the main repository. Depending on the SVN client and the operating system, procedures may be different from those shown here. This second step is also done only by the project manager.
Finally, the project checkout by each translator is handled by OmegaT itself and requires only a couple clicks when you open the project for the first time. This is the only necessary step that the translators collaborating on the project must take.
Creating a repository in ProjectLocker
- Create a new repository on ProjectLocker.
- In the
Projects
tab of ProjectLocker, clickNew Project
. - Type the name and description of the repository.
- Choose SVN.
- Click
Create Project
. - In the Projects view, click on
Click to View
. - In the popup window select the URL that corresponds to Subversion (not Trac), copy it, and paste it into a blank text file (you will need it later).
- In the
- Assign users to the repository:
- Click the name of the repository, and add one or more users (created earlier). You can also add a group.
- Click
Manage SVN Permissions
(left panel). - Add a group (e.g. Translation).
- Click the name of the group.
- Add one or more users to the group.
- For convenience, create a new folder on your computer, for example
/Repositories
, but you can also use an existing folder.
Importing your project (macOS)
- Download, install and open SmartSVN.
- From the
Project
menu, clickCheck out...
. - Paste the URL noted above into the Repository field and click
Continue
. - Select the root folder and click
Continue
. - Enter the ProjectLocker username and password and click
Next
. - On the
Local Directory
page, choose/Repositories
as the local folder where the working copy is to be created. - On the next page click
Finish
. - Open OmegaT and create a new project in the
/Repositories/svn/
folder (and make sure theproject-save.tmx
file is there). - Go back to SmartSVN and click
Update
, thenAdd
and finallyCommit
to synchronize the changes to the files contained in the project folder.
Importing your project (Windows)
- Open OmegaT and create a new project in a temporary folder.
- Select the newly created folder, right-click and choose Import... from the context menu added by TortoiseSVN. This command adds the files to the repository folder you created earlier.
- In the popup window, enter the ProjectLocker user name and password. TortoiseSVN remembers them, so they’re only required the first time.
- Paste the URL noted in the previous step and click OK, leaving the other parameters unchanged. You should add a note in the comments field, to facilitate traceability.
Caution! Please note that SVN imports all the files in the selected folder, but not the folder itself. If you use a single repository (as suggested in this tutorial), you must manually add the name of the project folder to the URL. For example, if you are working on project number 1, add 2022_0001 to the URL of the main repository, obtaining https://free5.projectlocker.com/main-repo-name/svn/2022_0001
- You can now delete the temporary folder, as the project will then be downloaded and managed using OmegaT.
Project checkout
At this point, each translator who has been assigned a part of the job needs to start OmegaT, and on the Project
menu select Download Team Project...
In the popup window choose SVN, type the URL you copied earlier (full project number, i.e. https://free5.projectlocker.com/main-repo-name/svn/2022_0001 as in the example) and specify the local folder where you want to save the project.
Authentication is required the first time. Enter the user name and password for your SVN server (ProjectLocker in our example).
During the first connection to the SVN server, all files created in the repository are downloaded locally.
Caution! Up to version 2.6.1, only the /omegat/project-save.tmx file, the one that contains the translated elements, is versioned (synchronized). Starting from version 2.6.1_2, the project glossary is also versioned, usually
/glossary/glossary.txt`. That means that any changes to other files in the project, such as changes to segmentation or source files, are not automatically detected by OmegaT. However, since the whole project is uploaded on the SVN server, you can always do the checkout and manually synchronize using an SVN client (provided that OmegaT is not active during these operations, in order to avoid conflicts).
During translation, each time you save the project, the project-save.tmx file containing all the changes is synchronized, merging all changes with those of other translators.
Setting the auto-save to every few minutes (2 or 3) will ensure frequent synchronization of your work with that of all the others. The same applies to the glossary file.
It is important to emphasize that if the project is not completed in a single session, during the next session it is not necessary to download the project again. You simply open the project already downloaded. OmegaT will detect that it is a team project and will automatically connect to the server.
In case of errors only 3 actions are taken:
- reload the project with the appropriate command or the shortcut F5;
- close the project, close OmegaT, reopen the program and the project;
- redownload the project to a new folder.
Sometimes it may be useful to empty the hidden .repositories
folder and its subfolders located within the project folder.
Benefits of shared projects
The team project feature has some clear advantages over exchanging a project between translators using Dropbox or Google Drive.
Despite a little complexity in its initial configuration, with Team Project you can organize working groups consisting of more than two translators.
Moreover, in the spirit of OmegaT as a project, you only use open source tools (both Apache Subversion and Git are distributed under open source licenses) without relying on commercial software (such as Dropbox or Drive).
And using the characteristics of the SVN server you can also provide your clients read-only access to the folder containing the target files, thus facilitating the delivery of the project.
All these benefits are available to users completely for free. A quick comparison with the prices of server-based solutions from OmegaT’s commercial competitors should be sufficient to understand the scope and importance of this OmegaT feature.
Those who would like to contribute to the project with a donation can do so conveniently via PayPal.