Translating using Weblate¶
Thank you for interest in translating using Weblate. Projects can be either be set up for direct translation, or by way of accepting suggestions on behalf of users without accounts.
Overall, there are the modes of translation:
- Projects accepts direct translations
- Projects accepts only suggestions, which are accepted once given a defined number of votes
Options for translation project visibility:
- Publicly visible and anybody can contribute
- Visible only to a certain group of translators
Please see Translation workflows for more info on translation workflow.
Translation projects hold related components, related to the same software, book, or project.
Actual permissions might vary depending on your Weblate configuration.
Anonymous users can only (if permitted) forward suggestions. Doing so is still available to logged in users, in cases where uncertainty about the translation arises, which will prompt another translator to review it.
The suggestions are dialy scanned to remove duplicate ones or the one where suggestion matches current translation.
On the translation page, the source string and an edit area for translating it is shown. Should the translation be plural, multiple source strings and edit areas are shown, each described and label in plural form.
Any special whitespace characters you will find underlined in red and indicated with grey symbols. More than one subsequent space is also underlined in red to alert the translator to its formatting.
Various bits of extra info can be shown on this page, most which comes from the project source code (like context, comments or where the message is being used). When you choose secondary languages in your preferences, translation to these languages will be shown (see Secondary languages).
Below the translation, any suggestions made by others will be shown, which you can in turn accept, accept and make changes, or delete.
Words that change form to account of their numeric designation are called plurals. Each language has its own definition of plurals. English, for example, supports one plural. 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 used in the translated application depends on the configured plural equation. Weblate shows the basic info, but you can find a more detailed description in the Language Plural Rules by the Unicode Consortium.
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:
- Navigates to first translation in current search.
- Navigates to last translation in current search.
- Navigates to previous translation in current search.
- Navigates to next translation in current search.
- Ctrl+⏎ or ⌘+⏎ or Ctrl+Enter or ⌘+⏎
- Saves current translation.
- Ctrl+Shift+⏎ or ⌘+Shift+⏎
- Unmarks translation as fuzzy and submits it.
- Ctrl+E or ⌘+E
- Focus translation editor.
- Ctrl+U or ⌘+U
- Focus comment editor.
- Ctrl+M or ⌘+M
- Shows machine translation tab.
- Ctrl+<NUMBER> or ⌘+<NUMBER>
- Copies placeable of given number from source string.
- Ctrl+M <NUMBER> or ⌘+M <NUMBER>
- Copy machine translation of given number to current translation.
- Ctrl+I <NUMBER> or ⌘+I <NUMBER>
- Ignore failing check of given number.
- Ctrl+J or ⌘+J
- Shows nearby strings tab.
- Ctrl+S or ⌘+S
- Shows search tab.
- Ctrl+O or ⌘+O
- Copies source string
- Ctrl+T or ⌘+T
- Toggles edit needed flag.
A small visual keyboard is shown when translating. This can be useful for typing characters not usually found or otherwise hard to type.
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.
- Can be uploaded to Weblate to better inform translators of where and how the string is used, see Visual context for strings.
- Nearby messages
- Displays neighbouring messages from the translation file. These are usually also used in a similar context and prove useful in keeping the translation consistent.
- Similar messages
- Messages found to be similar the current source string, which helps in providing a consistent translation.
- All locations
- In case a message appears in multiple places (e.g. multiple components), this tab shows all of them if found to be inconsistent (see Inconsistent), you can choose which one to use.
- Displays terms from the project glossary used in the current message.
- Recent edits
- List of people whom have changed this message recently using Weblate.
- Project info like instructions for translators, or info about its version control system repository.
If the translation format supports it, you can also follow supplied links to respective source code containing each source string.
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 length of translation in several ways to ensure the translated string is not too long.
- The default limitation for translation is ten times longer than source
string. This can be turned of by
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH. In case you are hitting this, it might be also caused by monolingual translation being configured as bilingual, making Weblate see translation key as source string instead of 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.
- Maximal rendered size in pixels defined by flags, see Maximum size of translation.
Each project can have an assigned glossary for any language as a shorthand for storing terminology. Consistency is more easily maintained this way. Terms from the currently translated string can be displayed in the bottom tabs.
On the Glossaries tab of each project page, you can find a link that reads Manage all glossaries, wherein you can start new glossaries or edit existing ones. Once a glossary exists, it will also show up in this tab.
On the next page, you can choose which glossary to manage (all languages used in the current project are shown). Following this language link will lead you to a page which can be used to edit, import or export the glossary:
Based on configuration and your translated language, Weblate provides you suggestions from several machine translation tools. All machine translations are available in a single tab of each translation page.
You can find list of supported tools in Machine translation.
You can use automatic translation to bootstrap translation based on external sources. This tool is called Automatic translation accessible in the Tools menu:
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 website and application) or when bootstrapping translation for a new component using existing translations (translation memory).
To avoid abuse of the interface, there is rate limiting applied to several operations like searching, sending contact form or translating. In case you are are hit by this, you are blocked for certain period until you can perform the operation again.
The default limits are described in the administrative manual in Rate limiting, but can be tweaked by configuration.