mirror of
https://github.com/stablyai/orca.git
synced 2026-10-04 16:02:08 +00:00
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
export const UI_LANGUAGE_SYSTEM = 'system'
|
|
export const UI_LANGUAGE_ENGLISH = 'en'
|
|
export const UI_LANGUAGE_CHINESE = 'zh'
|
|
export const UI_LANGUAGE_KOREAN = 'ko'
|
|
export const UI_LANGUAGE_JAPANESE = 'ja'
|
|
export const UI_LANGUAGE_SPANISH = 'es'
|
|
export const UI_LANGUAGE_FRENCH = 'fr'
|
|
|
|
export type BuiltInUiLanguage =
|
|
| typeof UI_LANGUAGE_SYSTEM
|
|
| typeof UI_LANGUAGE_ENGLISH
|
|
| typeof UI_LANGUAGE_CHINESE
|
|
| typeof UI_LANGUAGE_KOREAN
|
|
| typeof UI_LANGUAGE_JAPANESE
|
|
| typeof UI_LANGUAGE_SPANISH
|
|
| typeof UI_LANGUAGE_FRENCH
|
|
|
|
export type PluginUiLanguage = `plugin:${string}`
|
|
export type UiLanguage = BuiltInUiLanguage | PluginUiLanguage
|
|
|
|
const UI_LANGUAGE_VALUES = new Set<BuiltInUiLanguage>([
|
|
UI_LANGUAGE_SYSTEM,
|
|
UI_LANGUAGE_ENGLISH,
|
|
UI_LANGUAGE_CHINESE,
|
|
UI_LANGUAGE_KOREAN,
|
|
UI_LANGUAGE_JAPANESE,
|
|
UI_LANGUAGE_SPANISH,
|
|
UI_LANGUAGE_FRENCH
|
|
])
|
|
|
|
const PLUGIN_UI_LANGUAGE_RE =
|
|
/^plugin:[a-z0-9]+(?:-[a-z0-9]+)*\.[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z]{2,3}(?:-[a-z0-9]{2,8})*$/i
|
|
|
|
export function isPluginUiLanguage(value: unknown): value is PluginUiLanguage {
|
|
return typeof value === 'string' && PLUGIN_UI_LANGUAGE_RE.test(value)
|
|
}
|
|
|
|
export function normalizeUiLanguage(value: unknown): UiLanguage {
|
|
if (isPluginUiLanguage(value)) {
|
|
return value
|
|
}
|
|
return UI_LANGUAGE_VALUES.has(value as BuiltInUiLanguage)
|
|
? (value as BuiltInUiLanguage)
|
|
: UI_LANGUAGE_SYSTEM
|
|
}
|