Contribute translations

From AtoM wiki
Revision as of 15:48, 29 October 2019 by Crogers (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Main Page > Resources > Resources/Translation

Thank you for your interest in contributing user interface translations to the AtoM project! Your contributions help to further AtoM as a multilingual application with a global reach.

In our continuing efforts to make the process of translating the AtoM interface more efficient, Artefactual Systems has moved from its previous translation service, Transifex to Weblate, an open source web-based translation management system supporting continuous translation from multiple sources. More than one translator can contribute translated strings, making the process fast and easy, and enabling Artefactual Systems to publish translations more often. Everything is web-based using Weblate, meaning you can access your translation work via any web browser.

This page will introduce you to the AtoM Weblate translation project, so that you can log in and begin translating. If you have contributed through Transifex in the past, you will notice that the log in process with Weblate is slightly different, but contributing translations continues to be easy and flexible.


  • Interested in contributing to our project documentation? We have a separate page for that! See:Contribute documentation
  • Looking to contribute code to AtoM? See: Contribute code
  • Check out our User Manual for information on how to translate content or interface elements locally (in your installation only) - see the Multilingual section.
  • Got questions, or find something that's not covered below that you think would be helpful? Let us know via the AtoM User Forum, or send us an email at

Browsing Artefactual translations

The AtoM project in Weblate lives here:

First view

You can browse the project as an anonymous user without logging in, view available languages, and see what has and hasn't been translated. Click on the Browse button or the atom link to begin. This will take you to the list of components within a given project. The project is atom and the component(s) are the active versions of AtoM available for translation. For example purposes, this document shows two components for AtoM translations - 2.4 and 2.5.


While anyone can browse and view translations, only logged in users can contribute and save translations, and are credited for every translation made. To contribute translations, keep reading below!

Log in to contribute to Artefactual translations

1. You do not need to set up an account with Weblate to begin translating for AtoM. Artefactual has configured authentication through GitHub. Navigate to and click Login at the top right. Use your GitHub account to log in. If you don't have a GitHub account, you can set one up here.

GitHub auth

The first time you log in you will be asked to grant access to your GitHub account. Click

Authorize by qubot

You will not see this screen on subsequent logins.


Set your preferences

2. When you log in you will see the Dashboard and menu options.

Weblate dashboard

You can set your preferences by clicking on "Manage languages", "Manage watched projects", or "Settings" and selecting your preferences in the navigation tabs.

Set your preferences

Each of these choices takes you to the settings screen. The three navigation tabs you will want to review before you start translating are Languages, Subscriptions, and Preferences.

3. From the Language navigation tab, choose the languages you wish to translate and those you may want to follow. Choose your primary languages from the Translated languages box. These are the languages you speak fluently and wish to translate. They will show up on your dashboard as "Watched languages" when you log in or navigate to the dashboard. If there are other languages you want to follow, choose those in the Secondary languages box. Strings that have been translated in these languages will appear on the translation page (see #Begin translating). When you have made your selections, click Save. You can change these settings at any time by returning to the Languages tab in settings.

Language tab

4. From the Subscription tab, you can choose translation project(s) you wish to follow and click Save. Currently Artefactual has only one translation project - atom. Even though there is currently only one project, choose it and click Save so that it will appear in your dashboard.

You can also specify notifications that you would like to receive. Notifications are selected from the Subscription tab below the Projects section. Translation notifications apply to your primary languages. This can be especially useful for users who are designated reviewers (see #Become a reviewer). When you are done, save your selections.

Subscription tab

These settings can be changed or updated at any time by returning to the Subscriptions tab in settings.

5. Once you have chosen languages and subscriptions (projects), these will appear on your dashboard, showing the status of translation for each of your chosen languages and projects. You will also see a Watched projects dropdown list on the main navigation bar at the top of the page; all Artefactual translation projects are available from the Projects dropdown list, and all available languages from the Languages dropdown list.

In the screenshot below, the user has selected three primary languages - these will always be shown on the dashboard for the available components of watched projects (subscriptions) when that user logs in.

Projects dashboard


Don't see a language you would like to provide translations for? We have instructions on how you can request new languages in the section below!

6. From the Preferences tab you can choose how you would like the translation screen to appear. Translation editor mode offers two choices - Full editor mode and Zen mode. These are described below in Begin translating. You can also choose what information appears on your dashboard. When you are finished making your selections, click Save.


Weblate has its own help documentation - here's a help page on getting started:

Requesting new languages

7. Don't see a language you would like to provide translations for? If you would like to translate in a language that is not currently available in our Weblate project, you can request that it be added. To start a request, click on the project component in which you plan to add translations (currently 2.4 and 2.5). From the Tools menus select Start new translation or scroll to the bottom of the list of languages and click on Start new translation at the bottom of the page.

From the tools menu:

Request new language

From the bottom of the page:

Request new language

Select the language(s) you would like added to the project and click Request new translation.

Request Acholi

If the languages listed still do not include one that you want to translate, click the link Can't find your language in the list above?. View a list of all languages supported in AtoM, with their corresponding language codes, here:

Complete the Weblate form with as much detail as possible using information from this list and click Send. Your request will be received by Artefactual.

Language contact


Please review the options available in the list prior to requesting a new language! In many cases, we have had requests for different locales (for example, requesting "fr_FR" for France French, instead of working in the existing "fr" French project), but AtoM does not always support these very well. If at all possible, please work within the existing projects, or try to select the most generic option, without locale codes. We'll work with you if there are no other options, of course - but if you can avoid using a specific locale, it will make merging and maintaining your translations in AtoM much easier!

Begin translating

8. From your dashboard you can navigate to the translation screen in two ways.

Projects dashboard

Click on your choice of component and language in the Component column. This will take you to the Overview screen of the main translation page for that language. Here you will see links that can take you to the translation screen. Clicking on the Translate button will take you to the set of strings needing action. You can choose different filtered set by clicking any of the links under Strings to check.


The second way to reach the translation screen from your dashboard is to click on the Translate button to the right of the component/language you want to translate. This will take you directly to the translation screen and strings needing action. You can change the filter on strings for translation from the dropdown menu at the top left.

9. Once you have reached the translation screen you will see the first item needing translation. The default view is Full editor mode; the screen shows any watched (secondary) languages you have set, the source string to be translated, and a text field in which you can enter your translation. In this screenshot, there are no watched languages.

Full editor

Many source strings include variables, e.g. %1%, or (%3% b). These should be included in the translated string in the appropriate position for the destination language, e.g. from the current example

%1%Download%2% (%3% b)

will be translated as

%1%Sækja%2% (%3% b)

When you have entered your translation, click Save. Your translation will be saved and checked by Weblate's quality checks. If there are any failing checks a message will appear. You can then edit your translation and resave, or leave the translation as is and move on to the next source string. You can skip any strings you do not want to translate.


All translations are saved in Weblate regardless of failing checks. Weblate runs a wide range of quality checks on each translation, including syntax, length, consistency, duplication and more, taking into account special rules for different languages. See types of translation checks here. Any translation that has not been approved by a designated reviewer can be edited by any logged in user, including fixing failed checks or editing a saved translation. You can see the status of a translation by hovering over the State next to a translation on the translation screen. Translation states include Message is approved (green check mark, translation cannot be edited);

Message is translated (blue check mark, translation can be edited); Message has failing checks (brown exclamation mark, translation can be edited); and Message not translated (red x).

Translation states

10. For faster translation switch to Zen mode by clicking Zen at the top right of the screen. In Zen mode each item shows (1) the source string (location in the Artefactual database), (2) translations in any languages you are watching, (3) the term to be translated, and (4) the edit area for your translation.

Adding Translations

You can switch from Zen mode back to Full Editor mode by clicking Exit Zen. .

In Zen mode your translation will be saved automatically, and checked, once you move your cursor out of the translation field.

Translated word

If your translation fails any checks, a red "x" will appear. Scrolling over the "x" will highlight the syntax error.

Failed translation

You can work through the list of strings needing translation, choosing those you want to translate.


When you are entering translations in Zen mode, your entries will be saved automatically. When you are in Full editor mode, however, you need to save the translation in the primary language.

11. You can contribute translations in any language, even those you have not set as primary or secondary. Clicking on a project component will bring up a list of all languages in the project. Click Translate next to any language to go to the translation screen for that language. Click Watched projects from the main menu bar, select atom, and then select the component you want.

All languages

You can access a particular source string in any other language by starting from the translation screen of one of your primary languages. Exit Zen mode if necessary. From Full Editor mode you can then enter your translation in the primary language, and by scrolling down to Other languages enter or edit translations for that same string in as many languages as you like by clicking Edit to the right of the translation field for each language. If you do not want to edit the string that is offered, click on Skip in the main translation box. Move to the next string by clicking the counter at the top of the screen.

Translating in several languages


Weblate supports keyboard shortcuts to make navigating through the site quicker and more efficient. You can see a complete list of shortcuts here.

12. Your translations are all saved in our database. However, before they can be included into the public branch of AtoM they need to be approved by designated reviewers, and then pushed to AtoM by Artefactual administrators.

Become a reviewer

13. Before translations from Weblate are added to AtoM they must be approved by designated reviewers. Reviewers are community members who are willing the review and approve translations in languages in which they are proficient. Once a translation is approved it cannot be changed (except by an administrator). These approved and locked translations are then ready to be incorporated into the main AtoM site. This will be done periodically by Artefactual.

14. All logged-in users at have translator privileges that allow them to enter translations and edit their own and others' translations prior to approval. Reviewers have the same privileges as translators, as well as privileges that allow them to approve (and therefore lock) translations. If you would like to be a reviewer, log into the translation project. This will ensure that your email is registered with the site as a translator, and visible to the Artefactual administrators. Then send us an email at so that we can grant you reviewer privileges.

15. Once you have reviewer privileges you can search for strings to be approved in your primary language(s). Click on Strings waiting for review from the translation screen in your chosen language. In Full editor mode this link appears in the list of strings to check.

Strings needing approval

If you have set Zen mode as your default view, you can select strings waiting for review from the drop down list at the top of the page.

Strings needing approval

For each string needing approval, you can click the radio button Approved to lock the translation for that string. Remember to click Save if you are using Full editor mode.

16. Several times through the year Artefactual developers will push approved strings into the main AtoM branch. Reviewers will receive an email several weeks before these events to request that they approve new translations in their designated languages.


Below you'll find some responses to frequently asked questions about Weblate, and our move from Transifex. You can also explore the Weblate documentation - here are a few handy links:


Have a question you don't see addressed here? Let us know via the AtoM User Forum, or send us an email at

I just got comfortable using Transifex - Why are you moving from Transifex to Weblate?

Artefactual was previously able to use Transifex because they offered free plans to open source projects. As of 2018, Transifex changed its policy to limit these free accounts to small projects with 10 collaborators or less - and because AtoM has a vibrant translation community with dozens of translators, we no longer qualify. A paid plan with Transifex that could support as many collaborators as we need would cost at least $1,500 USD a month to maintain, which would represent a serious drain on the resources we have to maintain the project. Instead, we have chosen to move to an open source platform, Weblate, so we can host and manage the application ourselves.

Why can I only log in through GitHub?

Now that Artefactual is hosting and maintaining our translation infrastructure, we expect that many bots, web crawlers, and spam accounts would hit our user registration page, requiring significant time and energy to manage. GitHub is a long-established code repository platform that has existing filters and checks in place to reduce these kinds of spurious registration attempts, so we don't have to do it manually.

Artefactual already makes use of GitHub for AtoM's code repository and documentation, and going forward, the translation strings for each release will also be maintained in a separate GitHub repository.

There are two components in the Weblate AtoM project - which one should I use?

Generally, Artefactual offers two kinds of releases: a major release (e.g. 2.3, 2.4, 2.5, etc) and sometimes, a minor release (e.g. 2.3.1, 2.4.1, etc). Major releases include new features and enhancements, while in most cases, minor releases will only include bug fixes. Both releases may include translation updates if they have been provided by our community. In Weblate, components will only have major numbers (e.g. 2.4, 2.5, 2.6, etc) and will be used to prepare any releases, major or minor, relating to the component number.

In most cases, there should only be one unlocked component in Weblate's AtoM project - if we've released 2.5 for example but expect to create a 2.5.1 release, we will likely not open a 2.6 component until 2.5.1 has been released, so that translators don't have add the same translations to both components. However, there may be rare cases where we have two components open and unlocked. This might occur if, for example, we've already added a 2.6 component, but then discover an issue in 2.5 big enough to warrant a 2.5.1 release, and want to allow our translator community an opportunity to supplement or update existing translations in that release as well.

In this rare case, it's up to you which component you choose to work in - but it should be informed by your goals, and a clear understanding of the consequences.


If there are 2 open components in Weblate, then translations added to one component will not automatically be added to the other, even if it is for an earlier release. The only way to have your translations available in both components (and both releases) will be to manually add your translations to both components.

If there is a 2.5 and a 2.6 AtoM component in Weblate, then the 2.5 component will be used for a 2.5 minor release (i.e. 2.5.1, 2.5.2), and the 2.6 component will be used for the next major release (i.e. 2.6.0). In the case where there are 2 open components, those translation strings added in the earlier version will not be carried forward into the later component - but the later component will be used to create the next component in the future, meaning the strings will be carried forward into subsequent releases.

Because of this, we recommend only working in the earlier component if you want to fix poor translations or make other minor improvements in the next minor release so you can access them more quickly (since this will be the next public release), and you don't mind losing them in the next release or manually making the same changes in the later component. Otherwise, we recommend focusing on the latest component available - this ensures that your translations will be included in future releases as well.

What's the difference between a reviewer and translator?

Every person who logs into our AtoM translation project through GitHub will automatically be a translator. That means you can choose projects, and primary and secondary languages to watch, add translations in your chosen language(s) and any other languages you have knowledge of, and request that new languages that are currently unavailable in the project be added to it. When you add a translation, that string is automatically saved in the Weblate database and becomes visible to everyone. It can still be edited by you or by other translators. However, it will not be part of the next Artefactual commit until it has been approved. That is the role of a reviewer.

Reviewers have all the same privileges as translators, as well as the ability to approve translations. Once a reviewer has approved a translation it will no longer be editable, and it will be part of the next Artefactual commit.

Why do I need a reviewer?

Artefactual has chosen to use this model in order to maintain quality control on translations. If you would like to be a reviewer, please let us know by sending an email to

What do I do if there are no reviewers on my language?

We track who is a reviewer for any given language, and will contact translators directly if reviewers are needed for a language. If you find yourself completing translations with no reviewer for your chosen language(s), please feel free to contact us at

Why can't i translate in a specific sublocale (like ES_es)?

AtoM was built using the Symfony 1.x PHP framework, and we borrow its internationalization (or i18n) functionality to implement AtoM's ability to translate content into multiple languages. However, as an older framework, Symfony's support for specific sublocales is limited. AtoM cannot at this time support a language that is not supported by the underlying Symfony i18n framework.

Where can I find a list of supported languages for translation in AtoM?

We have a list of all of AtoM's supported languages, and their 2-letter ISO 639-1 language codes, here:

How do I request a new language?

First, please make sure that the language you would like to request is supported in AtoM - see this list:

If it is supported, but you don't see it in Weblate, please see the "Requesting new languages" section above. You can request a new language via Weblate - here's a quick summary of the steps outlined above:

  • Navigate to the AtoM component in which you want to work
  • Click the "Start new translation" button at the bottom of the page
  • In the Language selection page that will appear, click the "Can't find your language in the list above?" hyperlink
  • Weblate will open a Contact form - please fill out the details of your request. Artefactual will receive it and review the request. If you've requested a language that AtoM supports (full list available here), we'll approve it!

See the documentation section above for more details and screenshots.

Alternatively, feel free to email us at and we will be happy to add a new language for you!

Thank you for helping us translate AtoM - it is through your participation that we can make AtoM a truly international application!

Got questions, or find something that's not covered below that you think would be helpful? Let us know via the AtoM User Forum, or send us an email at