[Plugin] kzTranslate : Aide à la traduction des plugins

bazooka07bazooka07 Membre
20 mars modifié dans Plugins

Ce plugin aide à la traduction des messages pour n'importe quel plugin.

On peut choisir un plugin installé pour afficher les traductions de chaque message dans toutes les langues supportées par PluXml dans un tableau.

Si besoin, on peut utiliser Google pour traduire automatiquement dans les langues que l'on ne connait pas. Mais c'est un robot qui ne peut égaler la traduction faite par un humain

télécharger ce magnifique plugin

  • 2020-03-20 : version 0.9.2: Occitan + DeepL
  • 2020-03-18 : version 0.9.1: les dossiers des plugins peuvent être des liens symboliques
  • 2020-03-15 : Version 0.9.0: 1ère publication


Réponses

  • Copie d'écran :


  • +1000 Mercis pour l'outil

    Ça va beaucoup simplifier la vie des traducteurs de greffons

    Après quelques retouche pour qu'il tourne a partir d'un dossier symbolique et qu'il trouve les langues des autres plugins (qui le sont souvent, eux aussi)

    Retouché un peu l'admin (ligne 80) et l'appel a la fonction get all idioms (+1 param : $plgroot) ainsi que la classe afin que les chemins soit ceux où il est symlinké et non pas le dossier où il est stocké en réalité.


    Est aussi corrigé ds admn.php (une fin de php oublié "?>" me paraissais curieuse a la ligne 210) Mais qui semble gêner en rien le navigateur😯

          <table class="<?= $plugin ?>-table ?>">

    Remplacé par :

          <table class="<?= $plugin ?>-table">


    Ce sont (a peu près) les deux seules choses modifiés


    Ps: Pour ceux qui l'utilise(ron) de manière classique (on dézippe ds le dossier "plugins" le plugin) la version symlink ne changera rien, c'est les mêmes au niveaux des outils.

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

  • @Sudwebdesign ,

    Merci pour tes remarques.

    Ok pour l'erreur de typo pour "<table ...."

    Effectivement, je n'ai pas l'habitude d'utiliser les liens symboliques vers les plugins pour les différentes versions de PluXml sur le même serveur. Pourtant, j'ai l'habitude d'utiliser Linux depuis quelques années.

    Mais je trouve que tu es parti sur une solution compliquée. Il suffit de faire comme ceci pour admin.php :

    // $folder = dirname(__DIR__) . '/' . $_SESSION[$plugin]['selection'] . '/lang';
    $folder = PLX_PLUGINS . $_SESSION[$plugin]['selection'] . '/lang';
    

    et pour kzTranslate.php :

             // $filename = substr(__DIR__, 0, -strlen(__CLASS__)) . "$plugName/lang/$lang.php";
             $filename = PLX_PLUGINS . "$plugName/lang/$lang.php";
    

    J'ai pensé utiliser la fonction realpath() de PHP mais il semble que cela soit inutile.

    J'ai installé kzTranslation sur un PluXml-5.7 et j'ai créé des liens symboliques pour l'utiliser avec PluXml-5.8 :

    jpierre@smartteck:/home/www/test/PluXml-5.8/plugins$ ll
    total 92K
    drwxrwxr-x 12 www-data jpierre 4,0K mars 17 19:22 ./
    drwxrwxr-x 15 www-data jpierre 4,0K mars 11 12:48 ../
    -rw-r--r-- 1 www-data www-data 34K mars 17 19:22 admin.css
    -rw-rw-r-- 1 www-data jpierre   16 nov. 22 17:28 .htaccess
    -rw-rw-r-- 1 www-data jpierre    0 nov. 22 17:28 index.html
    drwxr-xr-x 5 www-data www-data 4,0K mars  5 09:09 kzChamPlus/
    lrwxrwxrwx 1 jpierre jpierre   37 mars 17 19:22 kzCodemirror -> ../../PluXml-5.7/plugins/kzCodemirror/
    drwxrwxr-x 4 jpierre www-data 4,0K janv. 19 00:29 kzContact/
    drwxr-xr-x 6 www-data www-data 4,0K mars 13 22:52 kzDownload/
    drwxr-xr-x 5 www-data www-data 4,0K mars  3 09:00 kzGallery/
    drwxr-xr-x 5 www-data www-data 4,0K nov. 22 22:47 kzHighlightJS/
    drwxr-xr-x 4 www-data www-data 4,0K nov. 22 22:31 kzMailCommentAlert/
    lrwxrwxrwx 1 jpierre jpierre   36 mars 17 19:22 kzTranslate -> ../../PluXml-5.7/plugins/kzTranslate/
    drwxrwxr-x 4 jpierre jpierre 4,0K mars 16 17:46 kzUploader/
    drwxr-xr-x 5 www-data www-data 4,0K nov. 22 22:31 moveMyDatas/
    -rw-r--r-- 1 www-data www-data 783 mars 17 19:22 site.css
    drwxr-xr-x 7 www-data www-data 4,0K mars 14 09:45 timixml/
    drwxr-xr-x 6 www-data www-data 4,0K févr. 24 18:39 tinyMCE/
    

    Par contre, la ligne suivante dans core/admin/prepend.php provoque des messages d'erreurs :

    # Echappement des caractères
    if($_SERVER['REQUEST_METHOD'] == 'POST') $_POST = plxUtils::unSlash($_POST);
    

    car plxUtils::unSlash() ne sait traiter que des $_POST avec un tableau à 2 dimensions alors que j'utilise un $_POST a 3 dimensions. Il faudrait utiliser une fonction récursive. Le pompon est que ce filtrage ne sert à rien. Il y a un filtrage plus performant avec plusieurs appels à la fonction input_filter() de PHP dans admin.php. Cette erreur n'empêche pas le plugin de fonctionner correctement.

    Dans le plugin, il y a le script

  • Dans le plugin, il y a le script check-core.php qui permet de vérifier que PluXml a toutes les traductions pour les langues supportées. A lancer en ligne de commande.

  • bazooka07bazooka07 Membre
    18 mars modifié

    Je ne comprenais pas pourquoi je n'avais pas de message d'erreur avec PluXml 5.7.

    La réponse est simple. La fonction pxUtils::unslash() fait appel à la fonction get_magic_quotes_gpc() de PHP.

    Depuis la version 5.4 de PHP, cette fonction renvoie toujours "false". Et cela depuis le 01/03/2012.

    Donc depuis huit ans, la ligne "if($_SERVER['REQUEST_METHOD'] == 'POST') $_POST = plxUtils::unSlash($_POST);" dans le fichier core/admin/prepend.php sert uniquement à faire joli.

    Je vous encourage vivement à utiliser la fonction filter_input() pour filtrer vos "POST" et "GET".

    Il y a également une faille dans les fonctions de la class plxToken. Voir le push-request #385 sur Github.

  • Version 0.9.1 pour corriger le problème des liens symboliques avec les plugins.

  • RubénRubén Membre

    J'essaie de te faire la localisation en occitan au plus vite !

  • RubénRubén Membre

    Et voilà :

    <code>

    <?php

    $LANG = array(

       '3RD_LANG'   => '3ena lenga',

       'ALL_LANGS'   => 'Totas las lengas',

       'CTRL_CLICK'   => 'Ctrl-Click amb la mirga sul tablèu per traduire',

       'L_DE'   => 'Alemand',

       'L_EN'   => 'Anglés',

       'L_ES'   => 'Espanhòl',

       'L_FR'   => 'Francés',

       'L_IT'   => 'Italian',

       'L_NL'   => 'Neerlandés',

       'L_OC'   => 'Occitan',

       'L_PL'   => 'Polonés',

       'L_PT'   => 'Portugués',

       'L_RO'   => 'Romanés',

       'L_RU'   => 'Rus',

       'PLUGIN'   => 'Plugin',

       'SAVE'   => 'Salvagardar la lenga seleccionada',

       'TRANSLATE'   => 'Traduire',

       'TRANSLATE_TITLE'   => 'Traduire totas las cellulas voidas dins la lenga seleccionada',

       'TRANSLATION'   => 'Traduccion',

       'UNWRITABLE'   => 'Cap de drech en escritura pel dossièr %s',

       'VALIDATE'   => 'Validar'

    );

    ?>

    </code>

  • bazooka07bazooka07 Membre
    20 mars modifié
    <?php
    $LANG = array(
       '3RD_LANG'   => '3ena lenga',
       'ALL_LANGS'   => 'Totas las lengas',
       'CTRL_CLICK'   => 'Ctrl-Click amb la mirga sul tablèu per traduire',
       'L_DE'   => 'Alemand',
       'L_EN'   => 'Anglés',
       'L_ES'   => 'Espanhòl',
       'L_FR'   => 'Francés',
       'L_IT'   => 'Italian',
       'L_NL'   => 'Neerlandés',
       'L_OC'   => 'Occitan',
       'L_PL'   => 'Polonés',
       'L_PT'   => 'Portugués',
       'L_RO'   => 'Romanés',
       'L_RU'   => 'Rus',
       'PLUGIN'   => 'Plugin',
       'SAVE'   => 'Salvagardar la lenga seleccionada',
       'TRANSLATE'   => 'Traduire',
       'TRANSLATE_TITLE'   => 'Traduire totas las cellulas voidas dins la lenga seleccionada',
       'TRANSLATION'   => 'Traduccion',
       'UNWRITABLE'   => 'Cap de drech en escritura pel dossièr %s',
       'VALIDATE'   => 'Validar'
    );
    ?>
    

    Ok.

    Version 0.9.2 :

    traduction occitan

    Lien vers https://www.deepl.com/translator

Connectez-vous ou Inscrivez-vous pour répondre.