Source File
parse.go
Belonging Package
golang.org/x/text/language
package language
import (
)
type ValueError interface {
error
Subtag() string
}
func ( CanonType) ( ...interface{}) ( Tag, error) {
var language.Builder
if = update(&, ...); != nil {
return und,
}
.Tag, _ = canonicalize(, .Tag)
return makeTag(.Make()),
}
var errInvalidArgument = errors.New("invalid Extension or Variant")
func ( *language.Builder, ...interface{}) ( error) {
for , := range {
switch v := .(type) {
case Tag:
.SetTag(.tag())
case Base:
.Tag.LangID = .langID
case Script:
.Tag.ScriptID = .scriptID
case Region:
.Tag.RegionID = .regionID
case Variant:
if .variant == "" {
= errInvalidArgument
break
}
.AddVariant(.variant)
case Extension:
if .s == "" {
= errInvalidArgument
break
}
.SetExt(.s)
case []Variant:
.ClearVariants()
for , := range {
.AddVariant(.variant)
}
case []Extension:
.ClearExtensions()
for , := range {
.SetExt(.s)
case error:
if != nil {
=
}
}
}
return
}
var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight")
:= 1.0
if != "" {
= consume(, 'q')
if , = strconv.ParseFloat(, 32); != nil {
return nil, nil, errInvalidWeight
var acceptFallback = map[string]language.Language{
"english": _en,
"deutsch": _de,
"italian": _it,
"french": _fr,
"*": _mul, // defined in the spec to match all languages.
}
type tagSort struct {
tag []Tag
q []float32
}
func ( *tagSort) () int {
return len(.q)
}
func ( *tagSort) (, int) bool {
return .q[] > .q[]
}
func ( *tagSort) (, int) {
.tag[], .tag[] = .tag[], .tag[]
.q[], .q[] = .q[], .q[]
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |