41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
|
|
/**
|
||
|
|
* 将路由中的 locale 参数映射为标准的语言代码
|
||
|
|
* @param locale - 路由中的 locale 参数
|
||
|
|
* @returns 标准的语言代码 ('zh-CN' | 'zh-TW' | 'en')
|
||
|
|
*/
|
||
|
|
export function mapLocale(locale: string): 'zh-CN' | 'zh-TW' | 'en' {
|
||
|
|
if (locale === 'zh' || locale === 'zh-CN') {
|
||
|
|
return 'zh-CN';
|
||
|
|
}
|
||
|
|
if (locale === 'zh-TW') {
|
||
|
|
return 'zh-TW';
|
||
|
|
}
|
||
|
|
return 'en';
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 获取语言的显示名称
|
||
|
|
* @param locale - 语言代码
|
||
|
|
* @returns 语言的显示名称
|
||
|
|
*/
|
||
|
|
export function getLanguageDisplayName(locale: string): string {
|
||
|
|
switch (locale) {
|
||
|
|
case 'zh-CN':
|
||
|
|
return '简体中文';
|
||
|
|
case 'zh-TW':
|
||
|
|
return '繁體中文';
|
||
|
|
case 'en':
|
||
|
|
return 'English';
|
||
|
|
default:
|
||
|
|
return '简体中文';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 检查是否为有效的语言代码
|
||
|
|
* @param locale - 要检查的语言代码
|
||
|
|
* @returns 是否为有效的语言代码
|
||
|
|
*/
|
||
|
|
export function isValidLocale(locale: string): boolean {
|
||
|
|
return ['zh', 'zh-CN', 'zh-TW', 'en'].includes(locale);
|
||
|
|
}
|