Flux de travail de traduction

L’utilisation de Weblate améliore la qualité, réduit le travail manuel, et permet de rapprocher les traducteurs. C’est à vous de décider du nombre de fonctionnalités Weblate que vous souhaitez utiliser.

Ce qui suit n’est pas la liste complète des moyens de configurer Weblate. Vous pouvez baser les autres flux de travail sur les exemples fournis ici.

Personnalisation du flux

En plus des paramètres sur Configuration du projet et Configuration des composants (comme Activer les révisions, Autoriser les suggestions, Vote pour la suggestion, et Accepter automatiquement les suggestions), le flux de travail des traductions peut être personnalisé par langue.

La personnalisation du flux de travail gloabal au site peut être faite pendant Modification des définitions de langue.

La personnalisation par projet peut être faite sur chaque page de langue du projet.

Tous les paramètres du flux de travail peuvent être redéfinis, la seule limitation est que Activer les révisions doit être activé et ne peut être désactivé que par personnalisation en fonction de la langue.

Les premiers paramètres existants sont appliqués :

  1. Personnaliser la langue du projet

  2. Personnaliser la langue

  3. Paramètres du projet ou du composant

Note

Soyez très attentif quand vous utilisez des redéfinitions globales à tout le site car celles-ci s’appliquent à tous les projets (sauf si à leur tour elles possèdent des redéfinitions pour une langue donnée).

Limiting translation languages

Several settings can limit translation languages. They address different stages of the translation lifecycle and can be combined:

Control requests for languages that do not exist yet

Configure Ajouter une nouvelle traduction at workspace, project, category, or component level. Categories and components can inherit this setting; see Settings inheritance. You can let users contact maintainers, point them to translation instructions, create the language file automatically, or disable adding new translations.

Project admins can still add a translation when Weblate can create its file. For components that do not inherit the project setting, change Ajouter une nouvelle traduction individually or automate the changes using PATCH /api/components/(string:project)/(string:component)/.

To allow existing project languages while requesting approval for new ones, select Create existing project languages; contact maintainers for new languages. A language qualifies when any non-glossary component in the project has a target translation for it, even with no translated strings. Source-only languages and glossary translations do not qualify. This applies across categories, including shared components and components the contributor cannot access.

Maintainers approve a language by creating its first target translation. Removing the last qualifying translation removes eligibility. Component overrides that allow unrestricted language creation can also introduce an eligible language. Project and category submissions use the languages present at the start of the operation, so component processing order does not affect the result.

Project and category submissions modify only components owned by that project or category. To add a language to a shared component, use its own language creation page; the owning project’s eligibility and permissions apply there.

The REST translation creation endpoint returns HTTP 403 for languages requiring approval; submit these requests through the web interface. The permission to add several languages does not bypass this policy. Maintainers and trusted add-ons retain their existing creation permissions, and repository file discovery is unaffected.

Disabling new translations controls user requests. It does not stop discovery of translation files added to the repository or automatic glossary language synchronization.

Limit which translation files Weblate discovers or creates

Configure Filtre sur la langue on each component. For example, ^(de|en|fr)$ limits the component to translation files whose language code is de, en, or fr. The filter applies while scanning the component file mask and when creating a new translation file; it does not change permissions for translations that are already present.

Language filters are configured per component, with no project-wide language allowlist. To apply a filter across many components, automate the changes using PATCH /api/components/(string:project)/(string:component)/.

Grant translation access only for selected languages

Use language-scoped teams when different users should be able to translate different languages. A team can only grant permissions, so remove any broader translation permission that would otherwise apply to the same users.

Restrict direct editing of an existing language

Open the language settings in the project, enable Customize translation workflow for this language in this project, and turn on Restrict direct editing.

Users with the Edit string when suggestions are enforced permission can continue editing directly. Other users can add suggestions when Turn on suggestions is enabled. Turn off suggestions as well to make the language editable only by privileged users.

The restriction can also be configured site-wide while Modification des définitions de langue. A project-language customization takes precedence over the site-wide language setting.

Use suggestion voting

Turn on Suggestion voting to let users vote on suggestions. Voting alone does not restrict direct editing. A positive Automatically accept suggestions threshold also requires users without the Edit string when suggestions are enforced permission to submit suggestions. Use Restrict direct editing when this restriction should not depend on automatic acceptance.

Accès à la traduction

Le contrôle d’accès n’est pas détaillé complètement dans les flux de travail, car la plupart de ses options peuvent être appliquées à n’importe quel d’entre-eux. Voir la documentation respective sur la manière de gérer l’accès aux traductions.

Dans les chapîtres suivants, tout utilisateur signifie un utilisateur qui a accès à la traduction. Cela peut être n’importe quel utilisateur authentifié si le projet est public, ou un utilisateur avec les droits Traducteur sur le projet.

États de traduction

Chaque chaîne traduite peut être dans l’un des états suivants :

Non traduit

La traduction est vide. Selon le format du fichier, elle peut être stockée ou non.

À vérifier

Translation needs editing, this is usually the result of fuzzy matching or translator action. Depending on the file format it might be marked as needing edit (for example as it gets a fuzzy flag in the gettext file).

À reformuler

La traduction doit être reformulée car une chaîne source a été modifiée.

À vérifier

Etat utilisé pour les chaînes source ou de modèles qui nécessitent d’être revues par les développeurs. Il est particulièrement initialisé sur les nouvelles chaînes source importées du VCS lorsque le greffon d’édition du source est activé, ou lorsqu’une chaîne source est marquée à vérifier.

Traduit / En attente de relecture

La traduction est terminée. L’état de traduction affiché est « En attente de relecture » si la relecture a été activée.

Approuvé

La traduction a été approuvée lors de la relecture. Elle ne peut plus être modifiée par les traducteurs, mais uniquement par les relecteurs. Les traducteurs ne peuvent que lui ajouter des suggestions.

Cet état n’existe que lorsque les relectures sont autorisées.

Lecture seule

La chaîne est en mode lecture seule car elle comporte read-onlyflag, qu’il s’agisse d’une chaîne source non éditable, ou marquée comme telle dans le fichier de traduction.

Suggestions

Les suggestions sont rangées dans Weblate et non pas dans le fichier de traduction.

Lorsque c’est possible, les états sont représentés dans les fichiers de traduction.

Indication

Si le format que vous utilisez ne prend pas en charge les états d’enregistrement, vous pouvez utiliser le greffon Signaler les traductions inchangées comme « À réécrire » pour marquer les chaînes non modifiées qui nécessitent d’être modifiées.

Note

La Filtre sur la qualité de traduction détermine quels états de la traduction sont à enregistrer dans le fichier.

Traduction directe

Paramètre le plus commun pour les équipes plus petites où chacun peut traduire directement. C’est aussi la valeur par défaut dans Weblate.

  • N’importe quel utilisateur peut modifier des traductions.

  • Les suggestions sont des moyens facultatifs de suggérer des modifications, lorsque les traducteurs ne sont pas sûrs de la modification.

Paramètre

Valeur

Note

Activer les révisions

inactif

Configuré au niveau du projet.

Autoriser les suggestions

actif

Utile pour que les utilisateurs puissent faire des suggestions quand ils ne sont pas certains.

Vote pour la suggestion

inactif

Accepter automatiquement les suggestions

0

Groupe de traducteurs

Utilisateurs

Ou Traduire avec per-project access control.

Groupe des relecteurs

n.c.

Non utilisé.

Évaluation par les pairs

Avec ce flux de travail, chacun peut ajouter une suggestion, qui doit être approuvée par d’autres membres avant d’être acceptée comme traduction.

  • N’importe quel utilisateur peut ajouter des suggestions.

  • N’importe quel utilisateur peut voter pour des suggestions.

  • Les suggestions deviennent des traductions lorsqu’elles reçoivent un nombre prédéterminé de votes.

Paramètre

Valeur

Note

Activer les révisions

inactif

Configuré au niveau du projet.

Autoriser les suggestions

actif

Vote pour la suggestion

actif

Accepter automatiquement les suggestions

2

Vous pouvez définir une valeur plus grande afin de demander davantage de relecteurs.

Groupe de traducteurs

Utilisateurs

Ou Traduire avec per-project access control.

Groupe des relecteurs

n.c.

Non utilisé, tous les traducteurs peuvent relire.

Relecteurs dédiés

Avec des relecteurs dédiés, vous avez deux groupes d’utilisateurs, un groupe qui peut soumettre les traductions et l’autre qui peut les relire pour s’assurer qu’elles sont cohérentes et que leur qualité est satisfaisante.

  • Tout utilisateur peut modifier des traductions non approuvées.

  • Le relecteur peut approuver/désapprouver des chaînes.

  • Le relecteur peut modifier toutes les traductions (y compris celles qui ont été approuvées).

  • Les suggestions permettent également de suggérer des modifications pour les chaînes approuvées.

Paramètre

Valeur

Note

Activer les révisions

actif

Configuré au niveau du projet.

Autoriser les suggestions

actif

Utile pour que les utilisateurs puissent faire des suggestions quand ils ne sont pas certains.

Vote pour la suggestion

inactif

Accepter automatiquement les suggestions

0

Groupe de traducteurs

Utilisateurs

Ou Traduire avec per-project access control.

Groupe des relecteurs

Réviseur

Ou Relecture avec contrôle d’accès par projet.

Activer les relectures

Les relectures peuvent être activées dans la configuration du projet, à partir de la sous-page Flux de travail des paramètres du projet (accessible par le menu Opérations → Paramètres) :

_images/project-workflow.webp

Per-language reviews

To require review only for selected languages, first turn on Activer les révisions for the whole project. Then open each project language page that should use different behavior, enable Customize translation workflow for this language in this project, and turn Enable reviews off for languages that should not require review.

Reviewers also need review access for the same language. Add them to a team whose roles include Review strings, and limit that team or the user membership to the language they should review. See Gestion du contrôle d’accès par projet and Contrôle d’accès pour l’ensemble du site for language-scoped access setup.

If approval buttons are not visible, check both parts of the setup: reviews have to be enabled for that translation, and the signed-in user has to have review permission for that language.

Machine translation and LLM workflows

Machine translation services, including large language model (LLM) services, can assist human translators or generate translations for them to edit or approve. Choose a workflow based on when humans should check the generated text and when it should reach the repository.

First, configure the services under Automatic suggestions in the project settings or site administration; see Suggestions automatiques. For LLM services, see LLM translation context for the context and instructions used to guide translation.

To process strings in bulk, run Traduction automatique, select Machine translation as the source, and choose the services to use. For ongoing automation, configure the Traduction automatique add-on on the component with the same source and desired mode. Use the query state:empty to fill empty translations without replacing existing human work; see Rechercher des chaînes.

Human translation assisted by services

Use this workflow when translators should choose when to use machine translation for each string.

Translators consult the Suggestions automatiques tab in the editor, choose a service result, edit it as needed, and save the translation. These service results are distinct from stored suggestions awaiting acceptance: a human decides what to save. This workflow does not require the Automatic translation add-on and can be combined with Relecteurs dédiés.

Service translation with human editing

Use this workflow to fill translations automatically and let humans improve them directly.

The service output becomes a translation that humans can edit in the usual editor. It can be committed to the repository without human approval.

For machine drafts that should remain visibly unfinished, choose Add as « Needing edit » instead. Humans edit these drafts and clear the Needs editing state when finished. To keep unfinished drafts out of repository commits, set Filtre sur la qualité de traduction to Skip translations marked as needing editing.

Service suggestions with human acceptance

Use this workflow when humans should check service output before it becomes a translation.

Humans check the stored suggestions and accept suitable ones, or edit the proposed text before saving a translation. Suggestions are stored only in Weblate and do not enter translation files until accepted as translations. Accepting a suggestion is separate from approving a translation in the dedicated review workflow.

Service translation with review and a quality gateway

Use this workflow when humans should edit machine translations in Weblate, but only reviewer-approved translations should reach the repository.

Generated translations appear as Waiting for review. Translators can edit them, and reviewers check and approve the finished translations. Only after approval are these translations eligible for repository commits. Translators can suggest further changes to approved strings, while reviewers can edit them directly.

Enabling reviews alone does not keep unapproved translations out of commits. The translation quality filter provides that gateway. Keep reviews enabled for every language that should follow this workflow; check any workflow customization overrides.

Reusing existing translations

Use existing translations to bootstrap a new language or component, then have humans adapt matches and fill the remaining gaps.

Run Traduction automatique with Other translation components as the source, or select the Mémoire de traduction service under Machine translation. Choose whether matches become translations, drafts needing editing, or suggestions using the modes described above. Use state:empty to preserve existing translations. The Traduction automatique add-on can apply this reuse automatically as strings arrive.

For ongoing consistency, Propagation des traductions can copy edits to matching strings across components in the same project. Propagation happens while translating; it does not copy translations merely loaded from the repository. See Assurer la cohérence des traductions entre les composants for its requirements and for checks that help humans resolve differences.

Passerelle pour la qualité des chaînes sources

Les chaînes de caractères de la langue source originale viennent des développeurs parce qu’ils écrivent le code et fournissent les chaînes initiales. Néanmoins leur langue maternelle n’est pas forcément celle de la langue source et n’a pas la qualité souhaitée pour les chaînes source. La traduction intermédiaire peut donc vous aider à remettre cela en forme - il existe entre les développeurs et les traducteurs une passerelle supplémentaire concernant la qualité des chaînes.

En définissant Fichier de langue intermédiaire, ce fichier est utilisé pour traduire les chaînes dans la langue source par les traducteurs ou les éditeurs bien que les développeurs en soient propriétaires (souvent en utilisant des langues arbitraires comme en_devel). Après cette étape, les chaînes sont disponibles pour être traduites dans les langues cibles, en partant maintenant d’une langue source remise en forme rangée dans le Fichier de langue de base mono-langue.

digraph translations { graph [fontname = "sans-serif", fontsize=10]; node [fontname = "sans-serif", fontsize=10, margin=0.1, height=0, style=filled, fillcolor=white, shape=note]; edge [fontname = "sans-serif", fontsize=10]; subgraph cluster_dev { style=filled; color=lightgrey; label = "Development process"; "Developers" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Developers" -> "Intermediate file"; } subgraph cluster_l10n { style=filled; color=lightgrey; label = "Localization process"; "Translators" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Editors" [shape=box, fillcolor="#144d3f", fontcolor=white]; "Editors" -> "Monolingual base language file"; "Translators" -> "Translation language file"; } "Intermediate file" -> "Monolingual base language file" [constraint=false]; "Monolingual base language file" -> "Translation language file" [constraint=false]; }

Consolidation de chaîne en utilisant la langue secondaire

Lorsque Fichier de langue intermédiaire ne peut pas être utilisé pour consolider les chaînes, vous pouvez choisir l’une des traductions pour qu’elle serve de langue secondaire. La langue peut être configurée dans un projet (Langue secondaire) ou dans un composant (Langue secondaire). Elle est ensuite affichée aux traducteurs lors de la traduction (voir Langues secondaires) et peut être facultativement utilisée comme source pour la traduction automatique (voir Source strings for the machine translation).

Cette configuration peut être utile pour les chaînes source comprenant différentes langues quand elles sont consolidées dans une traduction unique servant ensuite de ligne de base pour d’autres travaux.

Relecture des chaînes sources

Si Activer la révision des chaînes sources est activé, le processus de relecture peut être appliqué aux chaînes de la source et les utilisateurs peuvent rapporter les problèmes liés à ces chaînes. Le processus dépend du format en cours utilisé, bilingue ou monolingue.

Pour les formats à une seule langue, la relecture des chaînes de caractères des sources suit le même principe que Relecteurs dédiés — dès qu’un problème sur une chaîne source est rapporté, la chaîne source est marquée A corriger.

Les formats bilingues ne permettent pas de modifier directement les chaînes de caractères dans les sources (elles sont typiquement extraites directement du code source). Dans ce cas une marque Source à relire est attachée à chaque chaîne fournie par les traducteurs. Il vous faut alors relire ces chaînes et soit les corriger dans le code source, soit supprimer la marque.