Soporte » Guías – Resolución de problemas » Los comentarios no se traducen completamente

  • Resuelto monchomartinez

    (@monchomartinez)


    Hola, tengo mi web en wp en español con una plantilla a la cual he añadido yo la traducción. Me encuentro con que ciertas partes de la web no responden a ninguna de las traducciones, por ejemplo en los comentarios me sigue poniendo el botón de submit commnent o your commnent* y otros dentro de las cajas de texto.

    En el fichero de idiomas de wp están las entradas correspondientes:

    #: wp-includes/theme-compat/comments.php:91
    msgid "Submit Comment"
    msgstr "Enviar comentario"

    Y en el de la plantilla:

    #: ../comments.php:75
    msgid "Submit Comment"
    msgstr "Enviar comentario"

    Alguien sabe porque no me funciona???

Viendo 15 respuestas - 1 de 15 (de 19 total)
  • Hola,

    Que tema usas? o,
    Que version de WP estas usando?

    Para arreglar esas frases o palabras que no traducen debemos saber eso.
    Ya luego te diremos donde bajar el archivo para actualizar tu traducción.

    zp
    http://www.paginas.in

    Hola, la versión la puse en el post, es la 3.6.
    El tema no lo tengo ahora a mano, pero entiendo que debe ser compatible.

    Lo que no entiendo es que si tengo los textos traducidos en los .po no me tenga en cuenta estos y otros si.

    Hola,

    Asumo entonces que no estas usando ningún tema, entonces debes estar usando el «twentytwelve» o «twentythirteen». Si no es así dime que tema usas.

    Entonces, en alguna actualización de WordPress, los archivos q contienen la traducción no fueron actualizados. Lo que tienes que hacer es colocar los archivos «es_ES.mo» que contiene los updates y que te envio a continuación en:
    ->tupagina.com->wp-content/themes/twentythirteen/languages/es_ES.mo

    Puedes bajar el archivo para twentythirteen aca y para twentytwelve aca.

    Bueno, si algún link no te funciona o la traducción no te funciona mandanos el enlace a tu página y con gusto te ayudaremos.

    zp
    http://www.paginas.in

    Hola zuperpaginas, el tema que uso es uno de pago, este en concreto: http://www.templatemonster.com/demo/39275.html

    La web la tengo en local ahora mismo, no tengo acceso para darte. Y hemos realizado la instalación desde cero, no se ha actualizado y no ha podido quedar pendiente ningún archivo.

    He generado yo la traducción con el Poedit a partir del fichero de traducción del tema, que solamente estaba en inglés, y como he dicho, los textos están traducidos dentro del mismo pero no me los pilla, concretamente los de los comentarios del blog: NO COMMENT, SUBMIT COMMENT, los de dentro de los cuadros de texto,…

    Alguna idea de donde está el problema??

    Mira a ver si en los archivo de código, puede que en comments.php, no conozco ese tema, esas cadenas de texto tengan el «text domain» cambiado. Por ejemplo lo siguiente sería una cadena de texto en un archivo de código lista para ser traducida:
    <?php e_( 'Submit Comment', 'mitextdomain' ); ?>

    mitextdomain sería el text domain del theme. A mi me ha pasado que en algún theme la mayoría de las cadenas tenían un text domain pero algunas tenían otro, y aunque en el Poedit las veía y las traducía, luego WordPress no tenía en cuenta la traducción.

    Un saludo,

    Hola,

    Tienes que fijarte si el archivo que traduce el tema, es_ES.mo, existe. Usualmente esta en:
    /tupaginas.com/wp-content/themes/NOMBREDELTEMA/languages/

    Sino existe, en este mismo lugar vas a encontrar un archivo llamado: nombredeltema.pot, este archivo lo puedes abrir con el POEdit y traducirlo.
    Luego de que lo traduzcas, cambiale el nombre a es_ES.mo y listo !!

    Dejanos saber si eso te funciono.

    zp
    http://www.paginas.in

    zuperpaginas:
    El fichero existe, me lo creó el Poedit al traducir el .po, y no veo ningún .pot por ningún lado en esta carpeta. Solamente un .po y un .mo para cada idioma.

    maperezotero:
    En principio parece que si corresponden aunque no se si lo estoy mirando bien. En el .po tengo esto:

    #: ../comments.php:75
    msgid "Submit Comment"
    msgstr "Enviar comentario"

    y en el php esto:

    <p><input name="submit" type="submit" id="submit" tabindex="5" value="<?php _e('Submit Comment', 'theme1234'); ?>" />
    <?php comment_id_fields(); ?>
    </p>

    y la línea si es la 75 en el php, si es que se refiere a eso.

    Vamos, que no se donde está el problema…

    En la línea que me pones, el text domain sería theme1234.
    Es en los .php donde debes mirar. Busca en ese fichero del que me has puesto esa línea o en cualquier otro donde tengas una cadena de texto que si este bien traducida y mira lo que te pone. Si la cadena bien traducida te pone otro text domain, úsalo en las cadenas que no se traducen.
    No se si me he explicado :).

    Tambíen puedes mirar en el archivo style.css a ver si al principio de todo, donde te viene el nombre del theme, el autor, etc. te aparece una línea como esta:

    Text Domain: lo_que_sea

    Un saludo

    Hola,

    Creo que estas mirando en la carpeta equivocada.

    Van a existir varias carpetas llamadas: «LANGUAGES». Dependiendo de los temas, plugins, etc… que tengas instalado. Entonces, dentro de cada una de esas carpetas, debe de haber un archivo «es_ES.mo» que contiene la traducción de dicho plugin o tema, etc…

    Yo creo que tu estas mirando la carpeta «languages» que se encuentra en la base de WordPress, la que tiene la traducción básica para WordPress pero no contiene la traducción del tema, por lo tanto no esta traduciendo EL TEMA !!

    Entonces, ese archivo «es_ES.mo» copialo y ponlo en la carpeta «LANGUAGES», que debe estar en:
    /wp-contents/themes/theme1234/LANGUAGES/

    Fijate bien en la ruta !!!

    Dejanos saber que paso…

    zp
    http://www.paginas.in

    Gracias a ambos!! maperezotero has dado en el clavo, ese era el problema. Mira que pagar por un template y que traiga estos fallos…

    Solo una pega me queda con este tema, en esta página (aqui) pone el numero de comentarios que tiene cada post. Y esa palabra no la doy encontrado, no se que página php es, lo único que encuentro es este código pero no tiene text domain como en los otros casos (comment-template.php):

    if ( false === $zero ) $zero = __( 'No Comments' );
    	if ( false === $one ) $one = __( '1 Comment' );
    	if ( false === $more ) $more = __( '% Comments' );
    	if ( false === $none ) $none = __( 'Comments Off' );

    Supongo que esto lo coge de la traducción de wordpress y no del tema, pero allí si la veo:

    #: wp-includes/comment-template.php:582 wp-includes/comment-template.php:973
    msgid "No Comments"
    msgstr "No hay comentarios"
    
    #: wp-includes/comment-template.php:584 wp-includes/comment-template.php:974
    msgid "1 Comment"
    msgstr "1 comentario"
    
    #: wp-includes/comment-template.php:580 wp-includes/comment-template.php:975
    msgid "% Comments"
    msgstr "% comentarios"

    Guau!! Que intriga!! 🙂
    ¿¿Qué será?? 🙂

    zuperpaginas, mira la ruta que aparece en las líneas de código de los ficheros .po

    #: ../comments.php:75
    msgid "Submit Comment"
    msgstr "Enviar comentario"

    fijate que la ruta indicada para el fichero comments.php baja un directorio y la ubicación típica de los ficheros .po .mo es
    directoriodeltheme/languages/fichero.po
    osea que el fichero existe y está en su sitio.
    Yo creo que una de dos, o el nombre del fichero no es es_ES.mo o es cosa del textdomain.

    Otra cadena típica que se encuentra en los ficheros del theme es el típico Read more… o si está traducida Sigue leyendo… o algo por el estilo. Si el enlace Sigue leyendo aparece traducido casi seguro que es cosa del textdomain.

    Otra cosa que he visto en la demo del theme en el fichero style.css, es que el nombre del theme es theme1581 y el text domain que aparece en la cadena del fichero comments.php que pone moncho es theme1234. Poner un textdomain equivocado me lo he encontrado en themes de autores considerados de «Élite» en Themeforest. Suele ser fruto del copiar y pegar y las prisas.

    En cualquier caso, monchomartinez, como dice zp…

    POR DIOS!! DÉJANOS SABER QUE PASÓ!! 🙂

    Un saludo 😉

    Estábamos escribiendo al mismo tiempo 🙂
    Si no trae textdomain pónselo tu. Prueba lo siguiente:

    if ( false === $zero ) $zero = __( 'No Comments', 'tutextdomain' );
    	if ( false === $one ) $one = __( '1 Comment', 'tutextdomain' );
    	if ( false === $more ) $more = __( '% Comments', 'tutextdomain' );
    	if ( false === $none ) $none = __( 'Comments Off', 'tutextdomain' );

    No se si tendrás que editar otra vez el fichero .po, prueba y nos dices.

    Hola maperezotero,

    entiendo que el post anterior ya nada no? me ha liado un poco jeje ;).

    El problema es que no se si esa página .php que te digo es la correcta, si es ahí donde poner el textdomain y cual es, ya que al ser traducción del wordpress y no del tema no llevaría la misma. ¿donde veo que textdomain debe llevar? el resto de traducciones del mismo php no llevan tampoco… :_(

    Buenas, el post de antes si, olvidálo, estábamos escribiendo a la vez.
    El otro post donde te digo que le añadas el textdomain olvidálo también. No me he dado cuenta de que esa página php era del core de WordPress, eso no lo toques.
    Para saber donde estan esas cadenas que te faltan por traducir necesitaría ver la estructura del theme. Pueden estar en el index.php o en content.php, ya depende de como hayan hecho el theme. Lo que puedes hacer es descarcargar e instalar Notepad++, si no lo tienes ya. Una de las funciones que tiene Notepad++ es la de búsqueda de cadenas en directorios completos. Está en el menú Buscar->Buscar en archivos, pon la cadena a buscar en Buscar, ignora el recuadro Reemplazar con (no te va a cambiar nada si no le das al botón Reemplazar en todos), y en Carpeta seleccionas el directorio del theme.
    Te saldran los ficheros que contienen la cadena a buscar y la línea en la que se encuentra.
    Ya pones por aquí el resultado. Puede que pase lo mismo que con el problema anterior.

    Un saludo

    La encontré!! Está en index.php del theme:

    <?php comments_popup_link('No comments', '1 comment', '% comments', 'comments-link', 'Comments are closed'); ?>

    y ahora que? tengo que añadir una traducción nueva? en que fichero?

Viendo 15 respuestas - 1 de 15 (de 19 total)
  • El debate ‘Los comentarios no se traducen completamente’ está cerrado a nuevas respuestas.