web-dev-qa-db-fra.com

Double soulignement en PHP?

Que signifient les doubles traits de soulignement dans ces lignes de PHP code?)

$WPLD_Trans['Yes']=__('Yes',$WPLD_Domain);
$WPLD_Trans['No']=__('No',$WPLD_Domain);
47
Drahcir

On dirait que vous utilisez Wordpress - wp-includes/l10n.php définit __ comme une fonction qui traduit une chaîne (similaire à gettext et son alias, _ mais avec un paramètre facultatif pour spécifier explicitement un domaine).

58
SimonJ

Strictement parlant, cela ne signifie rien dans PHP car ce n'est pas une fonction prédéfinie. Cependant, dans de nombreux frameworks, comme CakePHP, et d'autres bibliothèques, le double soulignement est une fonction utilisée pour traduire des chaînes basées sur la préférence de langue/locale de l'utilisateur.

37
Mike B

Comme mentionné, il est généralement utilisé pour traduire du texte entre les langues, mais il est en réalité utilisé dans le même contexte que tout appel de fonction.

testfunction();

n'est pas différent alors

__();
6
JasonDavis

WordPress documente sa fonction __ (), qui fait partie de la technologie de localisation ici: https://make.wordpress.org/polyglots/handbook/translating/working-with-core/#localization-technology

Il est difficile de trouver de la documentation car __ (), __ ('') ou __ ("") n'est pas très consultable, les doubles traits de soulignement et les parenthèses (crochets) sont des mots-clés à utiliser.

5
PaulH

Une implémentation similaire ou tierce GNU gettext :

http://www.php.net/manual/en/function.gettext.php

Remarque: vous pouvez utiliser le caractère de soulignement "_" comme alias de cette fonction.

2
knoopx