Help:Extension:Translate/Elements insérables
Traducteurs (page d'aide principale )
- Comment traduire
- Les bonnes pratiques
- Statistiques et rapports
- Assurance qualité
- États des groupes de messages
- Traductions hors-ligne
- Glossaire
Administrateurs de traduction
- Comment préparer une page à traduire
- Administration de la traduction des pages
- Traduction des éléments non structurés
- Gestion de groupe
- Renommer une page traductible
- Importer des traductions via CSV
- Travailler avec les paquets de messages
Administrateurs système et développeurs
Les chaînes traductibles contiennent souvent des marques qui doivent être laissées telles quelles dans la traduction.
Entrer ces marques peut être lent et difficile car il n'est pas rare d'y trouver des caractères spéciaux.
Un objet Insertable
(en français : insérable) est un élément de marquage présenté au traducteur comme un bouton ou un autre élément d'interface.
En cliquant sur le bouton, on insère l'élément de marquage dans le texte traduit à la position courante du curseur.
Chaque groupe de messages peut avoir un InsertablesSuggester
.
Cette classe permet de générer une liste d’Insertable
.
Chaque élément insérable
a trois parties :
- ce qu'il faut afficher à l'utilisateur
- ce qui est inséré avant la position du curseur dans la traduction ou ce qui remplace le contenu sélectionné.
- ce qui est inséré après la position du curseur dans la traduction
L'extension Translate est livrée comportant MediaWikiInsertablesSuggester
.
Des logiciels proposant des suggestions pour d'autres types de contenu peuvent être trouvés sur le dépôt Git de translatewiki.net.
Interface utilisateur
Configuration
Voici un exemple de modification de la configuration dans un fichier YAML,
INSERTABLES:
# pre-bundled insertable
- class: RegexInsertablesSuggester
params: "/\$[a-zA-Z0-9]+/"
# custom insertable
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Suggester.php
Elements insérables pré-fournis ou embarqués
Voici une liste d'éléments insérables embarqués.
HtmlTagInsertablesSuggester
Ces éléments vont afficher une suggestion pour chaque balise HTML trouvée dans la chaîne source.
Par exemple :
- Message : This <a href="abc">link</a>link takes you to the home page.
- Suggestion affichée :
<a href="abc"></a>
MediaWikiInsertablesSuggester
Cet élément insérable va afficher différentes suggestions à propos des messages wikicode de MediaWiki. Qui comprend la suggestion pour,
- Les paramètres tels que
$1user
qui sont présents dans les messages d'aide de l'API. PLURALS
,GENDER
,GRAMMAR
- Les suggestions pour les balises HTML.
NumericalParameterInsertablesSuggester
Cet élément insérable va afficher des suggestions pour les paramètres numériques tels que
, $1
, $2
, $33
$2
, ou $33
RegexInsertablesSuggester
Cet élément insérable est générique dans le sens où il peut être utilisé pour afficher des suggestions basées sur une expression régulière personnalisée.
Exemple :
# simple example
# matches and suggests: $abc
- class: RegexInsertablesSuggester
params: "/\$[a-zA-Z0-9]+/"
# complex example using named captures.
# matches: [abc](ac)
# suggester displayed: [](ac)
- class: RegexInsertablesSuggester
params:
regex: /(?<pre>\[)[^]]+(?<post>\]\([^)]+\))/
display: $pre $post
pre: $pre
post: $post
Parameter description,
- regex – The regex to use for identifying insertables. Mandatory.
- display – What to show to the user. Not mandatory, defaults to matched value.
- pre – What to insert before selection, or replace selection if
post
remains empty Not mandatory, defaults to matched value. - post – What to insert after selection. Not mandatory, defaults to matched value.
TranslatablePageInsertablesSuggester
Utilisé initialement sur les pages traductibles pour fournir des variables telles que $abc
au moteur de suggestion.
UrlInsertablesSuggester
This insertable finds URLs (that are normally unchanged in translations) and suggests them for insertion.
Ajouter un élément insérable personnalisé
Dans le cas où les éléments insérables existants ne suffiraient pas à satisfaire les besoins, il vous est possible d'ajouter des éléments insérables personnalisés.
Voici un exemple sur la manière d'ajouter la prise en charge des Insertable concernant des groupes de messages basés sur les fichiers existants : FreeCol. Le fichier YAML a été élagué pour le raccourcir. Les lignes récemment ajoutées sont mises en valeur.
FreeCol.yaml:
---
BASIC:
id: out-freecol
label: FreeCol
description: "A strategy game"
namespace: NS_FREECOL
class: FileBasedMessageGroup
FILES:
class: JavaFFS
sourcePattern: %GROUPROOT%/freecol/data/strings/FreeColMessages_%CODE%.properties
definitionFile: %GROUPROOT%/freecol/data/strings/FreeColMessages.properties
targetPattern: freecol/data/strings/FreeColMessages_%CODE%.properties
INSERTABLES:
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Suggester.php
Suggester.php:
class FreecolInsertablesSuggester {
public function getInsertables( $text ) {
$insertables = array();
$matches = array();
// Trouver les variables de format %name%
// C'est la même expression régulière que dans Checker.php
preg_match_all( '/%[a-zA-Z_]+%/', $text, $matches, PREG_SET_ORDER );
$new = array_map( function( $match ) {
// $match[0] est une correspondance exacte, et il n'y a pas de sous-correspondance ici
// Parce que nous voulons que le curseur soit à la fin de l'insertion, nous mettons l'ensemble dans le champ "pre" .
return new Insertable( $match[0], $match[0] );
}, $matches );
return $insertables;
}
}
Les paramètres de Insertable sont :
class Insertable {
/**
* @param string $display Ce qui est affiché à l'utilisateur
* @param string $pre Ce qu'il faut insérer avant la sélection, ou qui remplace la sélection si $post reste vide
* @param string $post Ce qu'il faut insérer après la sélection
*/
public function __construct( $display, $pre = '', $post = '' ) {
$this->display = $display;
$this->pre = $pre;
$this->post = $post;
}
[...]
}