弃用原因
随着国际化的发展,主要是欧亚语系,不光存在 一句话中 首字母大写, 还有的语言是 第二个字母大写的情况。
这个strings.Title 原先的设计初衷就是 大写标题的设计,所以国际化的形势下,就要根据各个语言的情况再运用.
Code Time !
//原先 go 1.17以下
strings.Title("I am Okay")
//替换等价 go 1.18以上
import (
"golang.org/x/text/cases"
"golang.org/x/text/language"
)
cases.Title(language.Und).String("I am Okay")
各个语言定义,下面是部分举例,详情可见:golang.org\x\text@v0.6.0\language\tags.go
Afrikaans Tag = Tag(compact.Afrikaans)
Amharic Tag = Tag(compact.Amharic)
Arabic Tag = Tag(compact.Arabic)
ModernStandardArabic Tag = Tag(compact.ModernStandardArabic)
Azerbaijani Tag = Tag(compact.Azerbaijani)
Bulgarian Tag = Tag(compact.Bulgarian)
Bengali Tag = Tag(compact.Bengali)
Catalan Tag = Tag(compact.Catalan)
Czech Tag = Tag(compact.Czech)
Danish Tag = Tag(compact.Danish)
German Tag = Tag(compact.German)
Greek Tag = Tag(compact.Greek)
English Tag = Tag(compact.English)