next-intlayer
Version:
Simplify internationalization i18n in Next.js with context providers, hooks, locale detection, and multilingual content integration.
32 lines • 902 B
JavaScript
"use client";
import { getLocalizedUrl, getPathWithoutLocale } from "@intlayer/core";
import { usePathname, useRouter } from "next/navigation.js";
import { useCallback, useMemo } from "react";
import { useLocale as useLocaleReact } from "react-intlayer";
const useLocale = () => {
const { push, refresh } = useRouter();
const pathname = usePathname();
const pathWithoutLocale = useMemo(
() => getPathWithoutLocale(pathname),
[pathname]
);
const redirectionFunction = useCallback(
(locale) => {
const pathWithLocale = getLocalizedUrl(pathWithoutLocale, locale);
push(pathWithLocale);
return refresh();
},
[refresh, pathWithoutLocale]
);
const reactLocaleHook = useLocaleReact({
onLocaleChange: redirectionFunction
});
return {
...reactLocaleHook,
pathWithoutLocale
};
};
export {
useLocale
};
//# sourceMappingURL=useLocale.mjs.map