code: func Parse(src string) []*Language {
  	var langs []*Language
  	start := 0
  	for end, chr := range src {
  		switch chr {
  		case ',', ';', '.':
  			tag := strings.TrimSpace(src[start:end])
  			if spec := GetPluralSpec(tag); spec != nil {
  				langs = append(langs, &Language{NormalizeTag(tag), spec})
  			}
  			start = end + 1
  		}
  	}
  	if start > 0 {
  		tag := strings.TrimSpace(src[start:])
  		if spec := GetPluralSpec(tag); spec != nil {
  			langs = append(langs, &Language{NormalizeTag(tag), spec})
  		}
  		return dedupe(langs)
  	}
  	if spec := GetPluralSpec(src); spec != nil {
  		langs = append(langs, &Language{NormalizeTag(src), spec})
  	}
  	return langs
  }
docs: // Parse returns a slice of supported languages found in src or nil if none are found.
  // It can parse language tags and Accept-Language headers.