[traduction] wp-contact-form (Créer un compte)

  • Statut : non résolu
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #447782
    patriciafidi
    Membre
    Initié WordPress
    3 contributions

    Bonjour,
    Petite traduction en français de wp-contactform épinglé dans la section des plugins.
    Après installation du plugin wp-contactform 1.4.3. pour wordpress 2.0 et configuration suivant les recommandations de l’auteur http://ryanduff.net/projects/wp-contactform
    il faut juste remplacer wp-contactform.php qui se trouve dans wp-content/plugings/wp-contact-form/wp-contactform.php par ce code :

    <?php
    /*
    Plugin Name: WP-ContactForm
    Plugin URI: http://ryanduff.net/projects/wp-contactform/
    Description: WP Contact Form is a drop in form for users to contact you. It can be implemented on a page or a post. It currently works with WordPress 2.0+
    Author: Ryan Duff
    Author URI: http://ryanduff.net
    Version: 1.4.3
    */

    load_plugin_textdomain('wpcf',$path = 'wp-content/plugins/wp-contact-form');

    /* Declare strings that change depending on input. This also resets them so errors clear on resubmission. */
    $wpcf_strings = array(
    'name' => ‘<div class="contactright"><input type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' . $_POST['wpcf_your_name'] . '" /> (‘ . __(‘requis’, ‘wpcf’) . ‘)</div>‘,
    ’email’ => ‘<div class="contactright"><input type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' . $_POST['wpcf_email'] . '" /> (‘ . __(‘requis’, ‘wpcf’) . ‘)</div>‘,
    ‘msg’ => ‘<div class="contactright"><textarea name="wpcf_msg" id="wpcf_msg" cols="35" rows="8" >‘ . $_POST[‘wpcf_msg’] . ‘</textarea></div>‘,
    ‘error’ =>  »);

    /*
    This shows the quicktag on the write pages
    Based off Buttonsnap Template
    http://redalt.com/downloads
    */
    if(get_option(‘wpcf_show_quicktag’) == true) {
    include(‘buttonsnap.php’);

    add_action(‘init’, ‘wpcf_button_init’);
    add_action(‘marker_css’, ‘wpcf_marker_css’);

    function wpcf_button_init() {
    $wpcf_button_url = buttonsnap_dirname(__FILE__) . ‘/wpcf_button.png’;

    buttonsnap_textbutton($wpcf_button_url, __(‘Insert Contact Form’, ‘wpcf’), ‘<!--contact form-->‘);
    buttonsnap_register_marker(‘contact form’, ‘wpcf_marker’);
    }

    function wpcf_marker_css() {
    $wpcf_marker_url = buttonsnap_dirname(__FILE__) . ‘/wpcf_marker.gif’;
    echo  »
    .wpcf_marker {
    display: block;
    height: 15px;
    width: 155px
    margin-top: 5px;
    background-image: url({$wpcf_marker_url});
    background-repeat: no-repeat;
    background-position: center;
    }
    « ;
    }
    }

    function wpcf_is_malicious($input) {
    $is_malicious = false;
    $bad_inputs = array(« r », « n », « mime-version », « content-type », « cc: », « to: »);
    foreach($bad_inputs as $bad_input) {
    if(strpos(strtolower($input), strtolower($bad_input)) !== false) {
    $is_malicious = true; break;
    }
    }
    return $is_malicious;
    }

    /* This function checks for errors on input and changes $wpcf_strings if there are any errors. Shortcircuits if there has not been a submission */
    function wpcf_check_input()
    {
    if(!(isset($_POST[‘wpcf_stage’]))) {return false;} // Shortcircuit.

    $_POST[‘wpcf_your_name’] = stripslashes(trim($_POST[‘wpcf_your_name’]));
    $_POST[‘wpcf_email’] = stripslashes(trim($_POST[‘wpcf_email’]));
    $_POST[‘wpcf_website’] = stripslashes(trim($_POST[‘wpcf_website’]));
    $_POST[‘wpcf_msg’] = stripslashes(trim($_POST[‘wpcf_msg’]));

    global $wpcf_strings;
    $ok = true;

    if(empty($_POST[‘wpcf_your_name’]))
    {
    $ok = false; $reason = ’empty’;
    $wpcf_strings[‘name’] = ‘<div class="contactright"><input type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' . $_POST['wpcf_your_name'] . '" class="contacterror" /> (‘ . __(‘required’, ‘wpcf’) . ‘)</div>‘;
    }

    if(!is_email($_POST[‘wpcf_email’]))
    {
    $ok = false; $reason = ’empty’;
    $wpcf_strings[’email’] = ‘<div class="contactright"><input type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' . $_POST['wpcf_email'] . '" class="contacterror" /> (‘ . __(‘required’, ‘wpcf’) . ‘)</div>‘;
    }

    if(empty($_POST[‘wpcf_msg’]))
    {
    $ok = false; $reason = ’empty’;
    $wpcf_strings[‘msg’] = ‘<div class="contactright"><textarea name="wpcf_msg" id="wpcf_message" cols="35" rows="8" class="contacterror">‘ . $_POST[‘wpcf_msg’] . ‘</textarea></div>‘;
    }

    if(wpcf_is_malicious($_POST[‘wpcf_your_name’]) || wpcf_is_malicious($_POST[‘wpcf_email’])) {
    $ok = false; $reason = ‘malicious’;
    }

    if($ok == true)
    {
    return true;
    }
    else {
    if($reason == ‘malicious’) {
    $wpcf_strings[‘error’] = « <div style='font-weight: bold;'>You can not use any of the following in the Name or Email fields: a linebreak, or the phrases ‘mime-version’, ‘content-type’, ‘cc:’ or ‘to:’.</div>« ;
    } elseif($reason == ’empty’) {
    $wpcf_strings[‘error’] = ‘<div style="font-weight: bold;">‘ . stripslashes(get_option(‘wpcf_error_msg’)) . ‘</div>‘;
    }
    return false;
    }
    }

    /*Wrapper function which calls the form.*/
    function wpcf_callback( $content )
    {
    global $wpcf_strings;

    /* Run the input check. */

    if(! preg_match(‘|<!--contact form-->|’, $content)) {
    return $content;
    }

    if(wpcf_check_input()) // If the input check returns true (ie. there has been a submission & input is ok)
    {
    $recipient = get_option(‘wpcf_email’);
    $subject = get_option(‘wpcf_subject’);
    $success_msg = get_option(‘wpcf_success_msg’);
    $success_msg = stripslashes($success_msg);

    $name = $_POST[‘wpcf_your_name’];
    $email = $_POST[‘wpcf_email’];
    $website = $_POST[‘wpcf_website’];
    $msg = $_POST[‘wpcf_msg’];

    $headers = « MIME-Version: 1.0n »;
    $headers .= « From: $name <$email>n »;
    $headers .= « Content-Type: text/plain; charset= » » . get_settings(‘blog_charset’) . «  »n »;

    $fullmsg = « $name wrote:n »;
    $fullmsg .= wordwrap($msg, 80, « n ») . « nn »;
    $fullmsg .= « Website:  » . $website . « n »;
    $fullmsg .= « IP:  » . getip();

    mail($recipient, $subject, $fullmsg, $headers);

    $results = ‘<div style="font-weight: bold;">‘ . $success_msg . ‘</div>‘;
    echo $results;
    }
    else // Else show the form. If there are errors the strings will have updated during running the inputcheck.
    {
    $form = ‘<div class="contactform">
    ‘ . $wpcf_strings[‘error’] . ‘
    <form action="' . get_permalink() . '" method="post">
    <div class="contactleft"><label for="wpcf_your_name">‘ . __(‘Votre nom : ‘, ‘wpcf’) . ‘</label></div>‘ . $wpcf_strings[‘name’] . ‘
    <div class="contactleft"><label for="wpcf_email">‘ . __(‘Votre courriel :’, ‘wpcf’) . ‘</label></div>‘ . $wpcf_strings[’email’] . ‘
    <div class="contactleft"><label for="wpcf_website">‘ . __(‘Votre site :’, ‘wpcf’) . ‘</label></div><div class="contactright"><input type="text" name="wpcf_website" id="wpcf_website" size="30" maxlength="100" value="' . $_POST['wpcf_website'] . '" /></div>
    <div class="contactleft"><label for="wpcf_msg">‘ . __(‘Votre Message : ‘, ‘wpcf’) . ‘</label></div>‘ . $wpcf_strings[‘msg’] . ‘
    <div class="contactright"><input type="submit" name="Submit" value="' . __('Ok', 'wpcf') . '" id="contactsubmit" /><input type="hidden" name="wpcf_stage" value="process" /></div>
    </form>
    </div>
    <div style="clear:both; height:1px;"> </div>‘;
    return str_replace(‘<!--contact form-->‘, $form, $content);
    }
    }


    /*Can’t use WP’s function here, so lets use our own*/
    function getip()
    {
    if (isset($_SERVER))
    {
    if (isset($_SERVER[« HTTP_X_FORWARDED_FOR »]))
    {
    $ip_addr = $_SERVER[« HTTP_X_FORWARDED_FOR »];
    }
    elseif (isset($_SERVER[« HTTP_CLIENT_IP »]))
    {
    $ip_addr = $_SERVER[« HTTP_CLIENT_IP »];
    }
    else
    {
    $ip_addr = $_SERVER[« REMOTE_ADDR »];
    }
    }
    else
    {
    if ( getenv( ‘HTTP_X_FORWARDED_FOR’ ) )
    {
    $ip_addr = getenv( ‘HTTP_X_FORWARDED_FOR’ );
    }
    elseif ( getenv( ‘HTTP_CLIENT_IP’ ) )
    {
    $ip_addr = getenv( ‘HTTP_CLIENT_IP’ );
    }
    else
    {
    $ip_addr = getenv( ‘REMOTE_ADDR’ );
    }
    }
    return $ip_addr;
    }


    /*CSS Styling*/
    function wpcf_css()
    {
    ?>
    <style type="text/css" media="screen">

    /* Begin Contact Form CSS */
    .contactform {
    position: static;
    overflow: hidden;
    }

    .contactleft {
    width: 25%;
    text-align: right;
    clear: both;
    float: left;
    display: inline;
    padding: 4px;
    margin: 5px 0;
    }

    .contactright {
    width: 70%;
    text-align: left;
    float: right;
    display: inline;
    padding: 4px;
    margin: 5px 0;
    }

    .contacterror {
    border: 1px solid #ff0000;
    }

    .contactsubmit {
    }
    /* End Contact Form CSS */

    </style>

    <?php

    }

    function wpcf_add_options_page()
    {
    add_options_page('Contact Form Options', 'Contact Form', 'manage_options', 'wp-contact-form/options-contactform.php');
    }

    /* Action calls for all functions */

    //if(get_option('wpcf_show_quicktag') == true) {add_action('admin_footer', 'wpcf_add_quicktag');}

    add_action('admin_head', 'wpcf_add_options_page');
    add_filter('wp_head', 'wpcf_css');
    add_filter('the_content', 'wpcf_callback', 7);

    ?>

    #574665
    Oo
    Membre
    Maître WordPress
    2484 contributions

    Salut,

    J’avais déjà fait la traduction de ce plugin ! Dommage que la section Plugin de WP Fr ne soit pas encore d’actu !

    Voici le lien : http://www.wordpress-fr.net/support/viewtopic.php?pid=6083#p6083

    :D

    #574666
    xavier
    Participant
    Maître WordPress
    2124 contributions

    Qui s’occupe de cette section ? Je ne m’en suis jamais soucié, en fait…

    #574667
    Oo
    Membre
    Maître WordPress
    2484 contributions

    Euh, Bah, je ne sais pas non plus !

    Ca serait vraiment cool d’avoir une section dans laquelle nous pourrions ajouter des plugins ! Ensuite, je sais qu’il faut surement une personne pour vérifier tout cela (doublon, erreur, traduction, version et autres) ! C’est pour cela que je peux me proposer pour vous donner un coup de pied 😆 Euh de main ! :D

    🙂

    #574668
    benkenobi
    Participant
    Maître WordPress
    4069 contributions

    Elle existe déjà en fait cette section : http://www.wordpress-fr.net/extensions/plugins/

    Le problème est qu’on ne sait pas trop comment la gérer et de la façon dont elle est présentée bien qu’elle est belle allure, elle risque de devenir vite illisible si d’aventure de nombreux plugin y étaient enregistrés. Enfin il faudrait un moteur de recherche spécial pour les plugins afin d’en faciliter la recherche.

    Le problème est identique pour la section thème (voir rubrique « extensions » du site).

    #574669
    Toucouleur
    Membre
    Initié WordPress
    1 contributions

    désolé de déranger, et il s’agit e mon premier post sur le présent forum.

    J’aimerai comprendre un truc.

    J’ai téléchargé le plugin en anglais et j’y ai vu le fichier wp-contactform.po que j’ai donc édité puis sauvegarder/compilé dans le répertoire wp-contentpluginswp-contact-form

    dans le code du plugin en question on voit bien lappel de la fonction

    load_plugin_textdomain(‘wpcf’,$path = ‘wp-content/plugins/wp-contact-form’);

    mais il ne prend pas en condiséreation le fichier compilé wp-contactform.mo :(

    #574670
    DirectMixs
    Participant
    Initié WordPress
    39 contributions

    je vois que des liens mort depuis ta leur ! 😕

    #574671
    benkenobi
    Participant
    Maître WordPress
    4069 contributions
    DirectMixs wrote:
    je vois que des liens mort depuis ta leur ! 😕

    C’est quoi une « leur » ? et tu parles de la « leur » à qui ? 😉

    #574672
    DirectMixs
    Participant
    Initié WordPress
    39 contributions

    ben j’ai visité des anciens postes, et plein de liens qui m’intéressés sont dead.
    voila tout

9 sujets de 1 à 9 (sur un total de 9)
  • Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.