Plugin
TolgeePlugin interface
Plugin is a function which receives Tolgee instance and additional tools object, where you have access
to additional methods for adding different middlewares, it also needs to return tolgee instance at the end.
function (tolgee: TolgeeInstance, tools: PluginTools): TolgeeInstance
PluginTools
Tools to manipulate different middleware interfaces.
Formatter
Methods
tools.setFinalFormatter(formatter: FormatterMiddleware): void;
tools.addFormatter(formatter: FormatterMiddleware): void;
Inteface
interface FormatterMiddleware {
format(props: {
translation: string;
language: string;
params: Record<string, any>;
}): string;
}
Formats translation, allows you to add custom formatter.
There can be multiple formatters, they will be applied in order in which they were added.
FinalFormatter is applied last and can return different value than string.
Observer
Methods
tools.setObserver(observer: ObserverMiddleware): void;
tools.hasObserver(): boolean;
Interface
type ObserverMiddleware = (props: ObserverProps) => {
unwrap: (text: string) => Unwrapped;
wrap: WrapperWrapFunction;
retranslate: () => void;
stop: () => void;
run: (props: ObserverRunProps) => void;
highlight: HighlightInterface;
outputNotFormattable: boolean;
};
Middleware which enables in-context translating. Check Observer options.
UI
Methods
tools.setUi(ui: UiMiddleware): void;
tools.hasUi(): boolean;
Tolgee UI enables in-context translating.
Backend
Methods
tools.addBackend(backend: BackendMiddleware): void;
tools.setDevBackend(backend: BackendMiddleware): void;
Interface
interface BackendMiddleware {
getRecord(props: {
language: string;
namespace?: string;
}): Promise<TreeTranslationsData | undefined>;
}
Backend middleware is used when Tolgee needs to fetch record (identified by language and namespace).
Backend can be skipped if getRecord returns undefined, in that case next backend is used.
DevBackend is used when in dev mode and only difference in interface is that getRecord will also
recieve apiUrl, apiKey and projectId. It's used to connect to Tolgee platform.
Language detector
tools.setLanguageDetector(
languageDetector: LanguageDetectorMiddleware
): void
Interface
interface LanguageDetectorMiddleware {
getLanguage: (props: {
availableLanguages: string[];
}): string | Promise<string>;
}
Language detector, use for detection from user locale/cookies, etc.
Language storage
tools.setLanguageStorage(
languageStorage: LanguageStorageMiddleware
): void
Interface
interface LanguageStorageMiddleware {
getLanguage(): strin | Promise<string>;
setLanguage(language: string): void | Promise<void>;
}
Language storage, use for storing language in LocalStorage or on custom server.
Override credentials
tools.overrideCredentials(credentials: {
apiUrl?: string;
apiKey?: string;
projectId?: string | number;
}): void;
Method which overrides user credentials to tolgee platform.