- Statut : non résolu
- Ce sujet contient 15 réponses, 4 participants et a été mis à jour pour la dernière fois par
lorenzolamas, le il y a 12 années et 9 mois.
-
AuteurMessages
-
31 juillet 2012 à 14 h 13 min #512676
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 : localProblè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:
oui? quel est le problème exactement? comment détermines tu la langue?
31 juillet 2012 à 14 h 51 min #845486Alors, 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.
31 juillet 2012 à 19 h 06 min #845487un test sur get_bloginfo(‘language’) ?
31 juillet 2012 à 19 h 38 min #845488Salut,
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.31 juillet 2012 à 21 h 26 min #845489C’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.1 août 2012 à 19 h 41 min #845490Oui, 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 ?1 août 2012 à 19 h 54 min #845491@chouby: je ne doutais évidement pas que cela soit mis à jour 🙂
1 août 2012 à 21 h 14 min #845492J’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!
1 août 2012 à 23 h 12 min #845493Fais un test pour regarder ce qui est retourné, est ce uniquement fr ou fr_FR?
2 août 2012 à 7 h 28 min #845494Je 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.
2 août 2012 à 7 h 32 min #845495Je ne trouve plus le bouton ‘éditer’ ???
Petite correction:
function theme_options_translation(…
et non
function theme_translation(…2 août 2012 à 8 h 15 min #845496J’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 !
2 août 2012 à 9 h 41 min #845497Avec 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 …
2 août 2012 à 9 h 47 min #845498Vous avez raison, il faut toujours aller au plus simple en informatique ! 👏
AuteurMessages- Vous devez être connecté pour répondre à ce sujet.