export type BackendLocale = 'en' | 'tc';

/**
 * 判断一个 BCP-47 language tag 是否应视为「繁体中文」（TC）。
 *
 * 规则（面向当前产品约束：只支持 EN/TC，默认 EN）：
 * - 仅在语言为中文（zh）且脚本为 Hant 或地区为 TW/HK/MO 时，判定为 TC
 * - 兼容后端/历史写法：明确包含 tc 也视为 TC
 * - 其他情况一律视为 EN
 */
export function isTraditionalChineseLocaleTag(languageTag: string): boolean {
  const tag = (languageTag || '').trim().toLowerCase();
  if (!tag) return false;

  // 兼容：有些链路可能直接传 tc
  const parts = tag.split(/[-_]/g).filter(Boolean);
  if (parts.includes('tc')) return true;

  const lang = parts[0];
  if (lang !== 'zh') return false;

  // 脚本：zh-Hant / zh-Hant-TW / zh-Hant-HK ...
  if (tag.includes('hant') || parts.includes('hant')) return true;

  // 地区：zh-TW / zh-HK / zh-MO
  if (parts.includes('tw') || parts.includes('hk') || parts.includes('mo')) return true;

  // 其他中文（如 zh / zh-CN / zh-Hans）不属于 TC → 回退 EN
  return false;
}

export function toBackendLocaleFromLanguageTag(languageTag: string | null | undefined): BackendLocale {
  return isTraditionalChineseLocaleTag(languageTag ?? '') ? 'tc' : 'en';
}

