Interface de traduction pour objets

Ce plugin propose une interface pour rendre la gestion des traductions de vos objets traduisibles plus facile. Il reprend en grande partie les solutions apportées par Traductions d’articles autrement et Traductions de rubriques autrement en les rendant disponibles pour tous les objets traduisibles.

Introduction

Principe

Ce plugin est censé rendre la gestion des traductions de vos objets éditoriales traduisibles [1] plus faciles. Il intègre et applique à tout objet traduisible les solutions apportées par Traductions d’articles autrement et Traductions de rubriques autrement. Ces derniers seront rendus obsolètes par l’installation du présent plugin et pourront donc être désinstallés sans problème.

Secteur par langue

On parle de secteur par langue si vos rubriques à la racine définissent le secteur d’une langue. Tout contenu contenu à l’intérieur de ce secteur (article ou autre objet qui dépend de rubrique) héritera la langue de la rubrique parente. Afin de profiter des fonctionnalités “Secteur par langue” il vous faut installer le plugin Secteur par Langue

Notez que vous pouvez également installer le plugin Site multilingue facile qui vous permet de disposer d’un site multilingue avec secteur par langue en quelques clics. Tous les plugins nécessaires, dont Secteur par Langue et le présent plugin seront installés automatiquement.

Barre des traductions

Onglets de langues

Pour tout objet éditorial traduisible ce plugin insère des onglets de langues en haut de l’objet, permettent de naviguer plus facilement entre les différentes traductions de cet objet, d’y ajouter une traductions ou d’en enlever une.

Pour chaque langue du site un onglet est créé. En blanc les langues dans lesquelles l’objet est traduit et en gris les traductions manquantes. L’astérisque désigne l’objet d’origine, la référence de la traduction.

Hiérarchie

Quand vous créez une nouvelle traduction et que votre objet dépend d’une rubrique, sa traduction sera automatiquement attachée à la rubrique de l’objet d’origine.

Si vous trouvez dans un système de secteur par langue, la nouvelle traduction d’un objet sera enregistrée sous la traduction correspondante de la rubrique parente. Si la rubrique parente n’est pas encore traduite dans la langue de destination, le plugin vous forcera à traduire toute la structure parente dans la langue de destination avant de pouvoir traduire l’objet en question.

Options de langues

Les options de langues peuvent être modifiées en cliquant sur l’icône à droite des onglets de langue.

S’ouvre alors le formulaire natif de gestion de traductions [2]

La langue

Par défaut, lors de la création d’un nouvel objet, celui-ci, comme nativement dans SPIP, est créé dans la langue de l’espace privé. La langue peut alors être changée en cliquant sur le lien “changer”.

Dans un système de secteur par langue, si votre objet se trouve dans une rubrique, l’objet créé prendra la langue de cette rubrique. Dans ce contexte il n’est pas possible de changer la langue car elle dépend de la rubrique parente.

Traduction de référence

Il s’agit de l’objet original. Vous pouvez le changer en appuyant sur le bouton dans la colonne Traduction.

Affichage compact

Par défaut, le plugin change l’affichage des listes des objets traduisibles [3], en regroupant toutes les traductions.

Sont seulement listés les objets non traduits et les objets d’origine, triés par l’identifiant de l’objet, puis sur la même ligne on peut trouver les éventuelles traductions de l’objet.

En cliquant sur la flèche dans la colonne traductions, il est possible de voir toutes les traductions de manière plus détaillée.

Personnalisation

A défaut d’un squelette de liste compacte pour un objet déterminé, le plugin crée une liste générique.

Vous pouvez vous inspirer de

prive/objets/liste/compacte/articles.html

pour créer la liste compacte pour votre objet.

il suffit de respecter le chemin de base

prive/objets/liste/compacte/NomObjet.html

Configuration

Dans le panneau de configuration du plugin, pour chaque objet traduisible il est possible de:

  • désactiver les onglets de langue;
  • désactiver l’affichage compact.

Footnotes

[1Un objet est considéré traduisible s’il contient les champs lang et id_trad.

[2Ce formulaire pourrait également être activé via la page de configuration de “Multilinguisme” et s’affichera alors une deuxième fois un peu plus bas sur la page. Ce qui n’est évidemment pas nécessaire.

[3Ce comportement peut-être désactivé dans Configuration.

updated on 6 April 2020

Discussion

6 discussions

  • 2

    Bonjour,
    Ce plugin semble provoquer un bug —> on ne peut plus ranger les articles avec le plugin Rang lorsque le plugin “Interface de traduction pour objets” est activé (sous SPIP 3.2.7, PHP 7.1 et tous les plugins mis à jour).

    Reply to this message

  • 4

    Bonjour,

    Mille mercis pour ces plugins d’aide à la traduction que j’utilise à haute dose!

    Je viens de faire une mise à jour de traduire_article_autrement de la version 1.4.6 à la version 2.0.0 et si je comprends bien c’est maintenant ce plugin qui prend le relais. J’ai donc maintenant installé

    interface_traduction_objets en version 1.1.8

    J’ai constaté que les auteurs n’avaient plus accès aux boutons de langues pour leurs articles. Jusqu’à l’update les 3 langues configurées de mon sites (français/turc/anglais) étaient proposées. Depuis l’update seul la langue de l’article est proposée à l’auteur. L’administrateur quant à lui continue de voir les 3 langues. Je joints des copies d’écrans pour être plus claire.

    Quelqu’un constate-t-il le même comportement? Est-ce le fonctionnement souhaité?

    • Bonjour,
      J’ai pris le temps de regarder un peu dans le code et effectivement dans le fichier barre_traductions_objet.html l’affichage des boutons de traduction est conditionné à

      #AUTORISER{creerrubriquedans,rubrique,#GET{id_parent_trad}

      Du coup un rédacteur ne peut pas proposer de traduction d’article même si la rubrique est traduite.

      #AUTORISER{creerrarticledans,rubrique,#GET{id_parent_trad}
      serait plus indiqué qu’en pensez-vous?

    • Salut Alexis,

      c’est effectivement un peu restrictif. Je vais regarder ça demain.

      En attendant tu peux surcharger le fichier.

    • Ça y est, la version 1.2.0 du plugin gère mieux les autorisations.

    • Ça m’a l’air de fonctionner.
      merci!

    Reply to this message

  • 11

    Bonjour, merci pour ton plugin, je bosse sur un site pour un projet open source de wargame, et le site est traduit par de nombreuses personnes ne connaissant pas SPIP, dans pleins de langues différentes, du coup ton plugin est juste essentiel.

    Cependant je m’apperçoit aujourdh’ui que le plugin engendre une erreur sur mon site.
    (ce qui est étrange c’est que c’est apparu du jour au lendemain, sans que j’arrive à identifier à quel moment ou à cause de quel actions (mise à jour , autre plugin ?) ce bug est apparu.. vraiment étrange)

    Le plugin empêche de créer des sous-rubriques.

    On peux toujours créer des rubrique à la racine, on peux même les déplacer n’importe ou. Mais la création d’une sous-rubrique n’importe ou engendre le message d’erreur:
    “A technical error prevented the registration.”

    Dans les log mysql je trouve :

    2019-12-17 14:13:30 83.206.96.119 (pid 3997) :Pri:ERREUR: Erreur 1054 de mysql: Unknown column ’id_trad’ in ’field list’in /mnt/data/spip/ecrire/action/editer_rubrique.php L100 [sql_insertq(),rubrique_inserer(),action_editer_rubrique_dist(),formulaires_editer_objet_traiter(),formulaires_editer_rubrique_traiter_dist(),traiter_formulaires_dynamiques()]INSERT INTO spip_rubriques (titre,id_parent,statut,lang,langue_choisie,id_trad) VALUES (’New section’,61,’prepa’,’en’,’oui’,NULL)

    Si je désactive le plugin tout rentre dans l’ordre.

    • Je pense qu’il manque une dépendance au plugin tradrub, qu’il y avait dans “traduction_rubriques_autrement”.

    • Pardon, en fait je viens de mieux comprendre l’explication.

      1. Si tu avais besoin des traductions de rubriques, il faut le plugin «tradrub». C’est déjà un premier problème : il n’est indiqué ni en <utilise> de interface_traduction_objets, ni en <necessite> sur traduire_rubriques_autrement (le nouveau)
      2. Mais ici, tu n’utilises pas les traductions de rubrique, pourtant le plugin ’interface_traduction_objets’ insère un champ ’id_trad’ à la création d’une rubrique, qui n’a pas lieu d’être car ce champ n’existe pas dans ta base. C’est donc un second problème.
    • Salut Pipol et Marcimat

      @Marcimat Ce plugin n’installe aucun champ. Spip a commencé à inclure l’id_trad dans la table id_rubrique à partir d’une version 3.* (je en sais pas exactement laquelle). Sinon, on installant Secteur par Langue tradrub sera installé qui lui créera de l’id_trad.

      @pipol, tu as installé quel plugins? Tu utilise la traductions des rubriques (le plugin secteur_langue)?

      Si tu utilises les traductions des rubriques regarde si ce qui est décrit dans ce poste peut d’aider

      Sinon c’est peut-être https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/interface_traduction_objets/trunk/interface_traduction_objets_pipelines.php#L221 qui provoque ton erreur. Je ne peux pas tester maintenant. Mais je regarderai

    • A priori j’utilise uniquement le plugin “Interface de traduction pour objets”

    • Il me semble que dans le passé j’utilisais traduction d’article autrement. Est ce que j’ai installé une fois traduction de rubrique autrement ? Je ne sais plus, il me semble pas mais peut être. En tout état de cause ce plugin n’est plus dans ma liste des plugin actif ou inactif.

      Je regarde le post en question.

    • Ton site tourne avec quelle version de spip? Il a été crée avec quelle version de spip?

      je viens de faire publier un patch v1.1.6 qui devrait empêcher cet erreur.

      Normalement, à partir de Spip3, le id_trad est nativement compris dans la table id_rubrique.

    • Le site est à jour. Il a été créer en juillet 2018 donc devais déjà être en v3.0

    • Ok,alors visiblement le id_trad n’avait pas été crée.
      Tu peux regarder avec la nouvelle version du plugin si le problème est résolu ?

    • Euuh .. Je ne sais pas comment télécharger ou installer un plugin depuis la zone.. J’ai essayé souvent sans jamais avoir de succès.. c’est certainement tout bête .. mais je vois pas :-)

    • :) - malheureusement le générateur des zip pour le plugins est en panne, donc pour le moment l’actualisation n’est pas disponible via le gestionnaire des plugins. Mais tu peux le prendre depuis le depôt github

    • Version 1.1.7 installé et problème résolu !
      Merci beaucoup pour ta réactivité ;)
      Une bonne journée.

    Reply to this message

  • 3

    bonour,
    j’ai eu ce même problème qui arrivait sur la page de *modification* de l’article exec=*article_edit* lorsque la traduction n’existait pas, disparu sur 1.1.4 mais maintenant on a /ecrire/?new=oui&id_parent=356&lang_dest=fr&lier_trad=187&retour=nav
    c.a.d qu’il manque le exec=article_edit&
    il y a un souci d’environnement objet sur cette page : objet=> article_edit
    toujours sur cette page l’édition des options de langue pouiche aussi : Erreur SQL 1146
    Table ’synthailand.article_edits’ doesn’t exist
    les liens de traduction sont-ils nécessaire sur exec=article_edit?
    Cela fonctionne très bien sur exec=article...
    merci pour le boulot Rainer

    Reply to this message

  • 1

    Pour info
    Bonjour le lien ci-dessous mène sur !gateway incorrecte!

    “parente. Afin de profiter des fonctionnalités « Secteur par langue » il vous faut installer le plugin Secteur par Langue”

    Reply to this message

  • 1

    Bonjour

    Merci pour ce plugin. Je l’utilise depuis quelques mois, je voulais juste signaler un éventuel bug; parfois quand je fini un article et je sélectionne une nouvelle langue sur la barre de traduction pour rédiger la traduction, je me trouve sur une page d’erreur: Fichier article_edit_edit introuvable

    • Bonjour Amire,

      je n’ai pas cherché à reproduire. Par contre j’ai actualisé le plugin en rendant la génération de l’url d’édition de l’objet plus propre, ce qui devrait empêcher ce problème. Peux-tu tester avec la version 1.1.4 ?

      Merci
      Rainer

    Reply to this message

Ajouter un commentaire

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom