client.ts 1.1 KB

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