2023-10-31 17:05:44 +01:00
|
|
|
import { isDevelopment } from 'mastodon/utils/environment';
|
|
|
|
|
2023-06-02 15:00:27 +02:00
|
|
|
export interface LocaleData {
|
|
|
|
locale: string;
|
|
|
|
messages: Record<string, string>;
|
|
|
|
}
|
|
|
|
|
2023-07-13 11:49:16 +02:00
|
|
|
let loadedLocale: LocaleData | undefined;
|
2023-06-02 15:00:27 +02:00
|
|
|
|
|
|
|
export function setLocale(locale: LocaleData) {
|
|
|
|
loadedLocale = locale;
|
|
|
|
}
|
|
|
|
|
2023-07-13 11:49:16 +02:00
|
|
|
export function getLocale(): LocaleData {
|
|
|
|
if (!loadedLocale) {
|
2023-10-31 17:05:44 +01:00
|
|
|
if (isDevelopment()) {
|
2023-07-13 11:49:16 +02:00
|
|
|
throw new Error('getLocale() called before any locale has been set');
|
|
|
|
} else {
|
|
|
|
return { locale: 'unknown', messages: {} };
|
|
|
|
}
|
2023-06-02 15:00:27 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return loadedLocale;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function isLocaleLoaded() {
|
|
|
|
return !!loadedLocale;
|
|
|
|
}
|