es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Inserte formato/componentes entre palabras en i18n-js.

Estoy utilizando i18n-js en una aplicación de React Native, también Expo y expo-localization. Aunque la biblioteca proporciona interpolación para cadenas traducidas, no encontré una manera de insertar componentes o estilos de React o React Native entre palabras para proporcionar un mejor formato.

Por ejemplo:

// es.js
// ...
{
  "bold": "Una palabra estará <b>en negrita</b> dentro de esta cadena."
}

// Crear la cadena de i18n
const B = (props) => <text style="{{fontWeight:" 'bold'}}="">{props.children}</text>
console.log( I18n.t("bold") );

Esperado:
Una palabra estará en negrita dentro de esta cadena

Lo que obtuve:
Una palabra estará en negrita dentro de esta cadena

¿Cómo puedo agregar estilos a algunas palabras traducidas?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puedes usar el componente de React Native para agregar estilos a algunas palabras traducidas. Por ejemplo, puedes usar el siguiente código para crear una cadena i18n con una palabra en negrita:

    // en.js
    // ...
    {
      "bold": "Una palabra será <B>negrilla</B> dentro de esta cadena."
    }
    
    // crear la cadena i18n
    const B = (props) => <text style="{{fontWeight:" 'bold'}}="">{props.children}</text>
    console.log( I18n.t("bold", { B }) );
    

    Esto producirá la siguiente salida: Una palabra será **negrilla** dentro de esta cadena.

Comments are closed.