package comm import "testing" // 语言码传错阿里云不会报错,只会返回空或原文——排查极费劲,所以用测试钉住。 func TestBCP47ToShortLang(t *testing.T) { cases := map[string]string{ "zh-CN": "zh", "zh-TW": "zh", "zh-HK": "zh", "en-US": "en", "ja-JP": "ja", "ko-KR": "ko", "es-MX": "es", "pt-BR": "pt", "fil-PH": "fil", "en": "en", // 已经是短码,原样 "zh": "zh", "EN-US": "en", // 大小写不敏感(表未命中时走主子标签并小写) "xx-YY": "xx", // 未收录的地区变体:取主语言,别变空串 "": "", // 空进空出 " en ": "en", // 去空白 } for in, want := range cases { if got := BCP47ToShortLang(in); got != want { t.Errorf("BCP47ToShortLang(%q) = %q, want %q", in, got, want) } } }