__
(subrayado doble) es la función de traducción base. Traduce una cadena y la devuelve como una cadena.
_e
hace lo mismo que __
, pero el resultado es el inmediato.
_x
es la función de traducción contextual. Tiene una segunda opción para proporcionar contexto a las personas que realizan la traducción.
_ex
es lo mismo que _x
, pero el resultado es eco.
Ejemplo de uso de _x
:
$string = _x( 'Buffalo', 'an animal', 'plugin-domain' );
$string = _x( 'Buffalo', 'a city in New York', 'plugin-domain' );
$string = _x( 'Buffalo', 'a verb meaning to confuse somebody', 'plugin-domain' );
A veces, la misma cadena puede ser diferente en otros idiomas. Proporcionar contexto a los traductores puede ayudarlos a elegir las palabras correctas.
Funciones de acceso directo:
-
esc_attr__
: equivalente a __
pero también ejecuta el resultado a través de esc_attr
.
-
esc_html__
: equivalente a __
pero también ejecuta el resultado a través de esc_html
.
-
esc_attr_e
: equivalente a _e
pero también ejecuta el resultado a través de esc_attr
.
-
esc_html_e
: equivalente a _e
pero también ejecuta el resultado a través de esc_html
.
-
esc_attr_x
: equivalente a _x
pero también ejecuta el resultado a través de esc_attr
.
-
esc_html_x
: equivalente a _x
pero también ejecuta el resultado a través de esc_html
.
_n
es el controlador de pluralización. Ejemplo:
$string = sprintf( _n(
'You have %d taco.',
'You have %d tacos.',
$number,
'plugin-domain'),
$number );
En ese ejemplo, hay dos maneras de decir la cantidad de tacos, dependiendo de si es singular o no. El primer uso de $ number le dice a la función _n
qué versión usar. El segundo uso de $ number ocurre en el sprintf, para reemplazar el% d con el número real en la cadena.
No hay una función de eco equivalente para _n
, pero hay una función llamada _nx
. Es una combinación de _n
y _x
. Pluralización y contexto.
_n_noop
es especial. Se utiliza para traducir cadenas pluralizadas, pero no para realizar la traducción de forma inmediata. Esto es útil si desea centralizar las cadenas pero hacer el trabajo en otro lugar. La función que realmente hace el trabajo en otro lugar es translate_nooped_plural
.
Ejemplo:
$holder = _n_noop('You have %d taco.', 'You have %d tacos.', 'plugin-domain');
// ... later ...
$string = sprintf( translate_nooped_plural( $holder, $count ), $count );
Esto no se usa mucho, pero puede ser útil para la organización. Si pones todas tus cadenas en un archivo, por ejemplo, luego haz referencia a ellas en otro lugar, esto no sería posible con solo _n
, necesitas algo como _n_noop
para hacer eso.
_nx_noop
es lo mismo que _n_noop
, pero también puede tomar un contexto para los traductores, igual que _x
.
Tenga en cuenta que puede poner el dominio en la llamada de función noop o en la llamada de función translate_nooped_plural. Lo que tenga más sentido para su organización. Si ambos tienen un dominio, entonces el que pasa a la llamada noop gana.
number_format_i18n
es el equivalente a number_format incorporado de PHP, pero se agrega el manejo de cosas como decimales, etc., que son diferentes en otros lugares.
date_i18n
es el equivalente a la fecha incorporada de PHP, con todo lo pertinente manejando allí también. Nombres de meses, nombres de días, etc.
Además, nunca infringe las leyes . Simplemente un recordatorio. :)