Spaces:
Sleeping
Sleeping
File size: 944 Bytes
f23825d |
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 |
import localization from "./localization"
export type Language = "en" | "ja" | "zh"
export function localized(key: string): string | undefined
export function localized(key: string, defaultValue: string): string
export function localized(
key: string,
defaultValue: string,
language?: Language,
): string
export function localized(
key: string,
defaultValue?: string,
language?: Language,
): string | undefined {
// ja-JP or ja -> ja
const locale = language ?? getBrowserLanguage()
if (
key !== null &&
localization[locale] !== undefined &&
localization[locale][key] !== undefined
) {
return localization[locale][key]
}
return defaultValue
}
function getBrowserLanguage() {
// Use URL parameter ?lang=ja or navigator.language
const navigatorLanguage = navigator.language.split("-")[0]
const langParam = new URL(location.href).searchParams.get("lang")
return langParam ?? navigatorLanguage
}
|