2010-07-28 8 views
1

J'ai un thème wordpress sans textdomain (c'est-à-dire e (x) et non e (x, domaine)). J'ai aussi les fichiers .po et .mo dans un dossier sous/themes/My Theme/localisation (Notez le nom de l'espace dans mon thème). Je voudrais activer fr_FR. J'ai créé fr_FR.po et .mo et changé le wp-config pour ajouter les paramètres régionaux pour fr_FR. Cependant, je ne reçois toujours pas le français au travail. J'ai vu beaucoup de sites vous dire d'ajouter un load_theme_textdomain en haut de functions.php, mais je ne sais pas ce que serait mon textdomain. Toute aide serait appréciée.Localisation d'un thème wordpress sans un domaine de texte

Youssef

Répondre

6

Pour obtenir le fonctionnement de la localisation de thème, vous allez avoir besoin de passer par votre thème et ajouter un domaine à chaque appel de fonction _e() et __(). ceci:

_e('some text'); 
__('some other text'); 

devra devenir ceci:

_e('some text', 'your-domain'); 
__('some other text', 'your-domain'); 

Ensuite, vous devrez ajouter ce morceau de code en haut de votre fichier functions.php:

load_theme_textdomain('your-domain', TEMPLATEPATH.'/localization'); 

$locale = get_locale(); 
$locale_file = TEMPLATEPATH."/localization/$locale.php"; 
if (is_readable($locale_file)) 
    require_once($locale_file); 

Vous pouvez en lire plus à ce sujet in this post.

+0

Je vous remercie de votre réponse. Avant de le faire comme vous le recommandez, j'aimerais entendre le reste de la communauté pour confirmer qu'il n'y a pas de solution facile. :( – semyou

+0

J'ai essayé ce que vous avez suggéré, mais pas de succès! Des idées? – semyou

+0

@ user404057 vous avez également besoin de traduire le fichier PO.Lisez ici: http: //codex.wordpress.org/Translating_WordPress –

5

Ajoutez votre propre domaine de texte. Je l'ai fait récemment à un thème qui n'a pas été conçu pour la localisation, donc je poste ce que j'ai fait.

Ajouter à ce functions.php

load_theme_textdomain('your-domain', TEMPLATEPATH.'/languages');

your-domain peut être un nom, mais le garder uniforme dans tous les fichiers de thème.

Maintenant, allez à travers tous le thème des fichiers PHP, et procédez comme suit:

Si vous voyez _e('some text') changer ensuite à _e('some text', 'your-domain');

Si vous voyez __('some text') changer ensuite à __('some text', 'your-domain');

Si vous voir "some text" sans __() ou _e() puis,

Si "some text" sed dans un appel de fonction, puis le rendre __() comme ci-dessus, y compris le domaine texte

Si "some text" est juste imprimé et ne fait pas partie d'un appel de fonction, il surrround avec un _e() comme indiqué ci-dessus, et ne pas oublier le texte domaine. Pour plus d'informations, consultez le Wordpress internationalization and localization guide.

+0

Je sais que c'est un vieux question, mais je pensais que cela devrait être répondu de toute façon, compte tenu des difficultés que j'ai traversé pour trouver ceci: | –

0

Après une chaîne de forums incroyablement longue qui a suivi les mêmes étapes de configuration que lorsque tout fonctionnait correctement, j'ai finalement trouvé ce qui me causait le problème.

Si le serveur définit le $locale global avant a une fête wordpress à, puis utilise les paramètres wordpress de paramètres régionaux du serveur (dans le fichier wp-includes/l10n.php, la fonction get_locale).

La solution je, est de définir les paramètres régionaux global $ juste à côté de la définition WPLANG ...

global $locale; 
$locale = 'am_AM'; 
define('WPLANG', $locale); 
Questions connexes