MyBB.support, le portail francophone de MyBB

Version complète : Traduire un Plugin ?
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonsoir,
Je souhaite traduire un plugin, chose que j'ai déjà fais, mais en le re-mettant sur mon FPT (en ayant actualisé le fichier), la traduction ne ce fait pas.

Je vous laisse voir le fichier par vous-même :

Code :
<?php
/*
Plugin Ads after first post
(c) 2005-2008 by MyBBoard.de
Website: http://www.mybboard.de
*/
$plugins->add_hook("postbit", "adsafp");

//Informationen zum Plugin
function adsafp_info()
{
    return array(
        "name"        => "Annonces après premier post",
        "description" => "Affiche annonces après les postes de vos forums.",
        "website"     => "http://www.mybboard.de",
        "author"      => "MyBBoard.de, traduit par Simba (xEvengelion)",
        "authorsite"  => "http://www.mybboard.de",
        "version"     => "2.2",
        "guid"        => "1c7274c3dd8a6ad850eac910dbd58e4c",
        "compatibility" => "16*"
        );
}

// Aktivierung
function adsafp_activate() {

    global $db;

    // Variablen für dieses Plugin einfügen
    require MYBB_ROOT."/inc/adminfunctions_templates.php";
    find_replace_templatesets("postbit", '#</tbody>
</table>#', "</tbody>
</table>{\$post['adsaf']}");
    find_replace_templatesets("postbit_classic", '#</table>
    </td>
</tr>
</table>#', "</table>
    </td>
</tr>
</table>{\$post['adsaf']}");
        
    // Einstellungsgruppe hinzufügen
    $adsafp_group = array(
        "gid" => "NULL",
        "name" => "Ads after first post",
        "title" => "Ads after first post",
        "description" => "Settings for the plugin.",
        "disporder" => "1",
        "isdefault" => "no",
        );
    $db->insert_query("settinggroups", $adsafp_group);
    $gid = $db->insert_id();
    
    // Einstellungen hinzufügen
    $adsafp_1 = array(
        "sid" => "NULL",
        "name" => "adsafp_code_onoff",
        "title" => "Activer / Désactiver",
        "description" => "Voulez-vous afficher des annonces, après les messages ?",
        "optionscode" => "yesno",
        "value" => "0",
        "disporder" => "1",
        "gid" => intval($gid),
        );
    $db->insert_query("settings", $adsafp_1);

    $adsafp_2 = array(
        "sid" => "NULL",
        "name" => "adsafp_groups",
        "title" => "Groupes d'utilisateurs",
        "description" => "S'il vous plaît entrer les ID des groupes d'utilisateurs qui devraient voir des annonces séparées par des virgules (0 = tous les groupes).",
        "optionscode" => "text",
        "value" => "0",
        "disporder" => "2",
        "gid" => intval($gid),
        );
    $db->insert_query("settings", $adsafp_2);
    
    $adsafp_3 = array(
        "sid" => "NULL",
        "name" => "adsafp_align",
        "title" => "Positionnement",
        "description" => "Choisissez l'alignement.",
        "optionscode" => "radio\r\n1=Gauche\r\n2=Centrer\r\n3=Droite",
        "value" => "2",
        "disporder" => "3",
        "gid" => intval($gid),
        );
    $db->insert_query("settings", $adsafp_3);
    
    $adsafp_4 = array(
        "sid" => "NULL",
        "name" => "adsafp_mode",
        "title" => "Mode",
        "description" => "Où voulez-vous afficher les annonces ?",
        "optionscode" => "radio\r\n1=Après premier post sur chaque page (par défaut)\r\n2=Après le premier message et ensuite après chaque postes x\r\n3=Après chaque postes x",
        "value" => "1",
        "disporder" => "4",
        "gid" => intval($gid),
        );
    $db->insert_query("settings", $adsafp_4);
    
    $adsafp_5 = array(
        "sid" => "NULL",
        "name" => "adsafp_afterxposts",
        "title" => "Nombre de messages",
        "description" => "Entrez le nombre de postes, après que vous souhaitez afficher les annonces (uniquement nécessaire pour le deuxième mode)",
        "optionscode" => "text",
        "value" => "5",
        "disporder" => "5",
        "gid" => intval($gid),
        );
    $db->insert_query("settings", $adsafp_5);
    
    $adsafp_6 = array(
        "sid" => "NULL",
        "name" => "adsafp_code",
        "title" => "Code",
        "description" => "Entrez le code HTML pour les annonces.",
        "optionscode" => "textarea",
        "value" => "",
        "disporder" => "6",
        "gid" => intval($gid),
        );
    $db->insert_query("settings", $adsafp_6);
    
    // settings.php erneuern
    rebuild_settings();
}

// Deaktivierung
function adsafp_deactivate() {

    global $db;

    // Variablen von dieses Plugin entfernen
    require MYBB_ROOT."/inc/adminfunctions_templates.php";
    find_replace_templatesets("postbit", "#{\$post['adsaf']}#", "", 0);
    find_replace_templatesets("postbit_classic", "#{\$post['adsaf']}#", "", 0);
    
    // Einstellungsgruppen löschen
    $query = $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name='Ads after first post'");
    $g = $db->fetch_array($query);
    $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE gid='".$g['gid']."'");

    // Einstellungen löschen
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid='".$g['gid']."'");

    // Rebuilt settings.php
    rebuild_settings();
}

// Funktionen
function adsafp($post) {

    global $mybb, $postcounter;

    $post['adsaf'] = "";
    $adgroups = explode(",", $mybb->settings['adsafp_groups']);
    if($mybb->settings['adsafp_code_onoff'] != 0 && ($mybb->settings['adsafp_groups'] == 0 || in_array($mybb->user['usergroup'], $adgroups))) {

        // Alignment
        switch ($mybb->settings['adsafp_align']) {
        case 1:
            $ads_align = "left";
            break;
        case 2:
            $ads_align = "center";
            break;
        case 3:
            $ads_align = "right";
            break;
        }

        // Ads after first post
        if ($mybb->settings['adsafp_mode'] == 1) {
            if (($postcounter - 1) % $mybb->settings['postsperpage'] == 0) {
                $post['adsaf'] = "<div class=\"adsafp\" style=\"text-align:".$ads_align.";\">".stripslashes($mybb->settings['adsafp_code'])."</div>";
            }
        }

        // Ads after first post and then every x posts
        if ($mybb->settings['adsafp_mode'] == 2) {
            if ($postcounter == "1" || ($postcounter - 1) % ($mybb->settings['adsafp_afterxposts']) == 0) {
                $post['adsaf'] = "<div class=\"adsafp\" style=\"text-align:".$ads_align.";\">".stripslashes($mybb->settings['adsafp_code'])."</div>";
            }
        }
    
        // Ads after every x posts
        if ($mybb->settings['adsafp_mode'] == 3) {
            if ($postcounter % ($mybb->settings['adsafp_afterxposts']) == 0) {
                $post['adsaf'] = "<div class=\"adsafp\" style=\"text-align:".$ads_align.";\">".stripslashes($mybb->settings['adsafp_code'])."</div>";
            }
        }
    }
}

// Einstellungen erneuern
if(!function_exists("rebuild_settings")) {
    function rebuild_settings() {
        
        global $db;
        
        $query = $db->query("SELECT * FROM ".TABLE_PREFIX."settings ORDER BY title ASC");
        while($setting = $db->fetch_array($query)) {
            $setting['value'] = addslashes($setting['value']);
            $settings .= "\$settings['".$setting['name']."'] = \"".$setting['value']."\";\n";
        }
        $settings = "<?php\n/*********************************\ \n  DO NOT EDIT THIS FILE, PLEASE USE\n  THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n?>";
        $file = fopen(MYBB_ROOT."/inc/settings.php", "w");
        fwrite($file, $settings);
        fclose($file);
        
    }
}
?>
Peut-être un cache a vider ? (Je ne sais pas, je propose juste !) Smile
Non ça ne fonctionne pas.
Mais ça peut venir de ce que j'ai traduit ? Une mauvaise manipulation ?
Je ne vois pas d'erreur de syntaxe, tu es sûr que le transfert s'est effectué correctement ? :s
Oui j'ai supprimer le plugin/Enregistrer de nouveau/redémarré le FTP.
Mais j'ai essayer de l'activé/désactivé et... Le pire et venue, une capture d'écrans dans 2 secondes
Je suggère se désinstaller l'ancien plugin pour vider le cache et ensuite de le réinstaller...

L'apostrophe à "d'utilisateurs" devraient être échappée ("d\'utilisateurs") je pense...
Le problème décrit provient des apostrophes du texte qui ne sont pas "escapés" avec un "backslash"...

P.S. Saphir m'a devancé sur la réponse... Wink
J'ai mis des "\" mais rien ne change.
Je ne vois pas d'ou peut venir le problème.
Si aucune apostrophe ne fût oubliée alors je suggère de relire ce message :
http://mybb.fr/thread-5072-post-28589.html#pid28589
Juste trois questions :
1. As-tu désinstallé le plugin et vérifié que les paramètres du plugin n'apparaissent plus dans "Configuration" ? Il est possible que ça se soit mal désinstallé et que des valeurs soient restées en dur dans la base.

2. Il faudrait sans doute enregistrer le fichier en UTF-8 sans BOM (pour les caractères accentués)

3. Quel éditeur de texte as-tu utilisé ? Pas le Bloc-Note de Windows j'espère !!!
(28-12-2011, 19:34)spyto a écrit : [ -> ]Juste trois questions :
1. As-tu désinstallé le plugin et vérifié que les paramètres du plugin n'apparaissent plus dans "Configuration" ? Il est possible que ça se soit mal désinstallé et que des valeurs soient restées en dur dans la base.

2. Il faudrait sans doute enregistrer le fichier en UTF-8 sans BOM (pour les caractères accentués)

3. Quel éditeur de texte as-tu utilisé ? Pas le Bloc-Note de Windows j'espère !!!

J'ai utilisé NotePad ++
Et il y a 6 fois le plugins dans Paramètre.
Cela signifie que le plugin ne se désinstalle pas correctement. Il faudra donc supprimer les paramètres en trop, manuellement.
C'est faits mais ça ne fonctionne toujours pas.
Devrais-je re-upload le fichier sur le FTP ?
C'est celui-ci ?
http://mods.mybb.com/view/ads-after-first-post-for-mybb-14x

Si c'est le cas je signale qu'il a été mis à jour pour la dernière fois le 12 août 2008, compatible 1.4, mais peut-être pas 1.6 ?... (même en forçant la compatibilité)

En tout cas c'est à prendre en considération.

Pour preuve, il semble y avoir des modifs à apporter. Je ne comprends pas grand-chose à l'allemand, mais ces discussions sont peut-être instructives ?
http://forum.mybboard.de/thread-18103.html
http://forum.mybboard.de/thread-13278.html
http://forum.mybboard.de/thread-18450.html

Oui parfois si tu met des caractères comme ' ça fait tout buguer & ont te dit error sql in line...
(28-12-2011, 21:00)spyto a écrit : [ -> ]C'est celui-ci ?
http://mods.mybb.com/view/ads-after-first-post-for-mybb-14x

Si c'est le cas je signale qu'il a été mis à jour pour la dernière fois le 12 août 2008, compatible 1.4, mais peut-être pas 1.6 ?... (même en forçant la compatibilité)

En tout cas c'est à prendre en considération.

Pour preuve, il semble y avoir des modifs à apporter. Je ne comprends pas grand-chose à l'allemand, mais ces discussions sont peut-être instructives ?
http://forum.mybboard.de/thread-18103.html
http://forum.mybboard.de/thread-13278.html
http://forum.mybboard.de/thread-18450.html

J'ai bien MAJ le Plugin pourtant.
Le problème persiste pour le moment je vais garder le Plugin en anglais puis voir comment faire.


Est-ce qu'il fonctionne correctement en anglais ?
(29-12-2011, 12:47)spyto a écrit : [ -> ]Est-ce qu'il fonctionne correctement en anglais ?

Oui très bien même.
J'ai bien regarder même le positionnement fonctionne.
 Utilitaire de traduction fourni par Regentronique