Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import ca from "../../../translations/ca.json";
import de from "../../../translations/de.json";
import en from "../../../translations/en.json";
import es from "../../../translations/es.json";
import fr from "../../../translations/fr.json";
import it from "../../../translations/it.json";
import ja from "../../../translations/ja.json";
import ko from "../../../translations/ko.json";
import nl from "../../../translations/nl.json";
import pl from "../../../translations/pl.json";
import pt from "../../../translations/pt.json";
import ru from "../../../translations/ru.json";
import zh from "../../../translations/zh.json";
type LektorTranslations = typeof en;
export type TranslationEntry = keyof LektorTranslations;
export const translations: Record<string, Partial<LektorTranslations>> = {
ca,
de,
en,
es,
fr,
it,
ja,
ko,
nl,
pl,
pt,
ru,
zh,
};
let currentLanguage = "en";
let currentTranslations = translations[currentLanguage] ?? {};
export function setCurrentLanguage(lang: string) {
currentLanguage = lang;
currentTranslations = translations[currentLanguage];
}
export function getCurrentLanguge() {
return currentLanguage;
}
export type Translatable = Partial<Record<string, string>>;
/**
* Get translation for a key.
* @param key - The translation key.
*/
export function trans(key: TranslationEntry): string {
return currentTranslations[key] ?? key;
}
/**
* Get translation from an object of translations
* @param translation_object - The object containing translations.
*/
export function trans_obj(translation_object: Translatable): string {
return translation_object[currentLanguage] ?? translation_object.en ?? "";
}
/**
* Get translation for a key with a fallback.
* @param translation_object - The translation key
* @param fallback - A fallback to use if the translation is missing.
*/
export function trans_fallback(
translation_object: Translatable | undefined,
fallback: string
): string {
if (!translation_object) {
return fallback;
}
return trans_obj(translation_object) || fallback;
}
/**
* Get translation for a key with a `%s` replacement.
* @param key - The translation key
* @param replacement - replacement for `%s`.
*/
export function trans_format(
key: TranslationEntry,
replacement: string
): string {
const translation = trans(key);
return translation.replace("%s", replacement);
}
|