¿Cómo funciona printf( __( ) )?

2 jul 2012, 17:56:39
Vistas: 21.8K
Votos: 12

Hoy estoy trabajando en un tema para obtener una mejor comprensión de WordPress y sus plantillas. Me encontré con esto:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

Sé que muestra "Designed by Blub" (Donde Blub es un enlace) Pero ¿qué significa __() o por qué hay una inserción de cadena? ¿Para qué sirve Anyword?

¿Puede alguien explicarme exactamente esta línea?

0
Todas las respuestas a la pregunta 1
2

Se utiliza para traducir texto.

El segundo argumento es una especie de espacio de nombres (llamado dominio aquí) para recuperar la traducción (por ejemplo, desde un archivo dedicado o algo más).

Así que Anyword aquí, debería ser la persona detrás de la plantilla, la empresa o lo que sea que pueda ser un dominio/espacio de nombres.

edición:

La documentación de WordPress ofrece más explicación sobre cómo internacionalizar un plugin:


Añade esto al código del Plugin para asegurarte de que los archivos de idioma se carguen:

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Para obtener una cadena simplemente usa __('String name','your-unique-name'); para devolver la traducción o _e('String name','your-unique-name'); para imprimir la traducción. Las traducciones irán entonces a la carpeta /languages de tu plugin.


Para tu plugin/tema, el your-unique-name parece ser Anyword.

2 jul 2012 18:03:01
Comentarios

Hay algunos archivos de idioma en el tema. ¿Cómo sabe el argumento usarlos solo para 'Anyword'?

User User
2 jul 2012 18:17:14

He actualizado mi respuesta con una mejor parte de la documentación de WP.

User User
2 jul 2012 18:21:03