| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- import type {
- i18n,
- ApplyTarget,
- ConstrainTarget,
- GetSource,
- ParseKeys,
- Namespace,
- SelectorFn,
- TypeOptions,
- TOptions,
- TFunction,
- } from 'i18next';
- import * as React from 'react';
- type _DefaultNamespace = TypeOptions['defaultNS'];
- type _EnableSelector = TypeOptions['enableSelector'];
- type TransChild = React.ReactNode | Record<string, unknown>;
- type $NoInfer<T> = [T][T extends T ? 0 : never];
- export type TransProps<
- Key extends ParseKeys<Ns, TOpt, KPrefix>,
- Ns extends Namespace = _DefaultNamespace,
- KPrefix = undefined,
- TContext extends string | undefined = undefined,
- TOpt extends TOptions & { context?: TContext } = { context: TContext },
- E = React.HTMLProps<HTMLDivElement>,
- > = E & {
- children?: TransChild | readonly TransChild[];
- components?: readonly React.ReactElement[] | { readonly [tagName: string]: React.ReactElement };
- count?: number;
- context?: TContext;
- defaults?: string;
- i18n?: i18n;
- i18nKey?: Key | Key[];
- ns?: Ns;
- parent?: string | React.ComponentType<any> | null; // used in React.createElement if not null
- tOptions?: TOpt;
- values?: {};
- shouldUnescape?: boolean;
- t?: TFunction<Ns, KPrefix>;
- };
- export interface TransLegacy {
- <
- Key extends ParseKeys<Ns, TOpt, KPrefix>,
- Ns extends Namespace = _DefaultNamespace,
- KPrefix = undefined,
- TContext extends string | undefined = undefined,
- TOpt extends TOptions & { context?: TContext } = { context: TContext },
- E = React.HTMLProps<HTMLDivElement>,
- >(
- props: TransProps<Key, Ns, KPrefix, TContext, TOpt, E>,
- ): React.ReactElement;
- }
- export interface TransSelectorProps<
- Key,
- Ns extends Namespace = _DefaultNamespace,
- KPrefix = undefined,
- TContext extends string | undefined = undefined,
- TOpt extends TOptions & { context?: TContext } = { context: TContext },
- > {
- children?: TransChild | readonly TransChild[];
- components?: readonly React.ReactElement[] | { readonly [tagName: string]: React.ReactElement };
- count?: number;
- context?: TContext;
- defaults?: string;
- i18n?: i18n;
- i18nKey?: Key;
- ns?: Ns;
- parent?: string | React.ComponentType<any> | null; // used in React.createElement if not null
- tOptions?: TOpt;
- values?: {};
- shouldUnescape?: boolean;
- t?: TFunction<Ns, KPrefix>;
- }
- export interface TransSelector {
- <
- Target extends ConstrainTarget<TOpt>,
- Key extends SelectorFn<GetSource<$NoInfer<Ns>, KPrefix>, ApplyTarget<Target, TOpt>, TOpt>,
- const Ns extends Namespace = _DefaultNamespace,
- KPrefix = undefined,
- TContext extends string | undefined = undefined,
- TOpt extends TOptions & { context?: TContext } = { context: TContext },
- E = React.HTMLProps<HTMLDivElement>,
- >(
- props: TransSelectorProps<Key, Ns, KPrefix, TContext, TOpt> & E,
- ): React.ReactElement;
- }
- export const Trans: _EnableSelector extends true | 'optimize' ? TransSelector : TransLegacy;
- export type ErrorCode =
- | 'NO_I18NEXT_INSTANCE'
- | 'NO_LANGUAGES'
- | 'DEPRECATED_OPTION'
- | 'TRANS_NULL_VALUE'
- | 'TRANS_INVALID_OBJ'
- | 'TRANS_INVALID_VAR'
- | 'TRANS_INVALID_COMPONENTS';
- export type ErrorMeta = {
- code: ErrorCode;
- i18nKey?: string;
- [x: string]: any;
- };
- /**
- * Use to type the logger arguments
- * @example
- * ```
- * import type { ErrorArgs } from 'react-i18next';
- *
- * const logger = {
- * // ....
- * warn: function (...args: ErrorArgs) {
- * if (args[1]?.code === 'TRANS_INVALID_OBJ') {
- * const [msg, { i18nKey, ...rest }] = args;
- * return log(i18nKey, msg, rest);
- * }
- * log(...args);
- * }
- * }
- * i18n.use(logger).use(i18nReactPlugin).init({...});
- * ```
- */
- export type ErrorArgs = readonly [string, ErrorMeta | undefined, ...any[]];
|