Files
ThreadNet-Web/packages/element-web-module-api/src/api/i18n.ts
T

60 lines
1.5 KiB
TypeScript
Raw Normal View History

2025-05-13 10:40:26 +01:00
/*
Copyright 2025 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
/**
* The translations for the module.
* @public
*/
export type Translations = Record<
string,
{
[ietfLanguageTag: string]: string;
}
>;
/**
* Variables to interpolate into a translation.
* @public
*/
export type Variables = {
/**
* The number of items to count for pluralised translations
*/
count?: number;
[key: string]: number | string | undefined;
};
/**
* The API for interacting with translations.
* @public
*/
export interface I18nApi {
/**
* Read the current language of the user in IETF Language Tag format
*/
get language(): string;
/**
* Register translations for the module, may override app's existing translations
*/
2026-02-20 09:32:58 +00:00
register(this: void, translations: Partial<Translations>): void;
2025-05-13 10:40:26 +01:00
/**
* Perform a translation, with optional variables
* @param key - The key to translate
* @param variables - Optional variables to interpolate into the translation
*/
2026-02-20 09:32:58 +00:00
translate(this: void, key: keyof Translations, variables?: Variables): string;
2025-11-26 16:47:58 +00:00
/**
2025-11-28 15:20:51 +00:00
* Convert a timestamp into a translated, human-readable time,
* using the current system time as a reference, eg. "5 minutes ago".
2025-11-26 16:47:58 +00:00
* @param timeMillis - The time in milliseconds since epoch
*/
2026-02-20 09:32:58 +00:00
humanizeTime(this: void, timeMillis: number): string;
2025-05-13 10:40:26 +01:00
}