Il y a un deuxième argument dans la __()
fonction. Il doit être défini sur le domaine que vous utilisez pour votre plugin ou votre thème. Dans les exemples ci-dessous, j'utilise 'text_domain'
. Votre chaîne de domaine doit être unique. Il ne doit correspondre à aucune autre chaîne de domaine. Ne pas utiliser d'argument de domaine de texte par défaut sur 'default'
le nom de domaine WordPress. Voir le lien pour plus de détails.
Utilisez toujours la chaîne ( 'text_domain'
). N'utilisez jamais une variable, une fonction ou une constante contenant la chaîne. La plupart (tous?) Des programmes de traduction ne le verront pas sans la chaîne.
Votre code:
echo __( 'Hello ' . $first . ' you own me money.' );
N'incluez pas de variables dans la chaîne.
Une meilleure façon:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
Ou juste:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
L' %s
espace réservé indique au traducteur humain qu'une chaîne y entre. Utilisez %d
pour les nombres. Il existe également d' autres espaces réservés .
(Cette phrase est grammaticalement incorrecte en anglais. Utilisez soit 'Hello %s, you owe me money.'
ou 'Hello %s, you own my money.'
selon la signification que vous vouliez.)
Votre code:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
Ne traduisez pas HTML. C'est la même chose dans toutes les langues.
Une meilleure façon:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
Ou divisez-le en plusieurs lignes:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Si vous ne savez pas quels sont le haut et le bas, vous pouvez utiliser le _x()
pour expliquer le contexte de ces termes.
Vous pouvez trouver d'autres cas de traduction ici: Internationalisation: vous vous trompez probablement