feat: added French support
This commit is contained in:
+6
-2
@@ -1,13 +1,14 @@
|
||||
import type { LanguageSetting, ResolvedLocaleCode } from './types';
|
||||
|
||||
const CHINESE_LANGUAGE_PREFIX = 'zh';
|
||||
const FRENCH_LANGUAGE_PREFIX = 'fr';
|
||||
const DEFAULT_LOCALE: ResolvedLocaleCode = 'en_us';
|
||||
|
||||
// BCP 47 subtags that indicate Traditional Chinese (Hant script or HK/TW/MO regions)
|
||||
const TRADITIONAL_CHINESE_SUBTAGS = new Set(['hk', 'tw', 'mo', 'hant']);
|
||||
|
||||
export function normalizeLanguageSetting(value: unknown): LanguageSetting {
|
||||
return value === 'zh_cn' || value === 'en_us' || value === 'zh_hk' || value === 'auto' ? value : 'auto';
|
||||
return value === 'zh_cn' || value === 'en_us' || value === 'zh_hk' || value === 'fr_fr' || value === 'auto' ? value : 'auto';
|
||||
}
|
||||
|
||||
export function getBrowserLocales(): string[] {
|
||||
@@ -28,7 +29,7 @@ export function resolveLanguageSetting(
|
||||
setting: LanguageSetting,
|
||||
browserLocales: string[] = getBrowserLocales(),
|
||||
): ResolvedLocaleCode {
|
||||
if (setting === 'en_us' || setting === 'zh_cn' || setting === 'zh_hk') {
|
||||
if (setting === 'en_us' || setting === 'zh_cn' || setting === 'zh_hk' || setting === 'fr_fr') {
|
||||
return setting;
|
||||
}
|
||||
|
||||
@@ -42,6 +43,9 @@ export function resolveLanguageSetting(
|
||||
const isTraditional = subtags.some((tag) => TRADITIONAL_CHINESE_SUBTAGS.has(tag));
|
||||
return isTraditional ? 'zh_hk' : 'zh_cn';
|
||||
}
|
||||
if (normalizedLocale === FRENCH_LANGUAGE_PREFIX || normalizedLocale.startsWith(`${FRENCH_LANGUAGE_PREFIX}-`)) {
|
||||
return 'fr_fr';
|
||||
}
|
||||
}
|
||||
|
||||
return DEFAULT_LOCALE;
|
||||
|
||||
Reference in New Issue
Block a user