UNPKG

@jupri-lab/i18n-core

Version:

Speak Easy. Effortless Internationalization for Your JavaScript Apps

46 lines (40 loc) 1.1 kB
export interface Ii18nConfigs< TLanguage extends string, TResources extends object, > { /** * Flag to enable adding query params for current language */ enableQueryParams?: boolean; /** * An array of languages that wants to be supported */ languages: TLanguage[]; /** * To read current language through query param */ queryParam?: string; resources: Record<TLanguage, TResources> | undefined; } export type TNestedKeyOf<T extends object> = { [Key in keyof T]: T[Key] extends object ? TNestedKeyOf<T[Key]> : Key; }; export type ILooseObject = Record<string, any>; export interface IEventListener<T extends any[]> { (...args: T): void; } export interface ITranslateOptions extends ILooseObject { escapeHTML?: boolean; /** * To add interpolation to you translation. * * @example * en: { * greeting: "Good [time]" * } * * translate("greeting", { interpolation: { time: "Morning" } }) // Good Morning */ interpolation?: ILooseObject; } export type TEvents = "language_changed";