UNPKG

react-intlayer

Version:

Easily internationalize i18n your React applications with type-safe multilingual content management.

42 lines (40 loc) 1.32 kB
import { getServerContext } from "../serverContext.mjs"; import { IntlayerServerContext } from "../IntlayerServerProvider.mjs"; import { internationalization } from "@intlayer/config/built"; import { bindIntl } from "@intlayer/core/formatters"; //#region src/server/format/useIntl.ts /** * React client hook that provides a locale-bound `Intl` object. * * It acts exactly like the native `Intl` object, but acts as a proxy to: * 1. Inject the current locale automatically if none is provided. * 2. Use the performance-optimized `CachedIntl` under the hood. * * @example * ```tsx * const intl = useIntl(); // uses context locale * * // Standard API, but no need to pass 'en-US' as the first argument * const formatted = new intl.NumberFormat({ * style: 'currency', * currency: 'USD' * }).format(123.45); * ``` * * @example * ```tsx * const intl = useIntl(); * * // You can still override the locale if needed * const date = new intl.DateTimeFormat({ locale: 'fr-FR' }).format(new Date()); * // or * const date2 = new intl.DateTimeFormat('fr-FR').format(new Date()); * ``` */ const useIntl = (locale) => { const currentLocale = getServerContext(IntlayerServerContext); return bindIntl(locale ?? currentLocale ?? internationalization?.defaultLocale); }; //#endregion export { useIntl }; //# sourceMappingURL=useIntl.mjs.map