You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
817 B
23 lines
817 B
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)
|
|
}
|
|
}
|
|
}
|
|
|