Content translation/Specification/fr

Prototype
Le prototype qui sert aussi de modèle de référence est disponible sur : http://pauginer.github.io/prototype-translate/content-translation.html

Architecture
Voir le document d'architecture

Widgets
L'interface utilisateur de CX est formé de 4 composants widgets - l'entête, le widget de l'article source, le widget de la traduction, le widget des outils de traduction.



Communication entre widgets
Nous séparons les responsabilités et nous suivons une approche dirigée par les événements. Représentez-vous la comme un gestionnaire unique global d'événements. Les widgets s'abonnent aux événements, ils publient des événements (fire), ils peuvent s'attacher et se détacher des enregistrements d'événements.

Supposez que vous cliquez sur un mot de l'article source. Nous ne faisons aucun appel de méthode ni à d'autres widgets. Nous affirmerons que le widget de l'article source ne connaît pas les autres widgets. En cliquant sur un mot, le widget va émettre (publier) un événement disant mw.ex.source.word.select. Maintenant, plusieurs consommateurs peuvent souscrire à cet événement. L'un d'eux peut être la colonne de traduction. Les autres seront des outils internes au widget; nous aurons beaucoup d'aides à la traduction.

Pour l'abonnement aux événements et la publication des modèles, nous utilisons mw.hook, qui est un conteneur au-dessus de $.Callbacks.



Mise en forme de l'interface utilisateur
LESS est utilisé pour l'extension.



Conventions de nommage

 * Chaque nom de classe CSS doit avoir un préfixe cx..
 * Tous les modules RL ont le préfixe ext.cx
 * L'espace de noms des objets jquery est mw.cx
 * Les classes CSS suivent les conventions de nommage BEM
 * Suit les conventions de codage et de nommage de MediaWiki
 * Depuis 2016, la transition vers OOJS est en cours

Flux du travail

 * Point de départ : à partir d'un point d'entrée (lien interlangue grisé), via un lien direct, ou via le tableau des tâches
 * Chargement de l'article source et de la traduction à côté.
 * Chargement initial : la colonne source doit afficher un indicateur de chargement. La colonne de traduction ne doit avoir aucun contenu. Le marqueur d'emplacement + Ajouter une traduction doit apparaître dans la première section, ou dans les autres sections lorsqu'on les survole avec la souris.
 * Lors de la traduction, chaque section est automatiquement enregistrée dans une base de données centrale parallèle du corpus.
 * Chargement d'une traduction sauvegardée : les colonnes source et cible doivent afficher des indicateurs de chargement. Le texte traduit doit être chargé avec le même contenu qu'il avait la dernière fois qu'il a été sauvegardé.
 * En cliquant sur une section vide, vous la remplissez d'une prétraduction
 * Si l'utilisateur a choisi de ne pas utiliser la traduction automatique, elle doit rester vide.
 * Si l'utilisateur a choisi texte source, le texte de la source doit être affiché en adaptant les liens, les références et les modèles.
 * Si l'utilisateur a choisi un moteur de traduction automatique, le texte traduit ainsi généré doit être affiché avec l'adaptation des liens, des références et des modèles.
 * Liens
 * Les liens sont adaptés automatiquement lorsque la traduction automatique est utilisée.
 * Si du texte est sélectionné dans la colonne cible et qu'il peut être lié à un article existant dans le wiki cible, la cartographie du lien doit être affichée pour permettre le rattachement.
 * Il doit être possible d'ajouter un lien vers un article cible qui n'existe pas encore (lien en rouge).
 * En cliquant sur un lien de la colonne source vous devez afficher une cartographie de lien avec l'article source (titre et image s'ils existent). S'il existe des articles qui correspondent directement à la cible, ils doivent être aussi affichés. Sinon l'utilisateur doit avoir la possibilité de lier un article différent.
 * Références
 * En cliquant sur une référence, vous devez faire apparaitre la cartographie d'adaptation de référence
 * Expressions mathématiques
 * les formules sont recopiées telles quelles.
 * Modèles
 * Un modèle peut être ignoré, copié en tant que source (même s'il ne fonctionne pas dans la langue cible), ou adapté dans les détails si un modèle équivalent existe.
 * L'adaptation des modèles équivalents est décrite dans Modèles
 * Catégories
 * Les catégories qui correspondent directement sont adaptées automatiquement.
 * Publication
 * L'article est publié sous la forme d'une page wiki à part entière.
 * Les liens interlangue sont ajoutés en utilisant les liens de site de Wikidata.



Structure des URLs
La traduction de contenu fonctionne principalement sur la page spéciale Special:ContentTranslation. Les paramètres de l'URL sont :


 * page &mdash; titre de la source
 * targettitle &mdash; titre de la cible
 * from &mdash; langue de la source
 * to &mdash; langue de la cible
 * campaign &mdash; nom de la campagne, principalement pour les journaux

Tests
(à redéfinir en janvier 2017).



Rapports de fautes
Veuillez rapporter les bogues dans [//phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-ContentTranslation Phabricator] dans le projet MediaWiki-extensions-ContentTranslation. Ne vous inquiétez pas si vous ne connaissez pas la version à fournir, le degré de sévérité, le matériel ou le système d'exploitation.