Translating using Weblate#
Thank you for interest in translating using Weblate. Projects can either be set up for direct translation, or by way of accepting suggestions made by users without accounts.
Overall, there are two modes of translation:
The project accepts direct translations
The project only accepts suggestions, which are automatically validated once a defined number of votes is reached
Please see Translation workflows for more info on translation workflow.
Options for translation project visibility:
Visible only to a certain group of translators
Translation projects hold related components; resources for the same software, book, or project.
Actual permissions might vary depending on your Weblate configuration.
Anonymous users can only (by default) forward suggestions. Doing so is still available to signed-in users, in cases where uncertainty about the translation arises, prompting other translators to review it.
The suggestions are scanned on a daily basis to remove duplicates and suggestions matching the current translation.
Variants are used to group different length variants of the string. The frontend of your project can then use different strings depending on the screen or window size.
Labels are used to categorize strings within a project to further customize the localization workflow (for example to define categories of strings).
Following labels are used by Weblate:
- Automatically translated
String was translated using Automatic translation.
- Source needs review
String was marked for review using Source strings reviews.
On the translation page, the source string and an editing area for its translation are shown. Should the translation be plural, multiple source strings and editing areas are shown, each described and labeled in the amount of plural forms the translated language has.
All special whitespace characters are underlined in red and indicated with grey symbols. More than one subsequent space is also underlined in red to alert the translator to a potential formatting issue.
Various bits of extra info can be shown on this page, most of which coming from the project source code (like context, comments or where the message is being used). Translation fields for any secondary languages translators select in the preferences will be shown (see Secondary languages) above the source string.
Below the translation, translators will find suggestion made by others, to be accepted (✓), accepted with changes (✏️), or deleted (🗑).
Words changing form to account of their numeric designation are called plurals. Each language has its own definition of plurals. English, for example, supports one. In the singular definition of for example “car”, implicitly one car is referenced, in the plural definition, “cars” two or more cars are referenced (or the concept of cars as a noun). Languages like for example Czech or Arabic have more plurals and also their rules for plurals are different.
Weblate has full support for each of these forms, in each respective language (by translating every plural separately). The number of fields and how it is in turn used in the translated application or project depends on the configured plural formula. Weblate shows the basic info, and the Language Plural Rules by the Unicode Consortium is a more detailed description.
New in version 4.13.
This is currently only supported with Multivalue CSV file.
With some formats, it is possible to have more translations for a single string. You can add more alternative translations using the Tools menu. Any blank alternative translations will be automatically removed upon saving.
The following keyboard shortcuts can be utilized during translation:
Navigate to first translation in current search.
Navigate to last translation in current search.
Navigate to previous translation in current search.
Navigate to next translation in current search.
Submit current form; this is same as pressing Save and continue while editing translation.
Unmark translation as needing edit and submit it.
Submit the string as a suggestion; this is same as pressing Suggest while editing translation.
Focus translation editor.
Focus comment editor.
Shows Automatic suggestions tab, see Automatic suggestions.
Ctrl+1 to Ctrl+9 or
Cmd+1 to Cmd+9
Copies placeable of given number from source string.
Ctrl+M followed by 1 to 9 or
Cmd+M followed by 1 to 9
Copy the machine translation of given number to current translation.
Ctrl+I followed by 1 to 9 or
Cmd+I followed by 1 to 9
Ignore one item in the list of failing checks.
Shows the Nearby strings tab.
Focus search field.
Copy source string.
Toggle the Needs editing checkbox.
A small visual keyboard row is shown just above the translation field. This can be useful to keep local punctuation in mind (as the row is local to each language), or have characters otherwise hard to type handy.
The shown symbols factor into three categories:
This contextual description provides related info about the current string.
- String attributes
Things like message ID, context (
msgctxt) or location in source code.
Screenshots can be uploaded to Weblate to better inform translators of where and how the string is used, see Visual context for strings.
- Nearby strings
Displays neighbouring messages from the translation file. These are usually also used in a similar context and prove useful in keeping the translation consistent.
- Other occurrences
In case a message appears in multiple places (e.g. multiple components), this tab shows all of them if they are found to be inconsistent (see Inconsistent). You can choose which one to use.
- Translation memory
Look at similar strings translated in past, see Translation Memory.
Displays terms from the project glossary used in the current message.
- Recent changes
List of people whom have changed this message recently using Weblate.
Project info like instructions for translators, or a directory or link to the string in the version control system repository the project uses.
If you want direct links, the translation format has to support it.
Every change is by default (unless turned off in component settings) saved in the database, and can be reverted. Optionally one can still also revert anything in the underlying version control system.
Translated string length#
Weblate can limit the length of a translation in several ways to ensure the translated string is not too long:
The default limitation for translation is ten times longer than the source string. This can be turned off by
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH. In case you are hitting this, it might be also caused by a monolingual translation erroneously set up as bilingual one, making Weblate mistaking the translation key for the actual source string. See Bilingual and monolingual formats for more info.
Maximal length in characters defined by translation file or flag, see Maximum length of translation.
Maximal rendered size in pixels defined by flags, see Maximum size of translation.
Based on configuration and your translated language, Weblate provides suggestions from several machine translation tools and Translation Memory. All machine translations are available in a single tab of each translation page.
You can also perform a concordance search on the Translation Memory.
You can find the list of supported tools in Configuring automatic suggestions.
You can use automatic translation to bootstrap translation based on external sources. This tool is called Automatic translation accessible in the Tools menu, once you have selected a component and a language:
Two modes of operation are possible:
Using other Weblate components as a source for translations.
Using selected machine translation services with translations above a certain quality threshold.
You can also choose which strings are to be auto-translated.
Be mindful that this will overwrite existing translations if employed with wide filters such as All strings.
Useful in several situations like consolidating translation between different components (for example the application and its website) or when bootstrapping a translation for a new component using existing translations (translation memory).
The automatically translated strings are labelled Automatically translated.
To avoid abuse of the interface, rate limiting is applied to several operations like searching, sending contact forms or translating. If affected by it, you are blocked for a certain period until you can perform the operation again.
Default limits and fine-tuning is described in the administrative manual, see Rate limiting.
Search and replace#
Change terminology effectively or perform bulk fixing of the strings using Search and replace in the Tools menu.
Don’t worry about messing up the strings. This is a two-step process showing a preview of edited strings before the actual change is confirmed.
Bulk editing allows performing one operation on number of strings. You define strings by searching for them and set up something to be done for matching ones. The following operations are supported:
Changing string state (for example to approve all unreviewed strings).
Adjust translation flags (see Customizing behavior using flags)
Adjust string labels (see String labels)
This tool is called Bulk edit accessible in the Tools menu of each project, component or translation.
To compare different languages efficiently you can use the matrix view. It is available on every component page under the Tools menu. First select all languages you want to compare and confirm your selection, after that you can click on any translation to open and edit it quickly.
The matrix view is also a very good starting point to find missing translations in different languages and quickly add them from one view.
The Zen editor can be enabled by clicking the Zen button on the top right while translating a component. It simplifies the layout and removes additional UI elements such as Nearby strings or the Glossary.
You can select the Zen editor as your default editor using the Preferences tab on your User profile. Here you can also choose between having translations listed Top to bottom or Side by side depending on your personal preference.