2009-10-12 7 views
2

Je voudrais avoir wordpress pour faire I18N pour mon javascript. Mon plan est d'avoir du code javascript dans le fichier php. Par exemple, un fichier sample.js.php comme ci-dessous:Comment faire fonctionner __() et _e() dans n'importe quel fichier PHP de wordpress?

function foo() 
{ 
    alert(<?php _e('do something'); ?>); 
} 

Le fichier sample.js.php est désigné comme javascript.

<script type='text/javascript'>url-to-myplugin/sample.js.php</script> 

Cependant, il semble que __() et _e() ne fonctionnent pas car ils ne sont pas définis. Comment faire fonctionner _e() et __() dans mon cas?

Merci


Je trouve la réponse. Le code ci-dessous fera le travail.

<?php 
    define('WP_USE_THEMES', false); 
    require('./wp-blog-header.php'); 
?> 
+0

bien vous devez trouver où __() et _e() est définie et il suffit d'inclure le fichier? – mauris

+0

Ils sont définis dans l10n.php, mais comprennent simplement que ce fichier unique ne fonctionne pas. Je suppose qu'il y a plus d'API sur étagère pour inclure les fichiers nécessaires. –

Répondre

-1

Avez-vous installé gettext extenssion?

+0

wordpress devrait avoir l'extension gettext. –

1

comprennent simplement le fichier de configuration WP dans script sample.js.php:

<?php require_once 'your-path-to/wp-config.php'; ?> 

function foo() 
{ 
    alert(<?php _e('do something'); ?>); 
} 
+0

nécessite wp-config.php pour qu'il affiche le caractère poubelle. J'ai trouvé la réponse. wp-blog-header.php est bon pour l'utilisation. –

+0

Oui, wp-blog-header.php pourrait aussi fonctionner. Je charge généralement wp-config.php, car certains de mes fichiers plug-in nécessitent une connexion à la base de données. Quant au problème avec wp-config.php, il a probablement un espace de fin, une ligne vide, ou tout autre caractère juste après la fermeture php-tag. Il peut être dans n'importe quel autre fichier WP inclus lors de la charge cependant. Je supprime généralement ces symboles, et en fait ils sont déjà supprimés dans la dernière version de WP (2.8.4 pour le moment), donc je n'ai pas vu de caractères corrompus pendant le test. –

Questions connexes