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:

  • Publicly visible and anybody can contribute

  • Visible only to a certain group of translators

Translation projects

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.


Three types of comments can be posted: for translations, source strings, or to report source string bugs when this functionality is turned on using Enable source reviews. Choose the one suitable to topic you want to discuss. Source string comments are in any event good for providing feedback on the original string, for example that it should be rephrased or to ask questions about it.

You can use Markdown syntax in all comments and mention other users using @mention.


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.

See also

String labels


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.

See also

Plural formula


Keyboard shortcuts

Changed in version 2.18: The keyboard shortcuts have been revamped in 2.18 to less likely collide with browser or system defaults.

The following keyboard shortcuts can be utilized during translation:

Keyboard shortcut



Navigate to first translation in current search.


Navigate to last translation in current search.

Alt+PageUp or

Ctrl or

Alt or


Navigate to previous translation in current search.

Alt+PageDown or

Ctrl+ or

Alt+ or


Navigate to next translation in current search.

Alt+Enter or

Ctrl+Enter or


Save current translation.

Ctrl+Shift+Enter or


Unmark translation as needing edit and submit it.

Ctrl+E or


Focus translation editor.

Ctrl+U or


Focus comment editor.

Ctrl+M or


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+1 to 9 or

Cmd+M+1 to 9

Copy the machine translation of given number to current translation.

Ctrl+I+1 to 9 or

Cmd+I+1 to 9

Ignore one item in the list of failing checks.

Ctrl+J or


Shows the Nearby strings tab.

Ctrl+S or


Focus search field.

Ctrl+O or


Copy source string.

Ctrl+Y or


Toggle the Needs editing flag.

Visual keyboard

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:

  • User configured characters defined in the User profile

  • Per-language characters provided by Weblate (e.g. quotes or RTL specific characters)

  • Characters configured using SPECIAL_CHARS


Translation context

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.

Translation history

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:

Automatic suggestions

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.

See also

You can find the list of supported tools in Machine translation.

Automatic translation

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 by Automatically translated.

Rate limiting

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 edit

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:


This tool is called Bulk edit accessible in the Tools menu of each project, component or translation.

See also

Bulk edit addon

Matrix View

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.

Zen Mode

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.