client.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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", "zh-CN", "ru", "pt"];
  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. "zh-CN": async () => {
  20. await new Promise((resolve) => setTimeout(resolve, 100));
  21. return import("./zh-CN");
  22. },
  23. ru: async () => {
  24. await new Promise((resolve) => setTimeout(resolve, 100));
  25. return import("./ru");
  26. },
  27. pt: async () => {
  28. await new Promise((resolve) => setTimeout(resolve, 100));
  29. return import("./pt");
  30. },
  31. },
  32. {
  33. // Uncomment to set base path
  34. // basePath: '/base',
  35. // Uncomment to use custom segment name
  36. // segmentName: 'locale',
  37. // Uncomment to set fallback locale
  38. // fallbackLocale: en,
  39. },
  40. );
  41. export type TFunction = Awaited<ReturnType<typeof useI18n>>;