Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

241
Vistas
Cómo manejar la traducción de textos dentro de un .js de un tema de WP

Tengo una aplicación de wordpress y generalmente uso la función PHP <?php _e('foo', 'bar') ?> cuando necesito hacer eco de algo que necesita ser traducido. Pero, en este momento estoy implementando una nueva función y en mi archivo .js tengo algo como

 var confirmation = confirm("Are you sure you want to quit"); if(confirmation){ ... }

El problema con el código anterior es que no puedo usar la función PHP _e() para traducirlo, ya que es un script JS.

¿Hay alguna forma de habilitar la traducción de textos repetidos en JS?

Después de RECOMPENSA

Estoy poniendo una recompensa ya que las preguntas dadas son genéricas, mientras que estoy buscando una solución que pueda resolver mi problema.

Estoy trabajando en un proyecto WP que fue creado por alguien antes. Se supone que solo debo agregar una traducción a los códigos que existen en el archivo js llamado functions.js ruta: C:\Users\meskerem\foo.com\wp-content\themes\foo\assets\scripts\functions.js supongamos que El siguiente código existe dentro de la función.

 var confirmation = confirm("Are you sure you want to quit"); if(confirmation){ ... }

Ahora el objetivo es hacer que esa oración en inglés sea traducible. El código js anterior se ejecuta cuando se hace clic en un botón dentro de este archivo. C:\Users\meskerem\foo.com\wp-content\plugins\wp-jobhunt\templates\dashboards\candidate\templates_ajax_functions.php

El código html que desencadena la traducción es tan simple como:

 <h1> <?= _e('good morning', 'jobhunt') ?> </h1> <div> <i class='icon-trash' onclick="askConfirmation()"> x </i> </div>

Entonces, el guión es simple, pero la traducción es donde tengo algunos problemas.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En Word Press, debe pasar la matriz de traducción al script java respectivo.

por ejemplo,

si está en la secuencia de comandos de la cola como se muestra a continuación desde el archivo function.php,

 wp_enqueue_script( $handle, $src, $deps,$ver,$in_footer );

debe agregar la traducción del archivo de función a js particular usando su identificador dentro de wp_localize_script ();

 eg wp_enqueue_script( 'your-handle', $src, $deps,$ver,$in_footer ); $translation_array = array('messagekey' => __('Are you sure you want to quit', foo'); ); wp_localize_script('your-handle', 'langvars', $translation_array);

En tu caso

 wp_enqueue_script( 'cs_functions_js', plugins_url('/assets/scripts/functions.js', __FILE__ ), '', '', true ); just add below code after above code. $translation_array = array('messagekey' => __('Are you sure you want to quit', foo'); ); wp_localize_script('cs_functions_js', 'langvars', $translation_array);

Luego puede acceder a la traducción en js como,

 var confirmboxmessage = langvars.messagekey; var confirmation = confirm(langvars.messagekey);
about 4 years ago · Santiago Trujillo Denunciar

0

Debe usar la función wp_localize_script , que se agregó a WordPress por este mismo motivo.

Prueba con algo como esto:

 wp_localize_script( $handle, $name, $data );

Ejemplo

 <?php // Register the script wp_register_script( 'some_handle', '<ENTER YOUR SCRIPT PATH HERE>' ); // Localize the script with new data $translation_array = array( 'some_string' => __( 'Some string to translate', 'plugin-domain' ), 'a_value' => '10' ); wp_localize_script( 'some_handle', 'object_name', $translation_array ); // Enqueued script with localized data. wp_enqueue_script( 'some_handle' );

Puede acceder a las variables en JavaScript de la siguiente manera:

 <script> // alerts 'Some string to translate' alert( object_name.some_string); </script>

Nota: Los datos de la llamada de JavaScript resultante se pasarán como texto. Si está tratando de pasar números enteros, deberá llamar a la función parseInt() de JavaScript.

 <script> // Call a function that needs an int. FinalZoom = map.getBoundsZoomLevel( bounds ) - parseInt( object_name.a_value, 10 ); </script>
about 4 years ago · Santiago Trujillo Denunciar

0

tal vez esto podría ayudar

 function addScript() { wp_enqueue_script( 'functions', get_template_directory_uri() . 'foo\assets\scripts\functions.js', array(), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'addScript' );
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda