FPSMS-frontend
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

I18nClientProvider.tsx 1012 B

il y a 10 mois
12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. "use client";
  2. import { createInstance, i18n } from "i18next";
  3. import React, { useMemo } from "react";
  4. import { I18nextProvider } from "react-i18next";
  5. interface Props {
  6. children: React.ReactNode;
  7. language: string;
  8. resources: { [ns: string]: any };
  9. namespaces: string[];
  10. }
  11. export const I18nContext = React.createContext(null);
  12. const I18nProvider: React.FC<Props> = ({
  13. children,
  14. language,
  15. resources,
  16. namespaces,
  17. }) => {
  18. const i18n = useMemo<i18n>(() => {
  19. const instance = createInstance();
  20. instance.init({
  21. resources: {
  22. [language]: resources,
  23. },
  24. fallbackLng: language,
  25. interpolation: {
  26. escapeValue: false,
  27. },
  28. ns: namespaces,
  29. });
  30. return instance as i18n;
  31. // No need to check dependencies since this
  32. // should only be created once from the server
  33. // eslint-disable-next-line react-hooks/exhaustive-deps
  34. }, []);
  35. return <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;
  36. };
  37. export default I18nProvider;