Files
sharper.ly/apps/web/app/i18n/index.ts
T
2026-09-11 02:46:56 +02:00

79 lines
1.7 KiB
TypeScript

/* ============================================================================
I18N - public surface
----------------------------------------------------------------------------
Import everything from "~/i18n". The sub-modules are implementation detail,
except `~/i18n/config` which loaders and `app/routes.ts` may import directly
to stay clear of anything that pulls in React.
========================================================================= */
export {
DEFAULT_LOCALE,
dirFor,
getLocaleFromPathname,
INTL_LOCALE,
isLocale,
LOCALE_ENDONYM,
LOCALE_SHORT_LABEL,
localeFromRequest,
negotiateLocale,
negotiateLocaleFromRequest,
OG_LOCALE,
parseAcceptLanguage,
SUPPORTED_LOCALES,
} from "./config";
export type { Direction, LanguageRange, Locale } from "./config";
export {
createTranslator,
getMessages,
interpolate,
translate,
} from "./t";
export type {
Messages,
MessageKey,
TranslationKey,
TranslationParams,
Translator,
} from "./t";
export {
alternatePath,
buildLocalizedHref,
getCounterpartLocale,
isCurrentPath,
localeAlternates,
localizedPath,
ROUTE_SECTION_GROUPS,
ROUTE_SLUGS,
ROUTE_SLUG_KEYS,
sectionPath,
sectionSlugPath,
stripLocale,
} from "./paths";
export type {
CounterpartPathOptions,
RouteSectionGroupId,
RouteSlugKey,
} from "./paths";
export {
formatDate,
formatDateRange,
formatDateTime,
formatFileSize,
formatNumber,
intlLocale,
toIsoDate,
} from "./format";
export type { DateStyle } from "./format";
export {
useAlternatePath,
useDirection,
useLocale,
useRouteHandleValue,
useTranslation,
} from "./hooks";
export type { Translation } from "./hooks";