client.ts 956 B

123456789101112131415161718192021222324252627282930313233
  1. "use client";
  2. import { createI18nClient } from "next-international/client";
  3. // NOTE: Also update middleware.ts to support locale
  4. export const languages = ["en", "fr", "es"];
  5. export const { useI18n, useScopedI18n, I18nProviderClient, useChangeLocale, defineLocale, useCurrentLocale } = createI18nClient(
  6. {
  7. en: async () => {
  8. await new Promise((resolve) => setTimeout(resolve, 100));
  9. return import("./en");
  10. },
  11. fr: async () => {
  12. await new Promise((resolve) => setTimeout(resolve, 100));
  13. return import("./fr");
  14. },
  15. es: async () => {
  16. await new Promise((resolve) => setTimeout(resolve, 100));
  17. return import("./es");
  18. },
  19. },
  20. {
  21. // Uncomment to set base path
  22. // basePath: '/base',
  23. // Uncomment to use custom segment name
  24. // segmentName: 'locale',
  25. // Uncomment to set fallback locale
  26. // fallbackLocale: en,
  27. },
  28. );
  29. export type TFunction = Awaited<ReturnType<typeof useI18n>>;