INNER CODE UNIT · TypeScript

matchLocale

arc53/DocsGPT · extensions/react-widget/src/locale/index.ts:44

export const matchLocale = (tag: string): SupportedLocale | null => {
  const parts = String(tag).trim().replace(/_/g, '-').toLowerCase().split('-');
  const base = parts[0];
  if (!base) return null;
  if (base === 'zh') {
    const script = parts.find((part) => part.length === 4);
    if (script === 'hant') return 'zh-TW';
    if (script === 'hans') return 'zh';
    return parts.some((part) => ['tw', 'hk', 'mo'].includes(part))
      ? 'zh-TW'
      : 'zh';
  }
  const exact = SUPPORTED_LOCALES.find(
    (code) => code.toLowerCase() === parts.join('-'),
  );
  if (exact) return exact;
  return SUPPORTED_LOCALES.find((code) => code === base) ?? null;
};

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…