Modules

Nouveau dans la version 2.19.

Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the ManageAdd-ons menu of each respective translation component.

Indication

You can also configure add-ons using API, DEFAULT_ADDONS, or install_addon.

../_images/addons.png

Built-in add-ons

Traduction automatique

Nouveau dans la version 3.9.

ID du module

weblate.autotranslate.autotranslate

Configuration

mode

Mode de traduction automatique

Available choices:

suggest – Add as suggestion

translate – Add as translation

fuzzy – Add as needing edit

filter_type

Filtre de recherche

Available choices:

all – All strings

nottranslated – Not translated strings

todo – Strings needing action

fuzzy – Strings marked for edit

check:inconsistent – Failed check: Inconsistent

auto_source

Source de traduction automatique

Available choices:

others – Other translation components

mt – Machine translation

component

Composants

Précisez le composant à utiliser comme source, laissez vide pour utiliser tous les composants du projet actuel.

engines

Moteurs de traduction automatisée

threshold

Seuil de score

Triggers

component update, daily

Traduit automatiquement les chaînes en utilisant des services de traduction automatique ou les traductions dans d’autres composants.

Il est déclenché :

  • When new strings appear in a component.

  • Once in a month for every component, this can be configured using BACKGROUND_TASKS.

JavaScript localisation CDN

Nouveau dans la version 4.2.

ID du module

weblate.cdn.cdnjs

Configuration

threshold

Seuil de traduction

Seuil d’inclusion des traductions.

css_selector

Sélecteur CSS

Sélecteur CSS pour détecter les éléments traduisibles.

cookie_name

Nom du cookie de langue

Nom du cookie contenant la langue préférée.

files

Extraire des chaînes de caractères depuis des fichiers HTML

Liste des noms de fichiers dans le dépôt actuel ou des URL distantes à analyser pour les chaînes traduisibles.

Triggers

daily, repository post-commit, repository post-update

Publie les traductions dans le réseau de diffusion de contenu (CDN) pour utilisation dans la localisation JavaScript ou HTML.

Can be used to localize static HTML pages, or to load localization in the JavaScript code.

Generates a unique URL for your component you can include in HTML pages to localize them. See Translating HTML and JavaScript using Weblate CDN for more details.

Supprimer les chaînes constituées d’espaces

Nouveau dans la version 4.4.

ID du module

weblate.cleanup.blank

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository post-commit, repository post-update

Supprime les chaînes sans traduction des fichiers de traduction.

Use this to not have any empty strings in translation files (for example if your localization library displays them as missing instead of falling back to the source string).

Nettoyer les fichiers de traduction

ID du module

weblate.cleanup.generic

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository pre-commit, repository post-update

Mettre à jour tous les fichiers de traduction pour qu’ils correspondent au fichier mono-langue de base. Pour la plupart des formats de fichier, cela signifie supprimer les clés de traduction désuètes.

Ajouter les langues manquantes

ID du module

weblate.consistency.languages

Configuration

Ce module ne possède aucun paramètre.

Triggers

daily, repository post-add

S’assure qu’un ensemble cohérent de langues est utilisé pour tous les composants d’un projet.

Missing languages are checked once every 24 hours, and when new languages are added in Weblate.

Contrairement à d’habitude, ce module s’applique à l’ensemble du projet.

Indication

Traduisez automatiquement les chaînes de caractères nouvellement ajoutées avec Traduction automatique.

Découverte du composant

ID du module

weblate.discovery.discovery

Configuration

match

Expression rationnelle à laquelle faire correspondre les fichiers de traduction

file_format

Format de fichier

name_template

Personnaliser le nom du composant

base_file_template

Définir le nom du fichier de base mono-langue

Laisser vide pour les fichiers de traduction bilingue.

new_base_template

Définit le fichier de base pour de nouvelles traductions

Nom du fichier utilisé pour la création de nouvelles traductions. Pour gettext choisir un fichier .pot.

language_regex

Filtre sur la langue

Expression rationnelle pour filtrer les fichiers de traduction lors de la recherche d’un motif de fichier.

copy_addons

Dupliquer les modules du composant principal vers les éléments nouvellement créés

remove

Supprimer les composants pour les fichiers inexistants

confirm

Je confirme que les correspondances ci-dessus semblent correctes

Triggers

repository post-update

Ajoute ou supprime automatiquement des composants du projet en fonction des fichiers modifiés dans le système de contrôle de version.

Triggered each time the VCS is updated, and otherwise similar to the import_project management command. This way you can track multiple translation components within one VCS.

The matching is done using regular expressions enabling complex configuration, but some knowledge is required to do so. Some examples for common use cases can be found in the add-on help section.

Une fois que vous aurez cliqué sur Enregistrer, un aperçu des composants correspondants sera présenté, à partir duquel vous pourrez vérifier si la configuration correspond réellement à vos besoins :

../_images/addon-discovery.png

Indication

Component discovery add-on uses Weblate internal URLs. It’s a convenient way to share VCS setup between multiple components. Linked components use the local repository of the main component set up by filling weblate://project/main-component into the Dépôt du code source field (in ManageSettingsVersion control system) of each respective component. This saves time with configuration and system resources too.

Voir aussi

Balisage de modèle

Modification en masse

Nouveau dans la version 3.11.

ID du module

weblate.flags.bulk

Configuration

q

Requête

state

État à paramétrer

Available choices:

-1 – Do not change

10 – Needs editing

20 – Translated

30 – Approved

add_flags

Drapeaux de traduction à ajouter

remove_flags

Drapeaux de traduction à supprimer

add_labels

Libellés à ajouter

remove_labels

Libellés à supprimer

Triggers

component update

Modifier en masse les drapeaux, les libellés ou les statuts des chaînes.

Automate labeling by starting out with the search query NOT has:label and add labels till all strings have all required labels. Other automated operations for Weblate metadata can also be done.

Exemples :

Label new strings automatically

Requête de recherche

NOT has:label

Libellés à ajouter

récent

Marquer toutes les entrées du journal des modifications de Fichiers de métadonnées de l’App Store en lecture seule

Requête de recherche

language:en AND key:changelogs/

Drapeaux de traduction à ajouter

read-only

Marquer les traductions inchangées comme « À vérifier »

Nouveau dans la version 3.1.

ID du module

weblate.flags.same_edit

Configuration

Ce module ne possède aucun paramètre.

Triggers

unit post-create

Chaque nouvelle chaîne de traduction importée depuis le système de contrôle des versions et identique à la chaîne source sera marquée comme « À vérifier » dans Weblate. Ce paramètre est particulièrement utile pour les formats de fichier contenant une copie des chaînes sources dans les chaînes à traduire.

Indication

You might also want to tighthen the Traduction inchangée check by adding strict-same flag to Drapeaux de traduction.

Marquer les nouvelles chaînes sources comme « À vérifier »

ID du module

weblate.flags.source_edit

Configuration

Ce module ne possède aucun paramètre.

Triggers

unit post-create

Quand une nouvelle chaîne source est importée du système de contrôle de versions, elle est marquée dans Weblate comme « À vérifier ». Vous pouvez ainsi filtrer et modifier facilement les chaînes sources rédigées par les développeurs.

Marquer les nouvelles traductions comme « À vérifier »

ID du module

weblate.flags.target_edit

Configuration

Ce module ne possède aucun paramètre.

Triggers

unit post-create

Lorsqu’une nouvelle chaîne à traduire est importée dans Weblate depuis le système de contrôle de versions, elle est marquée comme « À vérifier ». Vous pouvez ainsi filtrer et modifier facilement les traductions créées par les développeurs.

Générateur de statistiques

ID du module

weblate.generate.generate

Configuration

filename

Nom du fichier généré

template

Contenu du fichier généré

Triggers

repository pre-commit

Génère un fichier avec des informations détaillées sur les statuts de la traduction.

You can use a Django template in both filename and content, see Balisage de modèle for a detailed markup description.

For example generating a summary file for each translation:

Nom du fichier généré

locale/{{ language_code }}.json

Contenu
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Voir aussi

Balisage de modèle

Génération d’une pseudo-traduction

ID du module

weblate.generate.pseudolocale

Configuration

source

Chaînes sources

target

Traduction cible

prefix

Préfixe de la chaîne

suffix

Suffixe de la chaîne

Triggers

component update, daily

Génère une pseudo-traduction en ajoutant automatiquement un préfixe et un suffixe aux chaînes sources.

Pseudolocales are useful to find strings that are not prepared for localization. This is done by altering all translatable source strings to make it easy to spot unaltered strings when running the application in the pseudolocale language.

Finding strings whose localized counterparts might not fit the layout is also possible.

Indication

Vous pouvez utiliser des langues réelles pour les tests, mais il existe des pseudo-traductions dédiées disponibles dans Weblate — en_XA et ar_XB.

Indication

You can use this add-on to start translation to a new locale of an existing language or similar language. Once you add the translation to the component, follow to the add-on. Example: If you have fr and want to start fr_CA translation, simply set fr as the source, fr_CA as the target, and leave the prefix and suffix blank.

Uninstall the add-on once you have the new translation filled to prevent Weblate from changing the translations made after the copying.

Contributeurs dans le commentaire

ID du module

weblate.gettext.authors

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository pre-commit

Ajoute le nom des contributeurs et les années de contribution dans le commentaire d’en-tête du fichier PO.

The PO file header will look like this:

# Michal Čihař <michal@cihar.com>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

Mettre à jour la variable ALL_LINGUAS dans le fichier « configure »

ID du module

weblate.gettext.configure

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository post-add, daily

Met à jour la variable ALL_LINGUAS dans les fichiers configure, configure.in ou configure.ac, lorsqu’une nouvelle traduction est ajoutée.

Personnaliser la sortie gettext

ID du module

weblate.gettext.customize

Configuration

width

Retour à la ligne des lignes longues

Par défaut, gettext retourne à la ligne à 77 caractères et pour les nouvelles lignes. Avec le paramètre «–no-wrap», le retour à la ligne n’est réalisé que pour les nouvelles lignes.

Available choices:

77 – Wrap lines at 77 characters and at newlines

65535 – Only wrap lines at newlines

-1 – No line wrapping

Triggers

storage post-load

Permet de personnaliser la sortie de gettext, par exemple le retour à la ligne automatique.

Il offre les options suivantes :

  • Retour à la ligne à 77 caractères et pour les nouvelles lignes

  • Retour à la ligne automatique uniquement pour les nouvelles lignes

  • Aucun retour à la ligne automatique

Note

By default gettext wraps lines at 77 characters and at newlines. With the --no-wrap parameter, wrapping is only done at newlines.

Mettre à jour le fichier LINGUAS

ID du module

weblate.gettext.linguas

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository post-add, daily

Met à jour le fichier LINGUAS lors de l’ajout d’une nouvelle traduction.

Générer des fichiers MO

ID du module

weblate.gettext.mo

Configuration

path

Chemin du fichier MO généré

Si non précisé, l’emplacement utilisé sera identique à celui du fichier PO.

Triggers

repository pre-commit

Génère automatiquement un fichier MO pour chaque fichier PO modifié.

L’emplacement du fichier MO généré peut être personnalisé et le champ pour cela utilise Balisage de modèle.

Mettre à jour les fichiers PO afin qu’ils correspondent au POT (msgmerge)

ID du module

weblate.gettext.msgmerge

Configuration

previous

Conserver les msgids précédents des chaînes traduites

no_location

Supprimer l’emplacement des chaînes traduites

fuzzy

Utiliser les correspondances approximatives

Triggers

repository post-update

Met à jour tous les fichiers PO (tels que configuré par Masque de fichier) pour correspondre au fichier POT (tel que configuré par Modèle pour les nouvelles traductions) en utilisant msgmerge.

Triggered whenever new changes are pulled from the upstream repository. Most msgmerge command-line options can be set up through the add-on configuration.

Écrasement des archivages Git

ID du module

weblate.git.squash

Configuration

squash

Écrasement des archivages

Available choices:

all – All commits into one

language – Per language

file – Per file

author – Per author

append_trailers

Ajout de champs d’en-têtes aux messages d’écrasement des archivages

Les lignes de fin sont des lignes comparables aux lignes d’en-tête RFC 822 pour les courriels. Ces lignes sont ajoutées en fin de la partie libre du message d’archivage. Exemple : « Co-authored-by : … ».

commit_message

Message d’archivage

Ce message d’archivage sera utilisé à la place des messages d’archivage combinés des archivages écrasés.

Triggers

repository post-commit

Écraser les archivages Git avant de pousser les modifications.

Git commits can be squashed prior to pushing changes in one of the following modes:

  • Tous les archivages en un seul

  • Par langue

  • Par fichier

  • Par auteur

Les messages d’archivage originaux sont préservés mais perdront la paternité de l’archivage, sauf si vous sélectionnez Par auteur ou si vous personnalisez le message d’archivage pour l’inclure.

The original commit messages can optionally be overridden with a custom commit message. See Balisage de modèle for the message options.

Les Trailers (lignes d’archivage comme Co-authored-by: ) peuvent éventuellement être supprimés des messages d’archivage originaux et ajoutés à la fin du message d’archivage écrasé. Ceci génère également un crédit Co-authored-by: pour chaque traducteur.

Personnaliser la sortie JSON

ID du module

weblate.json.customize

Configuration

sort_keys

Trier les clés JSON

indent

Indentation JSON

style

Style d’indentation JSON

Available choices:

spaces – Spaces

tabs – Tabs

Triggers

storage post-load

Permet de paramétrer le comportement de la sortie de JSON, par exemple l’indentation ou le tri.

Formate le fichier de propriétés Java

ID du module

weblate.properties.sort

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository pre-commit

Trie le fichier de propriétés Java.

Purge automatique des commentaires

Nouveau dans la version 3.7.

ID du module

weblate.removal.comments

Configuration

age

Nombre de jours à conserver

Triggers

daily

Définir le délai au bout duquel les commentaires sont supprimés.

This can be useful to remove old comments which might have become outdated. Use with care as comments getting old does not mean they have lost their importance.

Purge automatique des suggestions

Nouveau dans la version 3.7.

ID du module

weblate.removal.suggestions

Configuration

age

Nombre de jours à conserver

votes

Seuil de votes

Seuil pour la suppression d’une suggestion. Ce champ est sans effet lorsque le vote est désactivé.

Triggers

daily

Définir le délai au bout duquel les suggestions sont supprimées.

Can be very useful in connection with suggestion voting (see Peer review) to remove suggestions which don’t receive enough positive votes in a given timeframe.

Mettre à jour les fichiers RESX

Nouveau dans la version 3.9.

ID du module

weblate.resx.update

Configuration

Ce module ne possède aucun paramètre.

Triggers

repository post-update

Mettre à jour tous les fichiers de traduction pour qu’ils correspondent au fichier de base amont monolingue. Les chaînes inutilisées sont supprimées et de nouvelles chaînes sont ajoutées en copiant la chaîne source.

Indication

Utilisez Nettoyer les fichiers de traduction si vous voulez seulement supprimer les clés de traduction périmées.

Personnaliser la sortie YAML

Nouveau dans la version 3.10.2.

ID du module

weblate.yaml.customize

Configuration

indent

Indentation YAML

width

Retour à la ligne des lignes longues

Available choices:

80 – Wrap lines at 80 chars

100 – Wrap lines at 100 chars

120 – Wrap lines at 120 chars

180 – Wrap lines at 180 chars

65535 – No line wrapping

line_break

Retour à la ligne automatique

Available choices:

dos – DOS (\r\n)

unix – UNIX (\n)

mac – MAC (\r)

Triggers

storage post-load

Permet de paramétrer le comportement de la sortie YAML, par exemple la longueur des lignes ou le saut de ligne.

Customizing list of add-ons

The list of add-ons is configured by WEBLATE_ADDONS. To add another add-on, simply include the absolute class name in this setting.

Writing add-on

You can write your own add-ons too, create a subclass of weblate.addons.base.BaseAddon to define the addon metadata, and then implement a callback to do the processing.

Executing scripts from add-on

Add-ons can also be used to execute external scripts. This used to be integrated in Weblate, but now you have to write some code to wrap your script with an add-on.

#
# Copyright © 2012 - 2021 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
"""Example pre commit script."""


from django.utils.translation import gettext_lazy as _

from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events = (EVENT_PRE_COMMIT,)
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long descrption
    verbose = _("Execute script before commit")
    description = _("This addon executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"

Pour les instructions d’installation, consultez Custom quality checks, addons and auto-fixes.

Le script est exécuté avec le répertoire courant placé à la racine du dépôt de système de contrôle des versions pour un composant donné.

En outre, les variables d’environnement suivantes sont disponibles :

WL_VCS

Système de contrôle de version utilisé.

WL_REPO

URL du dépôt en amont.

WL_PATH

Chemin absolu vers le dépôt du système de contrôle des versions.

WL_BRANCH

Nouveau dans la version 2.11.

Branche du dépôt configurée dans le composant actuel.

WL_FILEMASK

Masque de fichier pour le composant actuel.

WL_TEMPLATE

Nom de fichier du modèle pour les traductions monolingues (peut être vide).

WL_NEW_BASE

Nouveau dans la version 2.14.

Nom de fichier du fichier utilisé pour créer de nouvelles traductions (peut être vide).

WL_FILE_FORMAT

File format used in current component.

WL_LANGUAGE

Language of currently processed translation (not available for component-level hooks).

WL_PREVIOUS_HEAD

Previous HEAD after update (only available after running the post-update hook).

WL_COMPONENT_SLUG

Nouveau dans la version 3.9.

Identifiant du composant utilisé pour construire l’URL.

WL_PROJECT_SLUG

Nouveau dans la version 3.9.

Identifiant du projet utilisé pour construire l’URL.

WL_COMPONENT_NAME

Nouveau dans la version 3.9.

Nom du composant.

WL_PROJECT_NAME

Nouveau dans la version 3.9.

Nom du projet.

WL_COMPONENT_URL

Nouveau dans la version 3.9.

URL du composant.

WL_ENGAGE_URL

Nouveau dans la version 3.9.

URL d’engagement du projet.

Post-update repository processing

Can be used to update translation files when the VCS upstream source changes. To achieve this, please remember Weblate only sees files committed to the VCS, so you need to commit changes as a part of the script.

Par exemple, avec Gulp, vous pouvez le faire en utilisant le code suivant :

#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json

Pre-commit processing of translations

Use the commit script to automatically change a translation before it is committed to the repository.

Il est transmis en tant que paramètre unique composé du nom de fichier d’une traduction en cours.