[Résolu] Logo différent en fonction de la langue du site (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 16)
  • Auteur
    Messages
  • #512676
    lorenzolamas
    Participant
    Maître WordPress
    3235 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.4.1
    – Version de PHP/MySQL : 5
    – Thème utilisé : evintage
    – Extensions en place : aucune pour le moment
    – Nom de l’hebergeur : oxito.ch (a terme)
    – Adresse du site : local

    Problème(s) rencontré(s) :

    Comme expliqué dans le titre, j’ai essayé plusieurs modifs dans le code MAIS ça n’a pas fonctionné.

    voici le code de la section à modifier:

    Guy
    Participant
    Maître WordPress
    14821 contributions

    oui? quel est le problème exactement? comment détermines tu la langue?

    #845486
    lorenzolamas
    Participant
    Maître WordPress
    3235 contributions

    Alors, je gère les langues/versions avec le plugin polylang.

    le truc c’est que par défaut, j’ai le même logo peu importe la langue et j’aimerai que le logo change quand je change la version/langue du site.

    #845487
    Guy
    Participant
    Maître WordPress
    14821 contributions

    un test sur get_bloginfo(‘language’) ?

    #845488
    lorenzolamas
    Participant
    Maître WordPress
    3235 contributions

    Salut,

    cad?

    un test sur get_bloginfo(‘language’) ?

    voila l’autre post qui m’avait permis de faire ça.
    J’ai essayé d’intégrer ça dans le code actuel, mais sans réussir.

    http://www.wordpress-fr.net/support/viewtopic.php?id=68689

    #845489
    Guy
    Participant
    Maître WordPress
    14821 contributions

    C’est spécifique à polylang, je suppose qu’il connait son plugin 🙂

    je te proposais de faire un test sur get_bloginfo(‘language’) qui retourne ‘fr_FR’ si le site est en francais, mais je ne sais pas si polylang a mis un hook la dessus et quel est le résultat de la fonction quand le plugin est activé.

    et donc, selon ce que tu veux tester la langue (le fr) ou le pays (le FR), tu fais ton test sur la chaine retournée (attention dans WordPress certaines localisations comme le tajik, l’ukrainien, le turque… ne retournent que la langue, pas le pays).
    Voila ce que je proposais, mais encore une fois, il faut que polylang mette à jour le language de WordPress pour que cela marche. Cette méthode a l’avantage de ne pas être lié à un plugin.

    #845490
    Chouby
    Participant
    Chevalier WordPress
    417 contributions

    Oui, oui. Polylang renvoie la bonne valeur de langue pour get_bloginfo(‘language’) ou get_locale(). J’ai ajouté pll_current_language, suite à la demande d’utilisateurs, qui peut renvoyer, selon l’argument ‘slug’, ‘name’ ou ‘locale’ : ‘fr’, ‘Français’ ou ‘fr_FR’
    Qu’est-ce qui n’a pas fonctionné avec la méthode proposée ?

    #845491
    Guy
    Participant
    Maître WordPress
    14821 contributions

    @chouby: je ne doutais évidement pas que cela soit mis à jour 🙂

    #845492
    lorenzolamas
    Participant
    Maître WordPress
    3235 contributions

    J’ai probablement mal modifié le code, ce qui est toalement possible, je débute en PHP.

    Mais en gros, j’avais ça (code de base du thème):

    <a href="”>
    <?php if(!empty($al_options)):?>
    <img src="” alt=”” id=”logo-image” style=”margin-top:7px” />

    Logo

    et j’ai essayé tant ben que mal de d’intégrer ça:

    $lang = pll_current_language(‘slug’);
    $logo = get_template_directory_uri() . “/images/logo_$lang.png”;

    et d’appeler le $logo … mais je pense que j’ai du mal le faire.

    Une idée du code à mettre?

    Merci d’avance!

    #845493
    Guy
    Participant
    Maître WordPress
    14821 contributions

    Fais un test pour regarder ce qui est retourné, est ce uniquement fr ou fr_FR?

    #845494
    Chouby
    Participant
    Chevalier WordPress
    417 contributions

    Je te popose de ne pas modifier ton thème mais de créer un plugin personnel:
    Il faut que tu recherches (probablement dans functions.php) :

    $al_options = get_option(‘quelque_chose’);

    Une fois que tu as trouvé ce quelque chose, tu peux ajouter ce code (en remplaçant quelque_chose par ce que tu as trouvé) dans un plugin perso.

    if (function_exists(‘pll_register_string’) {
    	add_filter(‘option_quelque_chose’, ‘theme_options_translation’);
    
    	function theme_translation($values) {
    		foreach ($values as $key=>$value) {
    			if (in_array($key, array(‘al_logo’, ‘al_logotext’) {
    				if (is_admin())
    					pll_register_string(‘theme’, $value);
    				else
    					$values[$key] = pll__($value);	
    			}
    		}
    		return $values;
    	}
    }

    Après tu pourras utiliser l’outil de traduction de phrases de Polylang pour traduire l’adresse de tes logos et le texte alternatif. Ne pas oublier de mettre une valeur dans les options du thème, sinon ça ne marche pas.

    #845495
    Chouby
    Participant
    Chevalier WordPress
    417 contributions

    Je ne trouve plus le bouton ‘éditer’ ???
    Petite correction:
    function theme_options_translation(…
    et non
    function theme_translation(…

    #845496
    lorenzolamas
    Participant
    Maître WordPress
    3235 contributions

    J’ai essayé ça, mais ça a fait complètement planté le site.
    Plus possible d’accéder à l’admin et plus possible d’accéder au site en front end.

    Heureusement que c’est un site demo et vide.

    Je réinstalle WP sur la plateforme de dev.

    j’avais

    $al_options = get_option(‘al_general_settings’);

    et j’ai rajouté ça:

    if (function_exists(‘pll_register_string’) {
    add_filter(‘option_al_general_settings’, ‘theme_options_translation’);

    function theme_options_translation($values) {
    foreach ($values as $key=>$value) {
    if (in_array($key, array(‘al_logo’, ‘al_logotext’) {
    if (is_admin())
    pll_register_string(‘theme’, $value);
    else
    $values[$key] = pll__($value);
    }
    }
    return $values;
    }
    }

    puis sauvegardé et ensuite tout blanc !

    #845497
    lorenzolamas
    Participant
    Maître WordPress
    3235 contributions

    Avec le theme twenty-ten, ca fonctionne parfaitement (traduction du slogan).

    le problème vient donc de mon theme evintage, puisque même le menu n’est pas traduit dans les différentes langues.

    Avec twenty ten, il l’est …

    Je ne vais donc pas me compliquer la vie, je vais juste changer de thème …

    #845498
    luciole135
    Participant
    Maître WordPress
    13743 contributions

    Vous avez raison, il faut toujours aller au plus simple en informatique ! 👏

15 sujets de 1 à 15 (sur un total de 16)
  • Vous devez être connecté pour répondre à ce sujet.