Constants & Variables
            
            
               
                  Afrikaans 
                  var
                  
                  #
               
               
               var Afrikaans Tag = *ast.CallExpr
            
            
            
               
                  Albanian 
                  var
                  
                  #
               
               
               var Albanian Tag = *ast.CallExpr
            
            
            
               
                  All 
                  const
                  
                  #
               
               
                  
               
               const All = *ast.BinaryExpr
            
            
            
               
                  AmericanEnglish 
                  var
                  
                  #
               
               
               var AmericanEnglish Tag = *ast.CallExpr
            
            
            
               
                  Amharic 
                  var
                  
                  #
               
               
               var Amharic Tag = *ast.CallExpr
            
            
            
               
                  Arabic 
                  var
                  
                  #
               
               
               var Arabic Tag = *ast.CallExpr
            
            
            
               
                  Armenian 
                  var
                  
                  #
               
               
               var Armenian Tag = *ast.CallExpr
            
            
            
               
                  Azerbaijani 
                  var
                  
                  #
               
               
               var Azerbaijani Tag = *ast.CallExpr
            
            
            
               
                  BCP47 
                  const
                  
                  #
               
               
                  
               
               const BCP47 = *ast.BinaryExpr
            
            
            
               
                  Bengali 
                  var
                  
                  #
               
               
               var Bengali Tag = *ast.CallExpr
            
            
            
               
                  BrazilianPortuguese 
                  var
                  
                  #
               
               
               var BrazilianPortuguese Tag = *ast.CallExpr
            
            
            
               
                  BritishEnglish 
                  var
                  
                  #
               
               
               var BritishEnglish Tag = *ast.CallExpr
            
            
            
               
                  Bulgarian 
                  var
                  
                  #
               
               
               var Bulgarian Tag = *ast.CallExpr
            
            
            
               
                  Burmese 
                  var
                  
                  #
               
               
               var Burmese Tag = *ast.CallExpr
            
            
            
               
                  CLDR 
                  const
                  
                  #
               
               
                  
               
               const CLDR
            
            
            
               
                  CLDRVersion 
                  const
                  
                  #
               
               
                  
               
               const CLDRVersion = "32"
            
            
            
               
                  CanadianFrench 
                  var
                  
                  #
               
               
               var CanadianFrench Tag = *ast.CallExpr
            
            
            
               
                  Catalan 
                  var
                  
                  #
               
               
               var Catalan Tag = *ast.CallExpr
            
            
            
               
                  Chinese 
                  var
                  
                  #
               
               
               var Chinese Tag = *ast.CallExpr
            
            
            
               
                  Croatian 
                  var
                  
                  #
               
               
               var Croatian Tag = *ast.CallExpr
            
            
            
               
                  Czech 
                  var
                  
                  #
               
               
               var Czech Tag = *ast.CallExpr
            
            
            
               
                  Danish 
                  var
                  
                  #
               
               
               var Danish Tag = *ast.CallExpr
            
            
            
               
                  Default 
                  const
                  
                  #
               
               
                  
               
               const Default = *ast.BinaryExpr
            
            
            
               
                  Deprecated 
                  const
                  
                  #
               
               
                  
               
               const Deprecated = *ast.BinaryExpr
            
            
            
               
                  DeprecatedBase 
                  const
                  
                  #
               
               
                  
               
               const DeprecatedBase CanonType = *ast.BinaryExpr
            
            
            
               
                  DeprecatedRegion 
                  const
                  
                  #
               
               
                  
               
               const DeprecatedRegion
            
            
            
               
                  DeprecatedScript 
                  const
                  
                  #
               
               
                  
               
               const DeprecatedScript
            
            
            
               
                  Dutch 
                  var
                  
                  #
               
               
               var Dutch Tag = *ast.CallExpr
            
            
            
               
                  English 
                  var
                  
                  #
               
               
               var English Tag = *ast.CallExpr
            
            
            
               
                  ErrMissingLikelyTagsData 
                  var
                  
                  #
               
               
                  
               
               var ErrMissingLikelyTagsData = *ast.CallExpr
            
            
            
               
                  Estonian 
                  var
                  
                  #
               
               
               var Estonian Tag = *ast.CallExpr
            
            
            
               
                  EuropeanPortuguese 
                  var
                  
                  #
               
               
               var EuropeanPortuguese Tag = *ast.CallExpr
            
            
            
               
                  EuropeanSpanish 
                  var
                  
                  #
               
               
               var EuropeanSpanish Tag = *ast.CallExpr
            
            
            
               
                  Exact 
                  const
                  
                  #
               
               
               const Exact
            
            
            
               
                  Filipino 
                  var
                  
                  #
               
               
               var Filipino Tag = *ast.CallExpr
            
            
            
               
                  Finnish 
                  var
                  
                  #
               
               
               var Finnish Tag = *ast.CallExpr
            
            
            
               
                  French 
                  var
                  
                  #
               
               
               var French Tag = *ast.CallExpr
            
            
            
               
                  Georgian 
                  var
                  
                  #
               
               
               var Georgian Tag = *ast.CallExpr
            
            
            
               
                  German 
                  var
                  
                  #
               
               
               var German Tag = *ast.CallExpr
            
            
            
               
                  Greek 
                  var
                  
                  #
               
               
               var Greek Tag = *ast.CallExpr
            
            
            
               
                  Gujarati 
                  var
                  
                  #
               
               
               var Gujarati Tag = *ast.CallExpr
            
            
            
               
                  Hebrew 
                  var
                  
                  #
               
               
               var Hebrew Tag = *ast.CallExpr
            
            
            
               
                  High 
                  const
                  
                  #
               
               
               const High
            
            
            
               
                  Hindi 
                  var
                  
                  #
               
               
               var Hindi Tag = *ast.CallExpr
            
            
            
               
                  Hungarian 
                  var
                  
                  #
               
               
               var Hungarian Tag = *ast.CallExpr
            
            
            
               
                  Icelandic 
                  var
                  
                  #
               
               
               var Icelandic Tag = *ast.CallExpr
            
            
            
               
                  Indonesian 
                  var
                  
                  #
               
               
               var Indonesian Tag = *ast.CallExpr
            
            
            
               
                  Italian 
                  var
                  
                  #
               
               
               var Italian Tag = *ast.CallExpr
            
            
            
               
                  Japanese 
                  var
                  
                  #
               
               
               var Japanese Tag = *ast.CallExpr
            
            
            
               
                  Kannada 
                  var
                  
                  #
               
               
               var Kannada Tag = *ast.CallExpr
            
            
            
               
                  Kazakh 
                  var
                  
                  #
               
               
               var Kazakh Tag = *ast.CallExpr
            
            
            
               
                  Khmer 
                  var
                  
                  #
               
               
               var Khmer Tag = *ast.CallExpr
            
            
            
               
                  Kirghiz 
                  var
                  
                  #
               
               
               var Kirghiz Tag = *ast.CallExpr
            
            
            
               
                  Korean 
                  var
                  
                  #
               
               
               var Korean Tag = *ast.CallExpr
            
            
            
               
                  Lao 
                  var
                  
                  #
               
               
               var Lao Tag = *ast.CallExpr
            
            
            
               
                  LatinAmericanSpanish 
                  var
                  
                  #
               
               
               var LatinAmericanSpanish Tag = *ast.CallExpr
            
            
            
               
                  Latvian 
                  var
                  
                  #
               
               
               var Latvian Tag = *ast.CallExpr
            
            
            
               
                  Legacy 
                  const
                  
                  #
               
               
                  
               
               const Legacy
            
            
            
               
                  Lithuanian 
                  var
                  
                  #
               
               
               var Lithuanian Tag = *ast.CallExpr
            
            
            
               
                  Low 
                  const
                  
                  #
               
               
               const Low
            
            
            
               
                  Macedonian 
                  var
                  
                  #
               
               
               var Macedonian Tag = *ast.CallExpr
            
            
            
               
                  Macro 
                  const
                  
                  #
               
               
                  
               
               const Macro
            
            
            
               
                  Malay 
                  var
                  
                  #
               
               
               var Malay Tag = *ast.CallExpr
            
            
            
               
                  Malayalam 
                  var
                  
                  #
               
               
               var Malayalam Tag = *ast.CallExpr
            
            
            
               
                  Marathi 
                  var
                  
                  #
               
               
               var Marathi Tag = *ast.CallExpr
            
            
            
               
                  ModernStandardArabic 
                  var
                  
                  #
               
               
               var ModernStandardArabic Tag = *ast.CallExpr
            
            
            
               
                  Mongolian 
                  var
                  
                  #
               
               
               var Mongolian Tag = *ast.CallExpr
            
            
            
               
                  Nepali 
                  var
                  
                  #
               
               
               var Nepali Tag = *ast.CallExpr
            
            
            
               
                  No 
                  const
                  
                  #
               
               
               const No Confidence = iota
            
            
            
               
                  Norwegian 
                  var
                  
                  #
               
               
               var Norwegian Tag = *ast.CallExpr
            
            
            
               
                  NumCompactTags 
                  const
                  
                  #
               
               
                  
               
               const NumCompactTags = compact.NumCompactTags
            
            
            
               
                  Persian 
                  var
                  
                  #
               
               
               var Persian Tag = *ast.CallExpr
            
            
            
               
                  Polish 
                  var
                  
                  #
               
               
               var Polish Tag = *ast.CallExpr
            
            
            
               
                  Portuguese 
                  var
                  
                  #
               
               
               var Portuguese Tag = *ast.CallExpr
            
            
            
               
                  Punjabi 
                  var
                  
                  #
               
               
               var Punjabi Tag = *ast.CallExpr
            
            
            
               
                  Raw 
                  const
                  
                  #
               
               
                  
               
               const Raw CanonType = 0
            
            
            
               
                  Romanian 
                  var
                  
                  #
               
               
               var Romanian Tag = *ast.CallExpr
            
            
            
               
                  Russian 
                  var
                  
                  #
               
               
               var Russian Tag = *ast.CallExpr
            
            
            
               
                  Serbian 
                  var
                  
                  #
               
               
               var Serbian Tag = *ast.CallExpr
            
            
            
               
                  SerbianLatin 
                  var
                  
                  #
               
               
               var SerbianLatin Tag = *ast.CallExpr
            
            
            
               
                  SimplifiedChinese 
                  var
                  
                  #
               
               
               var SimplifiedChinese Tag = *ast.CallExpr
            
            
            
               
                  Sinhala 
                  var
                  
                  #
               
               
               var Sinhala Tag = *ast.CallExpr
            
            
            
               
                  Slovak 
                  var
                  
                  #
               
               
               var Slovak Tag = *ast.CallExpr
            
            
            
               
                  Slovenian 
                  var
                  
                  #
               
               
               var Slovenian Tag = *ast.CallExpr
            
            
            
               
                  Spanish 
                  var
                  
                  #
               
               
               var Spanish Tag = *ast.CallExpr
            
            
            
               
                  Supported 
                  var
                  
                  #
               
               
                  
               
               var Supported Coverage = allSubtags{...}
            
            
            
               
                  SuppressScript 
                  const
                  
                  #
               
               
                  
               
               const SuppressScript
            
            
            
               
                  Swahili 
                  var
                  
                  #
               
               
               var Swahili Tag = *ast.CallExpr
            
            
            
               
                  Swedish 
                  var
                  
                  #
               
               
               var Swedish Tag = *ast.CallExpr
            
            
            
               
                  Tamil 
                  var
                  
                  #
               
               
               var Tamil Tag = *ast.CallExpr
            
            
            
               
                  Telugu 
                  var
                  
                  #
               
               
               var Telugu Tag = *ast.CallExpr
            
            
            
               
                  Thai 
                  var
                  
                  #
               
               
               var Thai Tag = *ast.CallExpr
            
            
            
               
                  TraditionalChinese 
                  var
                  
                  #
               
               
               var TraditionalChinese Tag = *ast.CallExpr
            
            
            
               
                  Turkish 
                  var
                  
                  #
               
               
               var Turkish Tag = *ast.CallExpr
            
            
            
               
                  Ukrainian 
                  var
                  
                  #
               
               
               var Ukrainian Tag = *ast.CallExpr
            
            
            
               
                  Und 
                  var
                  
                  #
               
               
               var Und Tag = Tag{...}
            
            
            
               
                  Urdu 
                  var
                  
                  #
               
               
               var Urdu Tag = *ast.CallExpr
            
            
            
               
                  Uzbek 
                  var
                  
                  #
               
               
               var Uzbek Tag = *ast.CallExpr
            
            
            
               
                  Vietnamese 
                  var
                  
                  #
               
               
               var Vietnamese Tag = *ast.CallExpr
            
            
            
               
                  Zulu 
                  var
                  
                  #
               
               
               var Zulu Tag = *ast.CallExpr
            
            
            
               
                  _001 
                  const
                  
                  #
               
               
               const _001 = 1
            
            
            
               
                  _419 
                  const
                  
                  #
               
               
               const _419 = 31
            
            
            
               
                  _BR 
                  const
                  
                  #
               
               
               const _BR = 65
            
            
            
               
                  _CA 
                  const
                  
                  #
               
               
               const _CA = 73
            
            
            
               
                  _ES 
                  const
                  
                  #
               
               
               const _ES = 111
            
            
            
               
                  _GB 
                  const
                  
                  #
               
               
               const _GB = 124
            
            
            
               
                  _Hani 
                  const
                  
                  #
               
               
               const _Hani = 57
            
            
            
               
                  _Hans 
                  const
                  
                  #
               
               
               const _Hans = 59
            
            
            
               
                  _Hant 
                  const
                  
                  #
               
               
               const _Hant = 60
            
            
            
               
                  _Latn 
                  const
                  
                  #
               
               
               const _Latn = 91
            
            
            
               
                  _MD 
                  const
                  
                  #
               
               
               const _MD = 189
            
            
            
               
                  _PT 
                  const
                  
                  #
               
               
               const _PT = 239
            
            
            
               
                  _Qaaa 
                  const
                  
                  #
               
               
               const _Qaaa = 149
            
            
            
               
                  _Qaai 
                  const
                  
                  #
               
               
               const _Qaai = 157
            
            
            
               
                  _Qabx 
                  const
                  
                  #
               
               
               const _Qabx = 198
            
            
            
               
                  _UK 
                  const
                  
                  #
               
               
               const _UK = 307
            
            
            
               
                  _US 
                  const
                  
                  #
               
               
               const _US = 310
            
            
            
               
                  _XA 
                  const
                  
                  #
               
               
               const _XA = 324
            
            
            
               
                  _XC 
                  const
                  
                  #
               
               
               const _XC = 326
            
            
            
               
                  _XK 
                  const
                  
                  #
               
               
               const _XK = 334
            
            
            
               
                  _ZZ 
                  const
                  
                  #
               
               
               const _ZZ = 358
            
            
            
               
                  _Zinh 
                  const
                  
                  #
               
               
               const _Zinh = 255
            
            
            
               
                  _Zyyy 
                  const
                  
                  #
               
               
               const _Zyyy = 260
            
            
            
               
                  _Zzzz 
                  const
                  
                  #
               
               
               const _Zzzz = 261
            
            
            
               
                  _de 
                  const
                  
                  #
               
               
               const _de = 269
            
            
            
               
                  _en 
                  const
                  
                  #
               
               
               const _en = 313
            
            
            
               
                  _fr 
                  const
                  
                  #
               
               
               const _fr = 350
            
            
            
               
                  _it 
                  const
                  
                  #
               
               
               const _it = 505
            
            
            
               
                  _mo 
                  const
                  
                  #
               
               
               const _mo = 784
            
            
            
               
                  _mul 
                  const
                  
                  #
               
               
               const _mul = 806
            
            
            
               
                  _nb 
                  const
                  
                  #
               
               
               const _nb = 839
            
            
            
               
                  _no 
                  const
                  
                  #
               
               
               const _no = 879
            
            
            
               
                  _pt 
                  const
                  
                  #
               
               
               const _pt = 960
            
            
            
               
                  _sh 
                  const
                  
                  #
               
               
               const _sh = 1031
            
            
            
               
                  _und 
                  const
                  
                  #
               
               
               const _und = 0
            
            
            
               
                  acceptFallback 
                  var
                  
                  #
               
               
                  
               
               var acceptFallback = map[string]language.Language{...}
            
            
            
               
                  canonLang 
                  const
                  
                  #
               
               
               const canonLang = *ast.BinaryExpr
            
            
            
               
                  confName 
                  var
                  
                  #
               
               
               var confName = []string{...}
            
            
            
               
                  errInvalidArgument 
                  var
                  
                  #
               
               
               var errInvalidArgument = *ast.CallExpr
            
            
            
               
                  errInvalidWeight 
                  var
                  
                  #
               
               
               var errInvalidWeight = *ast.CallExpr
            
            
            
               
                  errTagListTooLarge 
                  var
                  
                  #
               
               
               var errTagListTooLarge = *ast.CallExpr
            
            
            
               
                  matchLang 
                  var
                  
                  #
               
               
                  
               
               var matchLang = []mutualIntelligibility{...}
            
            
            
               
                  matchRegion 
                  var
                  
                  #
               
               
               var matchRegion = []regionIntelligibility{...}
            
            
            
               
                  matchScript 
                  var
                  
                  #
               
               
                  
               
               var matchScript = []scriptIntelligibility{...}
            
            
            
               
                  notEquivalent 
                  var
                  
                  #
               
               
               var notEquivalent []language.Language
            
            
            
               
                  paradigmLocales 
                  var
                  
                  #
               
               
               var paradigmLocales = [][3]uint16{...}
            
            
            
               
                  regionToGroups 
                  var
                  
                  #
               
               
               var regionToGroups = []uint8{...}
            
            
            
               
                  root 
                  var
                  
                  #
               
               
               var root = language.Tag{...}
            
            
            
               
                  und 
                  var
                  
                  #
               
               
               var und = Tag{...}
            
            
         
          
         
            Functions
            
            
               
                  Base 
                  method
                  
                  #
               
               
               Base returns the base language of the language tag. If the base language is
unspecified, an attempt will be made to infer it from the context.
It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.
               
               func (t Tag) Base() (Base, Confidence)
            
            
            
               
                  BaseLanguages 
                  method
                  
                  #
               
               
               BaseLanguages returns the result from calling s.bases if it is specified or
otherwise derives the set of supported base languages from tags.
               
               func (s *coverage) BaseLanguages() []Base
            
            
            
               
                  BaseLanguages 
                  method
                  
                  #
               
               
               BaseLanguages returns the list of all supported base languages. It generates
the list by traversing the internal structures.
               
               func (s allSubtags) BaseLanguages() []Base
            
            
            
               
                  Canonicalize 
                  method
                  
                  #
               
               
               Canonicalize returns the region or a possible replacement if the region is
deprecated. It will not return a replacement for deprecated regions that
are split into multiple regions.
               
               func (r Region) Canonicalize() Region
            
            
            
               
                  Canonicalize 
                  method
                  
                  #
               
               
               Canonicalize returns the canonicalized equivalent of the tag.
               
               func (c CanonType) Canonicalize(t Tag) (Tag, error)
            
            
            
               
                  CompactIndex 
                  function
                  
                  #
               
               
               CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags
for which data exists in the text repository.The index will change over time
and should not be stored in persistent storage. If t does not match a compact
index, exact will be false and the compact index will be returned for the
first match after repeatedly taking the Parent of t.
               
               func CompactIndex(t Tag) (index int, exact bool)
            
            
            
               
                  Compose 
                  method
                  
                  #
               
               
               Compose creates a Tag from individual parts, which may be of type Tag, Base,
Script, Region, Variant, []Variant, Extension, []Extension or error. If a
Base, Script or Region or slice of type Variant or Extension is passed more
than once, the latter will overwrite the former. Variants and Extensions are
accumulated, but if two extensions of the same type are passed, the latter
will replace the former. For -u extensions, though, the key-type pairs are
added, where later values overwrite older ones. A Tag overwrites all former
values and typically only makes sense as the first argument. The resulting
tag is returned after canonicalizing using CanonType c. If one or more errors
are encountered, one of the errors is returned.
               
               func (c CanonType) Compose(part ...interface{}) (t Tag, err error)
            
            
            
               
                  Compose 
                  function
                  
                  #
               
               
               Compose creates a Tag from individual parts, which may be of type Tag, Base,
Script, Region, Variant, []Variant, Extension, []Extension or error. If a
Base, Script or Region or slice of type Variant or Extension is passed more
than once, the latter will overwrite the former. Variants and Extensions are
accumulated, but if two extensions of the same type are passed, the latter
will replace the former. For -u extensions, though, the key-type pairs are
added, where later values overwrite older ones. A Tag overwrites all former
values and typically only makes sense as the first argument. The resulting
tag is returned after canonicalizing using the Default CanonType. If one or
more errors are encountered, one of the errors is returned.
               
               func Compose(part ...interface{}) (t Tag, err error)
            
            
            
               
                  Comprehends 
                  function
                  
                  #
               
               
               Comprehends reports the confidence score for a speaker of a given language
to being able to comprehend the written form of an alternative language.
               
               func Comprehends(speaker Tag, alternative Tag) Confidence
            
            
            
               
                  Contains 
                  method
                  
                  #
               
               
               Contains returns whether Region c is contained by Region r. It returns true
if c == r.
               
               func (r Region) Contains(c Region) bool
            
            
            
               
                  EncodeM49 
                  function
                  
                  #
               
               
               EncodeM49 returns the Region for the given UN M.49 code.
It returns an error if r is not a valid code.
               
               func EncodeM49(r int) (Region, error)
            
            
            
               
                  Extension 
                  method
                  
                  #
               
               
               Extension returns the extension of type x for tag t. It will return
false for ok if t does not have the requested extension. The returned
extension will be invalid in this case.
               
               func (t Tag) Extension(x byte) (ext Extension, ok bool)
            
            
            
               
                  Extensions 
                  method
                  
                  #
               
               
               Extensions returns all extensions of t.
               
               func (t Tag) Extensions() []Extension
            
            
            
               
                  ISO3 
                  method
                  
                  #
               
               
               ISO3 returns the 3-letter ISO code of r.
Note that not all regions have a 3-letter ISO code.
In such cases this method returns "ZZZ".
               
               func (r Region) ISO3() string
            
            
            
               
                  ISO3 
                  method
                  
                  #
               
               
               ISO3 returns the ISO 639-3 language code.
               
               func (b Base) ISO3() string
            
            
            
               
                  IsCountry 
                  method
                  
                  #
               
               
               IsCountry returns whether this region is a country or autonomous area. This
includes non-standard definitions from CLDR.
               
               func (r Region) IsCountry() bool
            
            
            
               
                  IsGroup 
                  method
                  
                  #
               
               
               IsGroup returns whether this region defines a collection of regions. This
includes non-standard definitions from CLDR.
               
               func (r Region) IsGroup() bool
            
            
            
               
                  IsPrivateUse 
                  method
                  
                  #
               
               
               IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This
may include private-use tags that are assigned by CLDR and used in this
implementation. So IsPrivateUse and IsCountry can be simultaneously true.
               
               func (r Region) IsPrivateUse() bool
            
            
            
               
                  IsPrivateUse 
                  method
                  
                  #
               
               
               IsPrivateUse reports whether this language code is reserved for private use.
               
               func (b Base) IsPrivateUse() bool
            
            
            
               
                  IsPrivateUse 
                  method
                  
                  #
               
               
               IsPrivateUse reports whether this script code is reserved for private use.
               
               func (s Script) IsPrivateUse() bool
            
            
            
               
                  IsRoot 
                  method
                  
                  #
               
               
               IsRoot returns true if t is equal to language "und".
               
               func (t Tag) IsRoot() bool
            
            
            
               
                  Len 
                  method
                  
                  #
               
               
               func (s *tagSort) Len() int
            
            
            
               
                  Len 
                  method
                  
                  #
               
               
               func (b bases) Len() int
            
            
            
               
                  Less 
                  method
                  
                  #
               
               
               func (s *tagSort) Less(i int, j int) bool
            
            
            
               
                  Less 
                  method
                  
                  #
               
               
               func (b bases) Less(i int, j int) bool
            
            
            
               
                  M49 
                  method
                  
                  #
               
               
               M49 returns the UN M.49 encoding of r, or 0 if this encoding
is not defined for r.
               
               func (r Region) M49() int
            
            
            
               
                  Make 
                  method
                  
                  #
               
               
               Make is a convenience wrapper for c.Parse that omits the error.
In case of an error, a sensible default is returned.
               
               func (c CanonType) Make(s string) Tag
            
            
            
               
                  Make 
                  function
                  
                  #
               
               
               Make is a convenience wrapper for Parse that omits the error.
In case of an error, a sensible default is returned.
               
               func Make(s string) Tag
            
            
            
               
                  MarshalText 
                  method
                  
                  #
               
               
               MarshalText implements encoding.TextMarshaler.
               
               func (t Tag) MarshalText() (text []byte, err error)
            
            
            
               
                  Match 
                  method
                  
                  #
               
               
               func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence)
            
            
            
               
                  MatchStrings 
                  function
                  
                  #
               
               
               MatchStrings parses and matches the given strings until one of them matches
the language in the Matcher. A string may be an Accept-Language header as
handled by ParseAcceptLanguage. The default language is returned if no
other language matched.
               
               func MatchStrings(m Matcher, lang ...string) (tag Tag, index int)
            
            
            
               
                  MustParse 
                  function
                  
                  #
               
               
               MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.
It simplifies safe initialization of Tag values.
               
               func MustParse(s string) Tag
            
            
            
               
                  MustParse 
                  method
                  
                  #
               
               
               MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.
It simplifies safe initialization of Tag values.
               
               func (c CanonType) MustParse(s string) Tag
            
            
            
               
                  MustParseBase 
                  function
                  
                  #
               
               
               MustParseBase is like ParseBase, but panics if the given base cannot be parsed.
It simplifies safe initialization of Base values.
               
               func MustParseBase(s string) Base
            
            
            
               
                  MustParseRegion 
                  function
                  
                  #
               
               
               MustParseRegion is like ParseRegion, but panics if the given region cannot be
parsed. It simplifies safe initialization of Region values.
               
               func MustParseRegion(s string) Region
            
            
            
               
                  MustParseScript 
                  function
                  
                  #
               
               
               MustParseScript is like ParseScript, but panics if the given script cannot be
parsed. It simplifies safe initialization of Script values.
               
               func MustParseScript(s string) Script
            
            
            
               
                  NewCoverage 
                  function
                  
                  #
               
               
               NewCoverage returns a Coverage for the given lists. It is typically used by
packages providing internationalization services to define their level of
coverage. A list may be of type []T or func() []T, where T is either Tag,
Base, Script or Region. The returned Coverage derives the value for Bases
from Tags if no func or slice for []Base is specified. For other unspecified
types the returned Coverage will return nil for the respective methods.
               
               func NewCoverage(list ...interface{}) Coverage
            
            
            
               
                  NewMatcher 
                  function
                  
                  #
               
               
               NewMatcher returns a Matcher that matches an ordered list of preferred tags
against a list of supported tags based on written intelligibility, closeness
of dialect, equivalence of subtags and various other rules. It is initialized
with the list of supported tags. The first element is used as the default
value in case no match is found.
Its Match method matches the first of the given Tags to reach a certain
confidence threshold. The tags passed to Match should therefore be specified
in order of preference. Extensions are ignored for matching.
The index returned by the Match method corresponds to the index of the
matched tag in t, but is augmented with the Unicode extension ('u')of the
corresponding preferred tag. This allows user locale options to be passed
transparently.
               
               func NewMatcher(t []Tag, options ...MatchOption) Matcher
            
            
            
               
                  Parent 
                  method
                  
                  #
               
               
               Parent returns the CLDR parent of t. In CLDR, missing fields in data for a
specific language are substituted with fields from the parent language.
The parent for a language may change for newer versions of CLDR.
Parent returns a tag for a less specific language that is mutually
intelligible or Und if there is no such language. This may not be the same as
simply stripping the last BCP 47 subtag. For instance, the parent of "zh-TW"
is "zh-Hant", and the parent of "zh-Hant" is "und".
               
               func (t Tag) Parent() Tag
            
            
            
               
                  Parse 
                  function
                  
                  #
               
               
               Parse parses the given BCP 47 string and returns a valid Tag. If parsing
failed it returns an error and any part of the tag that could be parsed.
If parsing succeeded but an unknown value was found, it returns
ValueError. The Tag returned in this case is just stripped of the unknown
value. All other values are preserved. It accepts tags in the BCP 47 format
and extensions to this standard defined in
https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
The resulting tag is canonicalized using the default canonicalization type.
               
               func Parse(s string) (t Tag, err error)
            
            
            
               
                  Parse 
                  method
                  
                  #
               
               
               Parse parses the given BCP 47 string and returns a valid Tag. If parsing
failed it returns an error and any part of the tag that could be parsed.
If parsing succeeded but an unknown value was found, it returns
ValueError. The Tag returned in this case is just stripped of the unknown
value. All other values are preserved. It accepts tags in the BCP 47 format
and extensions to this standard defined in
https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
The resulting tag is canonicalized using the canonicalization type c.
               
               func (c CanonType) Parse(s string) (t Tag, err error)
            
            
            
               
                  ParseAcceptLanguage 
                  function
                  
                  #
               
               
               ParseAcceptLanguage parses the contents of an Accept-Language header as
defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and
a list of corresponding quality weights. It is more permissive than RFC 2616
and may return non-nil slices even if the input is not valid.
The Tags will be sorted by highest weight first and then by first occurrence.
Tags with a weight of zero will be dropped. An error will be returned if the
input could not be parsed.
               
               func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error)
            
            
            
               
                  ParseBase 
                  function
                  
                  #
               
               
               ParseBase parses a 2- or 3-letter ISO 639 code.
It returns a ValueError if s is a well-formed but unknown language identifier
or another error if another error occurred.
               
               func ParseBase(s string) (Base, error)
            
            
            
               
                  ParseExtension 
                  function
                  
                  #
               
               
               ParseExtension parses s as an extension and returns it on success.
               
               func ParseExtension(s string) (e Extension, err error)
            
            
            
               
                  ParseRegion 
                  function
                  
                  #
               
               
               ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code.
It returns a ValueError if s is a well-formed but unknown region identifier
or another error if another error occurred.
               
               func ParseRegion(s string) (Region, error)
            
            
            
               
                  ParseScript 
                  function
                  
                  #
               
               
               ParseScript parses a 4-letter ISO 15924 code.
It returns a ValueError if s is a well-formed but unknown script identifier
or another error if another error occurred.
               
               func ParseScript(s string) (Script, error)
            
            
            
               
                  ParseVariant 
                  function
                  
                  #
               
               
               ParseVariant parses and returns a Variant. An error is returned if s is not
a valid variant.
               
               func ParseVariant(s string) (Variant, error)
            
            
            
               
                  PreferSameScript 
                  function
                  
                  #
               
               
               PreferSameScript will, in the absence of a match, result in the first
preferred tag with the same script as a supported tag to match this supported
tag. The default is currently true, but this may change in the future.
               
               func PreferSameScript(preferSame bool) MatchOption
            
            
            
               
                  Raw 
                  method
                  
                  #
               
               
               Raw returns the raw base language, script and region, without making an
attempt to infer their values.
               
               func (t Tag) Raw() (b Base, s Script, r Region)
            
            
            
               
                  Region 
                  method
                  
                  #
               
               
               Region returns the region for the language tag. If it was not explicitly given, it will
infer a most likely candidate from the context.
It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.
               
               func (t Tag) Region() (Region, Confidence)
            
            
            
               
                  Regions 
                  method
                  
                  #
               
               
               Regions returns the list of supported regions. As all regions are in a
consecutive range, it simply returns a slice of numbers in increasing order.
The "undefined" region is not returned.
               
               func (s allSubtags) Regions() []Region
            
            
            
               
                  Regions 
                  method
                  
                  #
               
               
               func (s *coverage) Regions() []Region
            
            
            
               
                  Script 
                  method
                  
                  #
               
               
               Script infers the script for the language tag. If it was not explicitly given, it will infer
a most likely candidate.
If more than one script is commonly used for a language, the most likely one
is returned with a low confidence indication. For example, it returns (Cyrl, Low)
for Serbian.
If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined)
as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks
common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts.
See https://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for
unknown value in CLDR.  (Zzzz, Exact) is returned if Zzzz was explicitly specified.
Note that an inferred script is never guaranteed to be the correct one. Latin is
almost exclusively used for Afrikaans, but Arabic has been used for some texts
in the past.  Also, the script that is commonly used may change over time.
It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.
               
               func (t Tag) Script() (Script, Confidence)
            
            
            
               
                  Scripts 
                  method
                  
                  #
               
               
               func (s *coverage) Scripts() []Script
            
            
            
               
                  Scripts 
                  method
                  
                  #
               
               
               Scripts returns the list of supported scripts. As all scripts are in a
consecutive range, it simply returns a slice of numbers in increasing order.
The "undefined" script is not returned.
               
               func (s allSubtags) Scripts() []Script
            
            
            
               
                  SetTypeForKey 
                  method
                  
                  #
               
               
               SetTypeForKey returns a new Tag with the key set to type, where key and type
are of the allowed values defined for the Unicode locale extension ('u') in
https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
An empty value removes an existing pair with the same key.
               
               func (t Tag) SetTypeForKey(key string, value string) (Tag, error)
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               func (c Confidence) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               String returns the script code in title case.
It returns "Zzzz" for an unspecified script.
               
               func (s Script) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               String returns the BCP 47 representation of the base language.
               
               func (b Base) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               String returns the canonical string representation of the language tag.
               
               func (t Tag) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               String returns the string representation of the variant.
               
               func (v Variant) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               String returns the BCP 47 representation for the region.
It returns "ZZ" for an unspecified region.
               
               func (r Region) String() string
            
            
            
               
                  String 
                  method
                  
                  #
               
               
               String returns the string representation of the extension, including the
type tag.
               
               func (e Extension) String() string
            
            
            
               
                  Swap 
                  method
                  
                  #
               
               
               func (b bases) Swap(i int, j int)
            
            
            
               
                  Swap 
                  method
                  
                  #
               
               
               func (s *tagSort) Swap(i int, j int)
            
            
            
               
                  TLD 
                  method
                  
                  #
               
               
               TLD returns the country code top-level domain (ccTLD). UK is returned for GB.
In all other cases it returns either the region itself or an error.
This method may return an error for a region for which there exists a
canonical form with a ccTLD. To get that ccTLD canonicalize r first. The
region will already be canonicalized it was obtained from a Tag that was
obtained using any of the default methods.
               
               func (r Region) TLD() (Region, error)
            
            
            
               
                  Tags 
                  method
                  
                  #
               
               
               Tags always returns nil.
               
               func (s allSubtags) Tags() []Tag
            
            
            
               
                  Tags 
                  method
                  
                  #
               
               
               func (s *coverage) Tags() []Tag
            
            
            
               
                  Tokens 
                  method
                  
                  #
               
               
               Tokens returns the list of tokens of e.
               
               func (e Extension) Tokens() []string
            
            
            
               
                  Type 
                  method
                  
                  #
               
               
               Type returns the one-byte extension type of e. It returns 0 for the zero
exception.
               
               func (e Extension) Type() byte
            
            
            
               
                  TypeForKey 
                  method
                  
                  #
               
               
               TypeForKey returns the type associated with the given key, where key and type
are of the allowed values defined for the Unicode locale extension ('u') in
https://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
TypeForKey will traverse the inheritance chain to get the correct value.
If there are multiple types associated with a key, only the first will be
returned. If there is no type associated with a key, it returns the empty
string.
               
               func (t Tag) TypeForKey(key string) string
            
            
            
               
                  UnmarshalText 
                  method
                  
                  #
               
               
               UnmarshalText implements encoding.TextUnmarshaler.
               
               func (t *Tag) UnmarshalText(text []byte) error
            
            
            
               
                  Variants 
                  method
                  
                  #
               
               
               Variants returns the variants specified explicitly for this language tag.
or nil if no variant was specified.
               
               func (t Tag) Variants() []Variant
            
            
            
               
                  addIfNew 
                  method
                  
                  #
               
               
               addIfNew adds a haveTag to the list of tags only if it is a unique tag.
Tags that have the same maximized values are linked by index.
               
               func (h *matchHeader) addIfNew(n haveTag, exact bool)
            
            
            
               
                  altScript 
                  function
                  
                  #
               
               
               altScript returns an alternative script that may match the given script with
a low confidence.  At the moment, the langMatch data allows for at most one
script to map to another and we rely on this to keep the code simple.
               
               func altScript(l language.Language, s language.Script) language.Script
            
            
            
               
                  canonicalize 
                  function
                  
                  #
               
               
               canonicalize returns the canonicalized equivalent of the tag and
whether there was any change.
               
               func canonicalize(c CanonType, t language.Tag) (language.Tag, bool)
            
            
            
               
                  consume 
                  function
                  
                  #
               
               
               consume removes a leading token c from s and returns the result or the empty
string if there is no such token.
               
               func consume(s string, c byte) string
            
            
            
               
                  equalsRest 
                  function
                  
                  #
               
               
               equalsRest compares everything except the language.
               
               func equalsRest(a language.Tag, b language.Tag) bool
            
            
            
               
                  getBest 
                  method
                  
                  #
               
               
               getBest gets the best matching tag in m for any of the given tags, taking into
account the order of preference of the given tags.
               
               func (m *matcher) getBest(want ...Tag) (got *haveTag, orig language.Tag, c Confidence)
            
            
            
            
            
               
                  init 
                  function
                  
                  #
               
               
               func init()
            
            
            
               
                  isCompact 
                  method
                  
                  #
               
               
               func (t *Tag) isCompact() bool
            
            
            
               
                  isExactEquivalent 
                  function
                  
                  #
               
               
               isExactEquivalent returns true if canonicalizing the language will not alter
the script or region of a tag.
               
               func isExactEquivalent(l language.Language) bool
            
            
            
               
                  isParadigmLocale 
                  function
                  
                  #
               
               
               func isParadigmLocale(lang language.Language, r language.Region) bool
            
            
            
               
                  lang 
                  method
                  
                  #
               
               
               TODO: improve performance.
               
               func (t *Tag) lang() language.Language
            
            
            
               
                  makeHaveTag 
                  function
                  
                  #
               
               
               func makeHaveTag(tag language.Tag, index int) (haveTag, language.Language)
            
            
            
               
                  makeTag 
                  function
                  
                  #
               
               
               func makeTag(t language.Tag) (tag Tag)
            
            
            
               
                  newMatcher 
                  function
                  
                  #
               
               
               newMatcher builds an index for the given supported tags and returns it as
a matcher. It also expands the index by considering various equivalence classes
for a given tag.
               
               func newMatcher(supported []Tag, options []MatchOption) *matcher
            
            
            
               
                  nextToken 
                  function
                  
                  #
               
               
               nextToken returns token t and the rest of the string.
               
               func nextToken(s string) (t string, tail string)
            
            
            
               
                  region 
                  method
                  
                  #
               
               
               func (t *Tag) region() language.Region
            
            
            
               
                  regionGroupDist 
                  function
                  
                  #
               
               
               regionGroupDist computes the distance between two regions based on their
CLDR grouping.
               
               func regionGroupDist(a language.Region, b language.Region, script language.Script, lang language.Language) (dist uint8, same bool)
            
            
            
               
                  script 
                  method
                  
                  #
               
               
               func (t *Tag) script() language.Script
            
            
            
               
                  split 
                  function
                  
                  #
               
               
               func split(s string, c byte) (head string, tail string)
            
            
            
               
                  tag 
                  method
                  
                  #
               
               
               func (t *Tag) tag() language.Tag
            
            
            
               
                  toConf 
                  function
                  
                  #
               
               
               func toConf(d uint8) Confidence
            
            
            
               
                  update 
                  function
                  
                  #
               
               
               func update(b *language.Builder, part ...interface{}) (err error)
            
            
            
               
                  update 
                  method
                  
                  #
               
               
               update updates the existing best match if the new pair is considered to be a
better match. To determine if the given pair is a better match, it first
computes the rough confidence level. If this surpasses the current match, it
will replace it and update the tie-breaker rule cache. If there is a tie, it
proceeds with applying a series of tie-breaker rules. If there is no
conclusive winner after applying the tie-breaker rules, it leaves the current
match as the preferred match.
If pin is true and have and tag are a strong match, it will henceforth only
consider matches for this language. This corresponds to the idea that most
users have a strong preference for the first defined language. A user can
still prefer a second language over a dialect of the preferred language by
explicitly specifying dialects, e.g. "en, nl, en-GB". In this case pin should
be false.
               
               func (m *bestMatch) update(have *haveTag, tag language.Tag, maxScript language.Script, maxRegion language.Region, pin bool)