Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
Espacios de nombres anidados en i18n

Mi aplicación es bastante grande, así que para tener un archivo de traducción más organizado quiero usar espacios de nombres nasted. Ejemplo:

 { "contract": { "index": { "pageTitle": "Contract" } }

El problema con esto es cuando estoy accediendo a él. Con la ayuda de esta pregunta , descubrí que puedo acceder a las claves dentro del índice usándolo de la siguiente manera:

 const { t, i18n } = useTranslation('contract', { useSuspense: false }); ... t('index.pageTitle')

El problema es que parece bastante innecesario prefijar index. a cada tecla a la que quiero acceder. Lo que me gustaría hacer es importar el índice del espacio de nombres en lugar del contrato y usarlo de la siguiente manera:

 const { t, i18n } = useTranslation('contract:index', { useSuspense: false }); ... t('pageTitle')

Que no funciona. Probé contract.index también. En la documentación oficial no encontré nada sobre anidar. ¿Es posible lograr lo que estoy tratando de hacer o tendré que seguir prexificando cada clave?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Los espacios de nombres anidados no son compatibles .

Puede decorar el useTranslation para proporcionar esta funcionalidad ampliada para las páginas del espacio de nombres.

 import { useTranslation as useTranslationBase } from "react-i18next"; const useTranslation = (ns, page, props={}) => { const trans = useTranslationBase(ns, props); return { ...trans, t: (keys, options) => { let _keys = keys; if (!Array.isArray(keys)) _keys = [String(keys)]; _keys = _keys.map(key =>`${page}.${key}`) return trans.t(_keys, options) } } }

Uso

 export default function () { const { t } = useTranslation('contract', 'index'); return <div>{t(["pageTitle"])}-{t("pageTitle")}</div> }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda