Version control is a process in which all file versions are stored during software development. This ensures that older versions are readily available in case there are any potential issues. In the software industry, the most widespread version control system by far is Git, which was originally developed by Linus Torvalds – a Finn who some might also know as the father of Linux. Source code and repositories, where the actual data is stored, are often managed in hosting services such as GitHub, BitBucket and GitLab.
Git-based software often has a need for different language versions, which is why there are tools that have been specifically tailored to make the process as smooth as possible. Delingua has its own Git connector that enables you to move files effortlessly between our translation server and your Git repository. Say goodbye to sending file packages via email and read below what’s required to create a connection and what it enables.
How do you create the connection and what rights does it require?
The translation connector utilises personal access tokens (PAT) in GitHub and GitLab, and a separate app password in BitBucket. By using features that are already built into the services, no additional installations are required. This makes it possible to easily open (and close) the connection at a moment’s notice. In terms of access permissions, the connection requires read and write permissions to the data repository.
How does the connector work in practice and is there a chance that it might erase data?
The translation connector has two different steps: First, it downloads the files that are in need of translation (i.e. those in the source language) to us, which we then translate. Secondly, it will upload the completed translations back into the directory as separate files. This means that the translation connector will never write over the files that were originally sent for translation. Instead, the connection replaces the completed (i.e. target-language) files with the latest versions each time they are uploaded back into the Git directory.
Here is a simplified example:
- There is a repository with an English master file “example.json” and its Finnish translation “example-fi.json”.
- The English master file receives updates that are now also needed in the Finnish translation.
- We download the revised English master file using the connector. A professional translator will then translate it following our regular quality process.
- Once the translation is complete, our connector will upload the translated file back to the repository and replace the previous Finnish-language json file with it.
- As a result, the repository now contains the revised English “example.json” and the updated Finnish “example-fi.json”.
The process will look relatively the same regardless of whether there are one or ten languages, or 20 or 200 source files in an expansive file directory.
Where are the translations uploaded to and what kinds of language codes do they use?
The translation connector can be easily modified depending on where the translated files are needed in the directory. They can, for example, always be uploaded next to each original source file, or even into a separate language folder at the top of the file directory that mirrors the original folder structure.
The translated files can be equipped with the most commonly used language codes (e.g. “en”, “en-us”) separated by hyphens and underscores, for instance. They can also be left without a language code altogether if the directory uses separate language-specific folders.
Let us know what you have in mind and we can help you decide the best approach for your system.
Do I need to manually send or mark files for translation?
There’s no need. We are able to download the files from the Git directory using the connector, as long as they are in the location and format that we’ve agreed on and we know that there are files ready for translation.
Can a regular schedule be set for translations?
Absolutely! We can, for example, decide on a schedule to always download the latest versions on a certain day of each week or month and upload the translations back into the system after a set time period. Another option is that we always wait for a separate notification that there are now files ready for translations. This can be done via email, for example.
Does the connector always download all the files in the directory?
Not necessarily (but we can also have it do just that). We can define language-specific criteria for the connection based on file format, name or location, for example. So if you always want to translate just resx files and never any json files that are in the directory, we can certainly make it happen. However, the connector will always download all files that meet these specified criteria, regardless of whether they have received any updates after the previous round.
Am I paying extra if a massive resource file receives just minor updates or if some of the files remain identical?
No, you aren’t. We use translation memory software in our translations that automatically recognises which parts have changes or additions after the previous round and fills in the rest with the previous translations. This also affects the price. Using translation memory software also ensures that translations remain identical during each translation round.
Of course, it is also possible to translate just the individual strings that have received changes or additions instead of processing the entire database every time. The files just have to likewise be in the location and format that we’ve agreed on.
Is my code safe in the translator’s hands?
Yes, it is. We regularly translate all the most commonly used code formats. Additionally, a translator working in the translation memory software will only be able to make changes to the translatable strings. In other words, they are physically unable to edit structural parts of the code or change string IDs, for example.
Are you interested in hearing more about a Git translation connector or discussing your needs in more detail? Please leave us a contact request, we’re happy to help!