Hay un segundo argumento en la __()
función. Debe establecerse en el dominio que está utilizando para su complemento o tema. En los ejemplos a continuación utilizo 'text_domain'
. Su cadena de dominio debe ser única. No debe coincidir con ninguna otra cadena de dominio. No usar un argumento de dominio de texto predeterminado es 'default'
el nombre de dominio de WordPress. Vea el vínculo para mas detalles.
Siempre use la cadena ( 'text_domain'
). Nunca use una variable, función o constante con la cadena. La mayoría de los programas de traducción (¿todos?) No lo verán sin la cadena allí.
Tu codigo:
echo __( 'Hello ' . $first . ' you own me money.' );
No incluya variables en la cadena.
Una mejor manera:
echo sprintf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
O solo:
printf( __( 'Hello %s you own me money.', 'text_domain' ), $first );
El %s
marcador de posición le dice al traductor humano que hay una cadena allí. Usar %d
para números. También hay otros marcadores de posición .
(Esta oración es un inglés gramaticalmente incorrecto. Úselo 'Hello %s, you owe me money.'
o 'Hello %s, you own my money.'
dependiendo del significado que estaba intentando)
Tu codigo:
$html = '<div><p>Top: ' . $t_margin . '</p>' . <p>Bottom: ' . $b_margin . '</p></div>';
No traduzcas HTML. Es lo mismo en cualquier idioma.
Una mejor manera:
$html = sprintf( '<div><p>%s</p><p>%s</p></div>', __( 'Top: ', 'text_domain' ) . $t_margin, __( 'Bottom: ', 'text_domain' ) . $b_margin );
O divídalo en varias líneas:
$html = sprintf(
'<div><p>%s</p><p>%s</p></div>',
__( 'Top: ', 'text_domain' ) . $t_margin,
__( 'Bottom: ', 'text_domain' ) . $b_margin
);
Si no es evidente qué son Arriba y Abajo , puede usar el _x()
para explicar el contexto de estos términos.
Puede encontrar otros casos de traducción aquí: Internacionalización: probablemente lo esté haciendo mal