@intl-t/next
Version:
A Fully-Typed Object-Based i18n Translation Library for Next.js
17 lines (16 loc) • 781 B
JavaScript
import { setClientLocale } from "@intl-t/react";
import React from "react";
import { getRequestLocale, getRequestPathname } from "./request";
import { setRequestLocale } from "./request";
import { useLocale, usePathname } from "./router";
export { isClient } from "@intl-t/global";
export const isRSC = !("useEffect" in React);
export function getLocale(preventDynamic = false, defaultLocale) {
// @ts-ignore-error optional binding
return isRSC ? getRequestLocale.call(this, preventDynamic) : useLocale.call(this, defaultLocale);
}
export function setLocale(locale) {
// @ts-ignore-error optional binding
return isRSC ? setRequestLocale.call(this, locale) : setClientLocale.call(this, locale);
}
export const getPathname = isRSC ? getRequestPathname : usePathname;