Lo siento si no estoy haciendo esta pregunta correctamente, actualmente, nuestro sistema usa i18next con i18next-http-backend e i18next-browser-languagedetector . El navegador, que utiliza i18next-browser-languagedetector devuelve en-US cuando el navegador utiliza una configuración regional en inglés. Sin embargo, la aplicación nodejs está configurada con i18next-http-backend de manera que las traducciones se configuran en inglés para /public/locales/en/language.json . Ahora el problema es que el paquete i18next se basa en el idioma alternativo porque en-US no se asigna a la ubicación del espacio de nombres/carpeta en ( /public/locales/en/ ).
Lo sé, sería bastante simple cambiar el nombre de la carpeta o cambiar el idioma alternativo a en.
Pero siento que hay una manera de mapear esto o una forma alternativa que no puedo descifrar y no puedo encontrar en los documentos, así que me pregunto si es posible, que cuando el detector de idioma detecte la configuración regional en EE. UU., lo hará mapa a la ubicación /public/locales/en/
¡Cualquier ayuda se agradece, gracias por adelantado!
Tienes que agregar: nonExplicitSupportedLngs: true, en el archivo de configuración de i18next, por ejemplo:
i18next ... .use(LanguageDetector) .init({ supportedLngs: ['en', 'es'], nonExplicitSupportedLngs: true, //support language variation ... });Alternativamente, establezca la opción de load en 'languageOnly' : https://www.i18next.com/overview/configuration-options#languages-namespaces-resources 