react-intlayer
Version:
Easily internationalize i18n your React applications with type-safe multilingual content management.
23 lines • 1.36 kB
TypeScript
import type { LocalesValues } from '@intlayer/config/client';
import type { DictionaryKeys, GetSubPath, ValidDotPathsFor } from '@intlayer/core';
import type { DeepTransformContent } from '../plugins';
import { type IntlayerDictionaryTypesConnector } from 'intlayer';
/**
* Hook that provides a translation function `t()` for accessing nested content by key.
* This hook mimics the pattern found in libraries like i18next, next-intl, and vue-i18n.
*
* @param namespace - The dictionary key to scope translations to
* @param locale - Optional locale override. If not provided, uses the current context locale
* @returns A translation function `t(key)` that returns the translated content for the given key
*
* @example
* ```tsx
* const t = useI18n('IndexPage');
* const title = t('title'); // Returns translated string for 'IndexPage.title'
* const nestedContent = t('section.subtitle'); // Returns 'IndexPage.section.subtitle'
* // For attributes like `aria-label`, use `.value` to get the plain string
* const ariaLabel = t('button.ariaLabel').value; // 'Close modal'
* ```
*/
export declare const useI18n: <T extends DictionaryKeys>(namespace: T, locale?: LocalesValues) => <P extends ValidDotPathsFor<T>>(path: P) => GetSubPath<DeepTransformContent<IntlayerDictionaryTypesConnector[T]["content"]>, P>;
//# sourceMappingURL=useI18n.d.ts.map