client.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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"];
  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. },
  28. {
  29. // Uncomment to set base path
  30. // basePath: '/base',
  31. // Uncomment to use custom segment name
  32. // segmentName: 'locale',
  33. // Uncomment to set fallback locale
  34. // fallbackLocale: en,
  35. },
  36. );
  37. export type TFunction = Awaited<ReturnType<typeof useI18n>>;