J'utilise le dernier WordPress 3.3.1 et le plus récent qTranslate 2.5.27. J'ai créé un script AJAX qui renvoie une valeur et un message dans la langue actuelle.
Ici, j'ai mon premier problème, je le résous en envoyant AJAX lang
à partir de qtrans_getLanguage()
et en utilisant des messages avec qtrans_use($lang, '<!--:pl-->PL message<!--:--><!--:de-->DE message<!--:-->');
J'ai un wp_option dans DB: 'example' = '<!--:pl-->polish text<!--:--><!--:de-->deutschland text<!--:-->'
et en utilisant get_option('example')
je reçois toujours Polish text
.
J'essayais de setlocale
dans PHP mais sans résultat positif.
get_option()
fonctionne correctement dans n'importe quel fichier ou modèle php WordPress, mais pas dans mon AJAX ...
EDIT: Dans le modèle:
$.post('<?php echo get_bloginfo( 'template_url' ); ?>/sendmail.php', {
message: input_message,
lang: input_lang
}
Dans sendmail.php:
'destination_email' is set to '<!--:pl-->[email protected]<!--:--><!--:de-->[email protected]<!--:-->'
$mail = _e(get_option('destination_email'));
Toujours recevoir des emails polonais ... même
'setlocale(LC_ALL, 'de_DE')'
Maintenant j'utilise un email hardcode
$mail = qtrans_use($lang, '<!--:pl-->[email protected]<!--:--><!--:de-->[email protected]<!--:-->');
...
J'imagine que vous utilisez des balises de langue autour de 'texte polonais textdeutschland', c'est-à-dire <!--:pl-->polish text<!--:--><!--:de-->deutschland text<!--:-->
, mais qu'elles ont été ignorées lorsque vous avez posté votre réponse.
Je suis à peu près sûr que vous devez utiliser les fonctions wordpress de __()
(qui renvoie la traduction pour une utilisation dans le code php) et de _e()
(de echo directement à l'écran). Si vous consultez le forum d’assistance qTranslate FAQ n ° 14 , il utilise l’exemple suivant:
<?php _e("<!--:en-->english text<!--:--><!--:de-->german text<!--:-->"); ?>
Dans votre cas, je pense que vous voulez utiliser:
<?php __(get_option('example')); ?>
Cela suppose que vous l'utilisez dans votre plugin. Si vous l'utilisez dans un modèle de page, vous utiliseriez:
<?php _e(get_option('example')); ?>