¿Qué es un textdomain de Tema?

11 dic 2012, 18:43:09
Vistas: 41.8K
Votos: 24

He encontrado que cualquier tema de WordPress usa estas funciones, pero no entiendo cuál es su propósito y qué es, en este caso 'themify'? Aquí hay algunos ejemplos en el archivo functions.php de Themify:

1).

load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );

2).

if (function_exists('register_nav_menus')) {
        register_nav_menus( array(
            'main-nav' => __( 'Navegación Principal', 'themify' ),
            'footer-nav' => __( 'Navegación del Pie', 'themify' ),
        ) );
    }

Y en el archivo de plantilla:

3). <?php _e( 'Lo siento, no se encontró nada.', 'themify' ); ?>

¡Y muchos más! Mi duda es ¿qué significa 'themify'? ¿Cuál es su propósito? ¿Podría cambiarlo o eliminarlo? ¿Para qué es el lugar, 'themify'?

0
Todas las respuestas a la pregunta 1
7
26

En este caso, 'themify' es el textdomain definido para el Tema, utilizado para hacer el Tema traducible. (Referencia del Codex: load_theme_textdomain()).

Preparar un Tema para su traducción requiere algunos pasos.

  1. Definir el textdomain del Tema:

    load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );
    
  2. Definir cadenas traducibles en la plantilla.

    Esto se hace usando una de las funciones de traducción: __() (para cadenas devueltas), _e() (para cadenas impresas), y _x()/_ex() (para cadenas con contexto gettext). Hay otras, pero ya entiendes la idea...

    Una cadena de texto estática, como <p>Hello world!</p>, se envuelve en una función de traducción apropiada, como <p><?php _e( 'Hello World!', 'themify' ); ?></p>, para hacerla disponible para traducción.

  3. Generar los archivos .mo/.po
    referencia sobre cómo editar archivos de idioma

11 dic 2012 18:56:35
Comentarios

@SokVanrithy, consulta esta pregunta y respuesta para saber cómo manejar archivos .mo/.po. (Chip, no he añadido el enlace en tu Respuesta por si tienes otra recomendación:)

brasofilo brasofilo
11 dic 2012 21:51:43

@brasofilo siéntete libre de añadirlo si lo deseas. Creo que está fuera del alcance de la pregunta tal como se formuló, pero sigue siendo información útil.

Chip Bennett Chip Bennett
11 dic 2012 21:55:27

¿Por qué lo cambiarías? ¿Estás haciendo un fork del Tema?

Chip Bennett Chip Bennett
12 dic 2012 05:11:17

Sí, quiero deshacerme de ellos. Descargué un tema de Webdesigndepot, y hace referencia a un tema base. Le pregunté al autor si podría cambiar los códigos originales. Me dijeron que está permitido porque es el tema base en blanco para quienes quieran tener la estructura para un tema personalizado. Además, es un regalo del autor para los lectores. ¡Mi duda es como la mencioné arriba!

Sok Vanrithy Sok Vanrithy
12 dic 2012 09:45:22

Claro que puedes deshacerte de ellos; pero tampoco hace daño simplemente dejarlos. Incluso puedes cambiar el textdomain por una cadena diferente, para hacer referencia a tu tema bifurcado. Las mejores prácticas de desarrollo incluyen hacer que los temas sean traducibles, así que te recomendaría no eliminarlos por completo. Dicho esto, ciertamente puedes hacerlo si así lo decides.

Chip Bennett Chip Bennett
12 dic 2012 15:20:35

Hola Chip, ¿dónde es un lugar común para que un tema tenga la llamada load_theme_textdomain? Necesito encontrar el dominio de texto para un tema en el que estoy trabajando.

parker.sikand parker.sikand
27 jun 2013 23:02:32

"...¿dónde es un lugar común para que un tema tenga la llamada load_theme_textdomain?" - en functions.php, idealmente dentro de una devolución de llamada enganchada a after_setup_theme.

Chip Bennett Chip Bennett
28 jun 2013 01:58:32
Mostrar los 2 comentarios restantes