J'ai un client avec un thème wordpress, Nevada , et nous avons du mal à faire en sorte que les traductions intégrées fonctionnent. Le thème contient des fichiers .mo pour l'anglais, l'allemand et le slovène, qui semblent être trouvés par notre plugin WPML. Cependant, ils ne traduisent aucun texte de modèle dans le thème. La traduction du contenu que nous avons créé fonctionne bien.
En suivant les instructions ici: http://wpml.org/documentation/getting-started-guide/theme-localization/ , en regardant la section "Option 2: Utiliser un fichier .mo pour la localisation du thème", cela ressemble à tout ce que je dois faire est d'entrer la textdomain
pour le thème.
Le problème, c'est que je ne sais pas ce que c'est ou comment le trouver. J'ai essayé de fouiller dans les fichiers de thèmes eux-mêmes, mais toute sortie de texte est abstraite derrière de nombreuses couches de fonctions. Pour aggraver les choses, ni moi ni mon client n’avons un compte d’assistance avec les fournisseurs de thèmes (mais nous avons une licence valide!) Et ils ne nous sont d'aucune aide.
Comment trouver le domaine de texte permettant à WPML de fonctionner avec ce thème?
Update
Lorsque j'ouvre un des fichiers .po, je vois des lignes telles que:
#: template-part-teaser.php:41
#@ Nevada
msgid "404 Error"
msgstr "404 Error"
J'ai donc essayé d'entrer "Nevada" en tant que domaine de texte dans le plugin WPML, mais cela n'a rien changé pour moi.
Dans le code, pouvez-vous voir une syntaxe semblable à l'une des suivantes?
__( 'Hello, dear user!', 'my-text-domain' )
_e( 'Your Ad here', 'my-text-domain' )
C'est-à-dire les chaînes commençant par __ (doubles soulignements) ou _e. Si tel est le cas, où ce qui précède indique my-text-domain, vous devez rechercher le nom de votre domaine de texte.
Dans la plupart des cas, la réponse de @ vancoder est absolument correcte. Ma situation semble être assez unique, mais je souhaite partager mon expérience afin d’aider une autre personne.
Dans le cas de ce thème Nevada, les fonctions standard ne sont pas utilisées dans les fichiers de modèle. Apparemment, le Nevada utilise le framework Lambda (quelque chose de totalement étranger à moi) et toute sortie de texte se produit avec un appel de fonction lambda_translate. Après avoir creusé et creusé, j’ai renoncé à essayer de retracer ces fonctions jusqu’à un appel __()
ou _e()
.
Au lieu de cela, pour trouver le domaine de texte, j'ai mis mon chapeau Linux et saisi cette commande dans le dossier du thème Nevada.
grep -r "load_theme_textdomain" .
Effectivement, dans le fichier functions.php, la fonction load_theme_textdomain était présente avec text-domain.