UNPKG

i18next-locize-backend

Version:

i18next-locize-backend is a backend layer for i18next to use locize service which can be used in node.js, in the browser and for deno.

159 lines (151 loc) 3.86 kB
import { BackendModule, ReadCallback, ResourceKey, Services } from "i18next"; type AllowedAddOrUpdateHostsFunction = (hostname: string) => boolean; export interface LocizeBackendOptions { /** * your locize projectId */ projectId: string; /** * your locize apikey (only use this in development) to add / update translations */ apiKey?: string; /** * the reference (source) language of your project (default "en") */ referenceLng?: string; /** * the version of translations to load */ version?: string; /** * path where resources get loaded from * the returned path will interpolate projectId, version, lng, ns if provided like giving a static path */ loadPath?: string; /** * use loading from private published files */ private?: boolean; /** * path where resources get loaded from if using private published translations */ privatePath?: string; /** * use loading from database */ pull?: boolean; /** * path where resources get loaded from if loading directly from database */ pullPath?: string; /** * path to post missing resources */ addPath?: string; /** * path to post updated resources */ updatePath?: string; /** * allow cross domain requests */ crossDomain?: boolean; /** * set JSON as content type */ setContentTypeJSON?: boolean; /** * can be used to reload resources in a specific * interval (useful in server environments) */ reloadInterval?: false | number; /** * hostnames that are allowed to create & update keys */ allowedAddOrUpdateHosts?: string[] | AllowedAddOrUpdateHostsFunction; /** * threshold to accept languages from locize in to supportedLngs */ translatedPercentageThreshold?: number; } type LoadCallback = (error: any, result: any) => void; export interface RequestResponse { status: number; data: ResourceKey; } export type RequestCallback = (error: any, response: RequestResponse) => void; export interface CustomRequestOptions { url: string, method: 'GET' | 'POST' body: ResourceKey | undefined, headers: { [name: string]: string; } } declare class I18NextLocizeBackend implements BackendModule<LocizeBackendOptions> { static type: "backend"; constructor( options?: LocizeBackendOptions, callback?: LoadCallback ); constructor( services?: Services, options?: LocizeBackendOptions, callback?: LoadCallback ); init( options?: LocizeBackendOptions, callback?: LoadCallback ): void; init( services?: Services, options?: LocizeBackendOptions, callback?: LoadCallback ): void; init(services?: any, options?: LocizeBackendOptions): void; getLanguages(callback: LoadCallback): void; getLanguages(): Promise<any>; getOptions(callback: LoadCallback): void; getOptions(): Promise<any>; read(language: string, namespace: string, callback: ReadCallback): void; loadUrl(options: any, url: string, callback: ReadCallback): void; create( languages: string | string[], namespace: string, key: string, fallbackValue: string, callback: LoadCallback, options: any ): void; create( languages: string[], namespace: string, key: string, fallbackValue: string ): void; update( languages: string | string[], namespace: string, key: string, fallbackValue: string, callback: LoadCallback, options: any ): void; write(language: string, namespace: string): void; type: "backend"; options: LocizeBackendOptions; /** * define a custom request function * can be used to support Angular http client */ request?( info: CustomRequestOptions, callback: RequestCallback ): void; request?( info: CustomRequestOptions, ): Promise<RequestResponse>; } export default I18NextLocizeBackend;