Registrar una cadena traducible

pom_translate_register_string( string $name, string $source, string $group = 'polylang', bool $multiline = false ): int crea o actualiza una cadena de origen registrada y devuelve su ID de almacenamiento, o 0 en caso de error.

add_action(
    'init',
    static function (): void {
        if ( function_exists( 'pom_translate_register_string' ) ) {
            pom_translate_register_string( 'acme.checkout.notice', 'Delivery takes 2–3 days.' );
        }
    }
);

Elige un identificador con espacio de nombres estable. El contrato de almacenamiento actual usa el nombre y el valor de origen; los argumentos heredados group y multiline se siguen aceptando, pero no son dimensiones de almacenamiento independientes.

Registra texto estable de interfaz pública, no registros de usuario, datos de pedido, tokens ni valores que cambian en cada petición. El registro escribe en el almacenamiento, así que hazlo en una ruta acotada de inicialización, activación, guardado o migración, en lugar de dentro de un bucle de plantilla.

Cambiar el origen con el mismo nombre actualiza la entrada registrada. Revisa las traducciones después de un cambio semántico del origen.

Leer por nombre de registro

pom_translate_registered_string( string $name, string $source, string $locale = '' ): string lee una traducción usando el mismo nombre estable. Omite el idioma para usar el idioma actual. No registra ni modifica cadenas durante el renderizado.

$source = 'Delivery takes 2–3 days.';
$text = function_exists('pom_translate_registered_string')
    ? pom_translate_registered_string('acme.checkout.notice', $source)
    : $source;
echo esc_html($text);

Usa la búsqueda por nombre cuando originales idénticos necesiten traducciones distintas en contextos distintos. El código que llama debe escapar el resultado según su contexto de salida. Las traducciones ausentes y los valores de origen que ya no coinciden con el registro devuelven el origen proporcionado. Las coincidencias con registros antiguos basados en texto siguen siendo una alternativa cuando no hay traducción por nombre.

El espacio de nombres pom/forms/ pertenece a POM Forms. Esas entradas usan el renderizado explícito de formularios y quedan excluidas de los reemplazos automáticos de texto de origen en el HTML de páginas no relacionadas.