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.

react-i18next ignora el parámetro de opciones.

Quería organizar mejor los archivos de traducción de mi proyecto teniendo que anidar objetos en el archivo de idioma.
– Sin anidar, todo funciona bien.
– Incluso anidando objetos, puedo acceder a ellos pasando el directorio de atributos en la función t() (es decir, t(‘sección.subsección.texto’)).
– La solución de la documentación no funciona para mí y no sé por qué.

Ya intenté imprimir la instancia useTranslation para ver si estaba recibiendo el valor “keyPrefix”, pero siempre dice ‘undefined’, ya sea en la función t o en la función fixedT.

El archivo de idioma se ve así:

export const en = {
  sección: {
    subsección: {
      texto: 'mi texto',
    }
  }
}

El archivo donde uso el hook useTranslation:

const { t } = useTranslation('sección', { keyPrefix: 'subsección' });

<h1>{t('texto')}</h1>

Esto está tomado de la documentación:

// teniendo recursos como estos:
/*{
  "traducción": {
    "muy": {
      "profundamente": {
        "anidado": {
          "clave": "aquí"
        }
      }
    }
  }
}*/
// puedes definir un keyPrefix para usar en la función t resultante.
const { t } = useTranslation('traducción', { keyPrefix: 'muy.profundamente.anidado' });
const texto = t('clave'); // "aquí"
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que has intentado seguir la solución de la documentación utilizando la opción “keyPrefix” con el hook useTranslation, pero parece que no está funcionando para ti. Ya has intentado imprimir la instancia useTranslation para ver si está recibiendo el valor “keyPrefix”, pero siempre dice “undefined” en la función t o en la función fixedT.

    Tu archivo de idioma está anidado y quieres acceder a los objetos anidados pasando el atributo directory en la función t(), lo cual parece estar funcionando bien sin anidación.

    No está claro cuál es la solución de la documentación que no está funcionando para ti, pero podrías intentar verificar nuevamente que estás pasando los valores correctos para las opciones “ns” (espacio de nombres) y “keyPrefix” en el hook useTranslation.

    También es posible que haya un problema con la implementación de tu hook useTranslation, por lo que podrías intentar depurar tu código imprimiendo diferentes valores en la consola para ver de dónde podría venir el problema.

    En general, sin más información sobre qué específicamente no está funcionando para ti, es difícil proporcionar una solución más específica.

Comments are closed.