UNPKG

next-intl

Version:

Internationalization (i18n) for Next.js

39 lines (36 loc) 1.4 kB
import { cache } from 'react'; import getServerTranslator from './getServerTranslator.js'; // Note: This API is usually compiled into `useTranslations`, // but there is some fallback handling which allows this hook // to still work when not being compiled. // // This is relevant for: // - Isolated environments like tests, Storybook, etc. // - Fallbacks in case an extracted message is not yet available function getServerExtractorImpl(config, namespace) { const t = getServerTranslator(config, namespace); function translateFn(...[message, values, formats]) { return t(undefined, values, formats, // @ts-expect-error -- Secret fallback parameter message ); } translateFn.rich = function translateRichFn(...[message, values, formats]) { return t.rich(undefined, values, formats, // @ts-expect-error -- Secret fallback parameter message ); }; translateFn.markup = function translateMarkupFn(...[message, values, formats]) { return t.markup(undefined, values, formats, // @ts-expect-error -- Secret fallback parameter message ); }; translateFn.has = function translateHasFn( // eslint-disable-next-line @typescript-eslint/no-unused-vars ...[message]) { // Not really something better we can do here return true; }; return translateFn; } var getServerExtractor = cache(getServerExtractorImpl); export { getServerExtractor as default };