Tengo un problema con la función __() en PHP. En mi proyecto de Wordpress, estoy haciendo una devolución de llamada de ajax para obtener la traducción por una razón que no se puede evitar. Durante la devolución de llamada, consulté desde la base de datos. Por ejemplo, 'SELECCIONE el título de los productos'. El valor de 'título' es "¡ABC es tan fácil como 123!"
Entonces necesito devolver el valor al front-end. Pero tiene que estar en el idioma de preferencia del usuario. es decir, chino. Así que tendré que devolverlo como 'ABC 就像 123 一样简单!'.
Hasta ahora, he probado _e(), __(), gettext() en la función de devolución de llamada, pero nada de esto resuelve el problema. Probarlo en la página de PHP (como html) no tiene ningún problema.
Código JS:
function translation(text){ console.log("text=",text); var res=""; $.ajax({ url: ajaxurl, data: {action:"get_translations",text:text}, async: false, success: function(response) { res = JSON.parse(response); console.log("res=",res); } }); return res; }Código PHP:
function get_translations($data){ $text = _( $data["text"] ); $text = gettext($data["text"]); error_log("text = ".$text.";"); error_log("gettext=".gettext("My Membership").";"); echo wp_json_encode($text); }Editar: también debo mencionar que la función PHP get_translations () está en el tema, no en el complemento.