2023-07-12 11:28:07 +03:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta http-equiv = "x-ua-compatible" content = "ie=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
2023-07-25 10:58:48 +03:00
< meta name = "generator" content = "ExDoc v0.30.3" >
2023-07-12 11:28:07 +03:00
< meta name = "project" content = "Plausible v0.0.1" >
< title > Plausible.Cldr.AcceptLanguage — Plausible v0.0.1< / title >
2023-07-25 10:58:48 +03:00
< link rel = "stylesheet" href = "dist/html-elixir-P5GXSCHE.css" / >
2023-07-12 11:28:07 +03:00
< script src = "dist/handlebars.runtime-NWIB6V2M.js" > < / script >
2023-07-25 10:58:48 +03:00
< script src = "dist/handlebars.templates-NBND3S2D.js" > < / script >
2023-10-05 12:55:13 +03:00
< script src = "dist/sidebar_items-C578755A.js" > < / script >
2023-07-12 11:28:07 +03:00
< script src = "docs_config.js" > < / script >
2023-07-25 10:58:48 +03:00
< script async src = "dist/html-CGDDOCMI.js" > < / script >
2023-07-12 11:28:07 +03:00
< / head >
< body data-type = "modules" class = "page-module" >
< script >
try {
var settings = JSON.parse(localStorage.getItem('ex_doc:settings') || '{}');
if (settings.theme === 'dark' ||
((settings.theme === 'system' || settings.theme == null) & &
window.matchMedia('(prefers-color-scheme: dark)').matches)
) {
document.body.classList.add('dark')
}
} catch (error) { }
< / script >
< div class = "main" >
< button class = "sidebar-button sidebar-toggle" aria-label = "toggle sidebar" >
< i class = "ri-menu-line ri-lg" title = "Collapse/expand sidebar" > < / i >
< / button >
< section class = "sidebar" >
< form class = "sidebar-search" action = "search.html" >
< button type = "submit" class = "search-button" aria-label = "Submit Search" >
< i class = "ri-search-2-line" aria-hidden = "true" title = "Submit search" > < / i >
< / button >
< button type = "button" tabindex = "-1" class = "search-close-button" aria-label = "Cancel Search" >
< i class = "ri-close-line ri-lg" aria-hidden = "true" title = "Cancel search" > < / i >
< / button >
< label class = "search-label" >
< p class = "sr-only" > Search< / p >
< input name = "q" type = "text" class = "search-input" placeholder = "Search..." aria-label = "Input your search terms" autocomplete = "off" autocorrect = "off" autocapitalize = "off" spellcheck = "false" / >
< / label >
< / form >
< div class = "autocomplete" >
< div class = "autocomplete-results" >
< / div >
< / div >
< div class = "sidebar-header" >
< a href = "readme.html" >
< img src = "assets/logo.png" alt = "Plausible" class = "sidebar-projectImage" >
< / a >
< div class = "sidebar-projectDetails" >
< a href = "readme.html" class = "sidebar-projectName" translate = "no" >
Plausible
< / a >
< div class = "sidebar-projectVersion" translate = "no" >
v0.0.1
< / div >
< / div >
< ul class = "sidebar-listNav" >
< li > < a id = "extras-list-link" href = "#full-list" > Pages< / a > < / li >
< li > < a id = "modules-list-link" href = "#full-list" > Modules< / a > < / li >
< li > < a id = "tasks-list-link" href = "#full-list" > < span translate = "no" > Mix< / span > Tasks< / a > < / li >
< / ul >
< / div >
< div class = "gradient" > < / div >
< ul id = "full-list" > < / ul >
< / section >
< section class = "content" >
< output role = "status" id = "toast" > < / output >
< div class = "content-outer" >
< div id = "content" class = "content-inner" >
< h1 >
< button class = "icon-action display-settings" >
< i class = "ri-settings-3-line" > < / i >
< span class = "sr-only" > Settings< / span >
< / button >
< a href = "https://github.com/plausible/analytics/blob/main/lib/plausible/cldr.ex#L1" title = "View Source" class = "icon-action" rel = "help" >
< i class = "ri-code-s-slash-line" aria-hidden = "true" > < / i >
< span class = "sr-only" > View Source< / span >
< / a >
< span translate = "no" > Plausible.Cldr.AcceptLanguage< / span >
< small class = "app-vsn" translate = "no" > (Plausible v0.0.1)< / small >
< / h1 >
< section id = "moduledoc" >
< p > Parses HTTP < code class = "inline" > Accept-Language< / code > header values as defined in
< a href = "https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4" > rfc2616< / a > .< / p > < p > The Accept-Language request-header field is similar to Accept, but restricts
the set of natural languages that are preferred as a response to the request.
2023-07-24 12:33:21 +03:00
Language tags function are provided in < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.LanguageTag.html" > < code class = "inline" > Cldr.LanguageTag< / code > < / a > .< / p > < p > The format of an < code class = "inline" > Accept-Language< / code > header is as follows in < code class = "inline" > ABNF< / code > format:< / p > < pre > < code class = "makeup elixir" translate = "no" > < span class = "w" > < / span > < span class = "nc" > Accept< / span > < span class = "o" > -< / span > < span class = "nc" > Language< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "s" > " Accept-Language" < / span > < span class = "w" > < / span > < span class = "s" > " :" < / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "mi" > 1< / span > < span class = "c1" > #( language-range [ " ;" " q" " =" qvalue ] )< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "n" > language< / span > < span class = "o" > -< / span > < span class = "n" > range< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "6421673791-1" > (< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "6421673791-2" > (< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "o" > *< / span > < span class = "mi" > 8< / span > < span class = "nc" > ALPHA< / span > < span class = "w" > < / span > < span class = "o" > *< / span > < span class = "p" data-group-id = "6421673791-3" > (< / span > < span class = "w" > < / span > < span class = "s" > " -" < / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "o" > *< / span > < span class = "mi" > 8< / span > < span class = "nc" > ALPHA< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "6421673791-3" > )< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "6421673791-2" > )< / span > < span class = "w" > < / span > < span class = "o" > |< / span > < span class = "w" > < / span > < span class = "s" > " *" < / span > < span class = "w" > < / span > < span class = "p" data-group-id = "6421673791-1" > )< / span > < / code > < / pre > < p > Each language-range MAY be given an associated quality value which represents an
2023-07-12 11:28:07 +03:00
estimate of the user's preference for the languages specified by that range. The
quality value defaults to " q=1" . For example,< / p > < pre > < code class = "makeup elixir" translate = "no" > < span class = "w" > < / span > < span class = "nc" > Accept< / span > < span class = "o" > -< / span > < span class = "ss" > Language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "n" > da< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "n" > en< / span > < span class = "o" > -< / span > < span class = "n" > gb< / span > < span class = "p" > ;< / span > < span class = "n" > q< / span > < span class = "o" > =< / span > < span class = "mf" > 0.8< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "n" > en< / span > < span class = "p" > ;< / span > < span class = "n" > q< / span > < span class = "o" > =< / span > < span class = "mf" > 0.7< / span > < / code > < / pre > < p > would mean: " I prefer Danish, but will accept British English and other types of English." < / p >
< / section >
< section id = "summary" class = "details-list" >
< h1 class = "section-heading" >
< a class = "hover-link" href = "#summary" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
2023-07-25 10:58:48 +03:00
Summary
2023-07-12 11:28:07 +03:00
< / a >
< / h1 >
< div class = "summary-functions summary" >
< h2 >
< a href = "#functions" > Functions< / a >
< / h2 >
< div class = "summary-row" >
< div class = "summary-signature" >
< a href = "#best_match/1" translate = "no" > best_match(accept_language)< / a >
< / div >
< div class = "summary-synopsis" > < p > Parse an < code class = "inline" > Accept-Language< / code > string and return the best match for
2023-07-24 12:33:21 +03:00
a configured < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.html" > < code class = "inline" > Cldr< / code > < / a > locale.< / p > < / div >
2023-07-12 11:28:07 +03:00
< / div >
< div class = "summary-row" >
< div class = "summary-signature" >
< a href = "#parse/1" translate = "no" > parse(tokens_or_string)< / a >
< / div >
< div class = "summary-synopsis" > < p > Parses an < code class = "inline" > Accept-Language< / code > header value in its string
or tokenized form to return a tuple of the form
< code class = "inline" > {:ok, [{quality, %Cldr.LanguageTag{}}, ...]}< / code > sorted by quality.< / p > < / div >
< / div >
< div class = "summary-row" >
< div class = "summary-signature" >
< a href = "#parse!/1" translate = "no" > parse!(accept_language)< / a >
< / div >
< div class = "summary-synopsis" > < p > Parses an < code class = "inline" > Accept-Language< / code > header value in its string
or tokenized form to produce a list of tuples of the form
< code class = "inline" > [{quality, %Cldr.LanguageTag{}}, ...]< / code > sorted by quality
in descending order.< / p > < / div >
< / div >
< / div >
< / section >
< section id = "functions" class = "details-list" >
< h1 class = "section-heading" >
< a class = "hover-link" href = "#functions" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Functions
2023-07-25 10:58:48 +03:00
< / a >
2023-07-12 11:28:07 +03:00
< / h1 >
< div class = "functions-list" >
< section class = "detail" id = "best_match/1" >
< div class = "detail-header" >
< a href = "#best_match/1" class = "detail-link" title = "Link to this function" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
< span class = "sr-only" > Link to this function< / span >
< / a >
< h1 class = "signature" translate = "no" > best_match(accept_language)< / h1 >
< a href = "https://github.com/plausible/analytics/blob/main/lib/plausible/cldr.ex#L1" class = "icon-action" rel = "help" title = "View Source" >
< i class = "ri-code-s-slash-line" aria-hidden = "true" > < / i >
< span class = "sr-only" > View Source< / span >
< / a >
< / div >
< section class = "docstring" >
< div class = "specs" >
< pre translate = "no" > < span class = "attribute" > @spec< / span > best_match(< a href = "https://hexdocs.pm/elixir/String.html#t:t/0" > String.t< / a > ()) ::
2023-07-24 12:33:21 +03:00
{:ok, < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.LanguageTag.html#t:t/0" > Cldr.LanguageTag.t< / a > ()}
2023-07-12 11:28:07 +03:00
| {:error, {Cldr.AcceptLanguageError | Cldr.NoMatchingLocale, < a href = "https://hexdocs.pm/elixir/String.html#t:t/0" > String.t< / a > ()}}< / pre >
< / div >
< p > Parse an < code class = "inline" > Accept-Language< / code > string and return the best match for
2023-07-24 12:33:21 +03:00
a configured < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.html" > < code class = "inline" > Cldr< / code > < / a > locale.< / p > < h2 id = "best_match/1-arguments" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#best_match/1-arguments" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Arguments
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
< ul > < li > < code class = "inline" > accept_langauge< / code > is a string representing an accept language header< / li > < / ul > < h2 id = "best_match/1-returns" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#best_match/1-returns" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Returns
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
< ul > < li > < p > < code class = "inline" > {:ok, language_tag}< / code > or< / p > < / li > < li > < p > < code class = "inline" > {:error, reason}< / code > < / p > < / li > < / ul > < h2 id = "best_match/1-examples" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#best_match/1-examples" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Examples
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
2023-10-05 12:55:13 +03:00
< pre > < code class = "makeup elixir" translate = "no" > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > best_match< / span > < span class = "p" data-group-id = "5312140591-1" > (< / span > < span class = "s" > " da;q=0.1,zh-TW;q=0.3" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" data-group-id = "5312140591-1" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-2" > {< / span > < span class = "ss" > :ok< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-3" > %< / span > < span class = "nc" data-group-id = "5312140591-3" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "5312140591-3" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-4" > [< / span > < span class = "p" data-group-id = "5312140591-4" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-5" > %{< / span > < span class = "p" data-group-id = "5312140591-5" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-6" > %{< / span > < span class = "p" data-group-id = "5312140591-6" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-7" > [< / span > < span class = "p" data-group-id = "5312140591-7" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Hant< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :TW< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-8" > %{< / span > < span class = "p" data-group-id = "5312140591-8" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-9" > [< / span > < span class = "p" data-group-id = "5312140591-9" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-3" > }< / span > < span class = "p" data-group-id = "5312140591-2" > }< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
2023-10-05 12:55:13 +03:00
< / span > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > best_match< / span > < span class = "p" data-group-id = "5312140591-10" > (< / span > < span class = "s" > " da;q=0.1,zh-TW;q=0.3" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" data-group-id = "5312140591-10" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-11" > {< / span > < span class = "ss" > :ok< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-12" > %< / span > < span class = "nc" data-group-id = "5312140591-12" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "5312140591-12" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-13" > [< / span > < span class = "p" data-group-id = "5312140591-13" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-14" > %{< / span > < span class = "p" data-group-id = "5312140591-14" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-15" > %{< / span > < span class = "p" data-group-id = "5312140591-15" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-16" > [< / span > < span class = "p" data-group-id = "5312140591-16" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Hant< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :TW< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-17" > %{< / span > < span class = "p" data-group-id = "5312140591-17" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-18" > [< / span > < span class = "p" data-group-id = "5312140591-18" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-12" > }< / span > < span class = "p" data-group-id = "5312140591-11" > }< / span > < span class = "w" >
< / span > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > best_match< / span > < span class = "p" data-group-id = "5312140591-19" > (< / span > < span class = "s" > " xx,yy;q=0.3" < / span > < span class = "p" data-group-id = "5312140591-19" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-20" > {< / span > < span class = "ss" > :error< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-21" > {< / span > < span class = "nc" > Cldr.NoMatchingLocale< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s" > " No configured locale could be matched to < / span > < span class = "se" > \" < / span > < span class = "s" > xx,yy;q=0.3< / span > < span class = "se" > \" < / span > < span class = "s" > " < / span > < span class = "p" data-group-id = "5312140591-21" > }< / span > < span class = "p" data-group-id = "5312140591-20" > }< / span > < span class = "w" >
< / span > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > best_match< / span > < span class = "p" data-group-id = "5312140591-22" > (< / span > < span class = "s" > " invalid_tag" < / span > < span class = "p" data-group-id = "5312140591-22" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "5312140591-23" > {< / span > < span class = "ss" > :error< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "5312140591-24" > {< / span > < span class = "nc" > Cldr.LanguageTag.ParseError< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s" > " Expected a BCP47 language tag. Could not parse the remaining < / span > < span class = "se" > \" < / span > < span class = "s" > g< / span > < span class = "se" > \" < / span > < span class = "s" > starting at position 11" < / span > < span class = "p" data-group-id = "5312140591-24" > }< / span > < span class = "p" data-group-id = "5312140591-23" > }< / span > < / code > < / pre >
2023-07-12 11:28:07 +03:00
< / section >
< / section >
< section class = "detail" id = "parse/1" >
< div class = "detail-header" >
< a href = "#parse/1" class = "detail-link" title = "Link to this function" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
< span class = "sr-only" > Link to this function< / span >
< / a >
< h1 class = "signature" translate = "no" > parse(tokens_or_string)< / h1 >
< a href = "https://github.com/plausible/analytics/blob/main/lib/plausible/cldr.ex#L1" class = "icon-action" rel = "help" title = "View Source" >
< i class = "ri-code-s-slash-line" aria-hidden = "true" > < / i >
< span class = "sr-only" > View Source< / span >
< / a >
< span class = "note" > (since 2.30.0)< / span >
< / div >
< section class = "docstring" >
< div class = "specs" >
< pre translate = "no" > < span class = "attribute" > @spec< / span > parse([{< a href = "https://hexdocs.pm/elixir/typespecs.html#basic-types" > float< / a > (), < a href = "https://hexdocs.pm/elixir/String.html#t:t/0" > String.t< / a > ()}, ...] | < a href = "https://hexdocs.pm/elixir/String.html#t:t/0" > String.t< / a > ()) ::
{:ok,
[
2023-07-24 12:33:21 +03:00
{< a href = "https://hexdocs.pm/elixir/typespecs.html#basic-types" > float< / a > (), < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.LanguageTag.html#t:t/0" > Cldr.LanguageTag.t< / a > ()}
2023-07-12 11:28:07 +03:00
| {:error, {Cldr.InvalidLanguageTag, < a href = "https://hexdocs.pm/elixir/String.html#t:t/0" > String.t< / a > ()}},
...
]}
| {:error, {Cldr.AcceptLanguageError, < a href = "https://hexdocs.pm/elixir/String.html#t:t/0" > String.t< / a > ()}}< / pre >
< / div >
< p > Parses an < code class = "inline" > Accept-Language< / code > header value in its string
or tokenized form to return a tuple of the form
< code class = "inline" > {:ok, [{quality, %Cldr.LanguageTag{}}, ...]}< / code > sorted by quality.< / p > < h2 id = "parse/1-arguments" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#parse/1-arguments" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Arguments
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
< ul > < li > < p > < code class = "inline" > accept-language< / code > is any string in the format defined by
< a href = "https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4" > rfc2616< / a > < / p > < / li > < li > < p > < code class = "inline" > backend< / code > is any module that includes < code class = "inline" > use Cldr< / code > and therefore
2023-07-24 12:33:21 +03:00
is a < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.html" > < code class = "inline" > Cldr< / code > < / a > backend module< / p > < / li > < / ul > < h2 id = "parse/1-returns" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#parse/1-returns" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Returns
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
< ul > < li > < p > < code class = "inline" > {:ok, [{quality, language_tag}, ...]}< / code > or< / p > < / li > < li > < p > < code class = "inline" > {:error, {Cldr.AcceptLanguageError, String.t}}< / code > < / p > < / li > < / ul > < p > If at least one valid language tag is found but errors are also
detected on one more more tags, an < code class = "inline" > {ok, list}< / code > tuple is returned
wuth an error tuple for each invalid tag added at the end of the list.< / p > < h2 id = "parse/1-example" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#parse/1-example" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Example
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
2023-10-05 12:55:13 +03:00
< pre > < code class = "makeup elixir" translate = "no" > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > parse< / span > < span class = "p" data-group-id = "0476987905-1" > (< / span > < span class = "s" > " da,zh-TW;q=0.3" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" data-group-id = "0476987905-1" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-2" > {< / span > < span class = "ss" > :ok< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-3" > [< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-4" > {< / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-5" > %< / span > < span class = "nc" data-group-id = "0476987905-5" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "0476987905-5" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-6" > [< / span > < span class = "p" data-group-id = "0476987905-6" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-7" > %{< / span > < span class = "p" data-group-id = "0476987905-7" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-8" > %{< / span > < span class = "p" data-group-id = "0476987905-8" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-9" > [< / span > < span class = "p" data-group-id = "0476987905-9" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Latn< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :DK< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-10" > %{< / span > < span class = "p" data-group-id = "0476987905-10" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-11" > [< / span > < span class = "p" data-group-id = "0476987905-11" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-5" > }< / span > < span class = "p" data-group-id = "0476987905-4" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-12" > {< / span > < span class = "mf" > 0.3< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-13" > %< / span > < span class = "nc" data-group-id = "0476987905-13" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "0476987905-13" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-14" > [< / span > < span class = "p" data-group-id = "0476987905-14" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-15" > %{< / span > < span class = "p" data-group-id = "0476987905-15" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-16" > %{< / span > < span class = "p" data-group-id = "0476987905-16" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-17" > [< / span > < span class = "p" data-group-id = "0476987905-17" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Hant< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :TW< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-18" > %{< / span > < span class = "p" data-group-id = "0476987905-18" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-19" > [< / span > < span class = "p" data-group-id = "0476987905-19" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-13" > }< / span > < span class = "p" data-group-id = "0476987905-12" > }< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-3" > ]< / span > < span class = "p" data-group-id = "0476987905-2" > }< / span > < span class = "w" >
< / span > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > parse< / span > < span class = "p" data-group-id = "0476987905-20" > (< / span > < span class = "s" > " invalid_tag" < / span > < span class = "p" data-group-id = "0476987905-20" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-21" > {< / span > < span class = "ss" > :error< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-22" > {< / span > < span class = "nc" > Cldr.LanguageTag.ParseError< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s" > " Expected a BCP47 language tag. Could not parse the remaining < / span > < span class = "se" > \" < / span > < span class = "s" > g< / span > < span class = "se" > \" < / span > < span class = "s" > starting at position 11" < / span > < span class = "p" data-group-id = "0476987905-22" > }< / span > < span class = "p" data-group-id = "0476987905-21" > }< / span > < span class = "w" >
< / span > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > parse< / span > < span class = "p" data-group-id = "0476987905-23" > (< / span > < span class = "s" > " da,zh-TW;q=0.3,invalid_tag" < / span > < span class = "p" data-group-id = "0476987905-23" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-24" > {< / span > < span class = "ss" > :ok< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-25" > [< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-26" > {< / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-27" > %< / span > < span class = "nc" data-group-id = "0476987905-27" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "0476987905-27" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-28" > [< / span > < span class = "p" data-group-id = "0476987905-28" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-29" > %{< / span > < span class = "p" data-group-id = "0476987905-29" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-30" > %{< / span > < span class = "p" data-group-id = "0476987905-30" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-31" > [< / span > < span class = "p" data-group-id = "0476987905-31" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Latn< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :DK< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-32" > %{< / span > < span class = "p" data-group-id = "0476987905-32" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-33" > [< / span > < span class = "p" data-group-id = "0476987905-33" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-27" > }< / span > < span class = "p" data-group-id = "0476987905-26" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-34" > {< / span > < span class = "mf" > 0.3< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-35" > %< / span > < span class = "nc" data-group-id = "0476987905-35" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "0476987905-35" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-36" > [< / span > < span class = "p" data-group-id = "0476987905-36" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-37" > %{< / span > < span class = "p" data-group-id = "0476987905-37" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-38" > %{< / span > < span class = "p" data-group-id = "0476987905-38" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-39" > [< / span > < span class = "p" data-group-id = "0476987905-39" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Hant< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :TW< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-40" > %{< / span > < span class = "p" data-group-id = "0476987905-40" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "0476987905-41" > [< / span > < span class = "p" data-group-id = "0476987905-41" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-35" > }< / span > < span class = "p" data-group-id = "0476987905-34" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-42" > {< / span > < span class = "ss" > :error< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-43" > {< / span > < span class = "nc" > Cldr.LanguageTag.ParseError< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s" > " Expected a BCP47 language tag. Could not parse the remaining < / span > < span class = "se" > \" < / span > < span class = "s" > g< / span > < span class = "se" > \" < / span > < span class = "s" > starting at position 11" < / span > < span class = "p" data-group-id = "0476987905-43" > }< / span > < span class = "p" data-group-id = "0476987905-42" > }< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "0476987905-25" > ]< / span > < span class = "p" data-group-id = "0476987905-24" > }< / span > < / code > < / pre >
2023-07-12 11:28:07 +03:00
< / section >
< / section >
< section class = "detail" id = "parse!/1" >
< div class = "detail-header" >
< a href = "#parse!/1" class = "detail-link" title = "Link to this function" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
< span class = "sr-only" > Link to this function< / span >
< / a >
< h1 class = "signature" translate = "no" > parse!(accept_language)< / h1 >
< a href = "https://github.com/plausible/analytics/blob/main/lib/plausible/cldr.ex#L1" class = "icon-action" rel = "help" title = "View Source" >
< i class = "ri-code-s-slash-line" aria-hidden = "true" > < / i >
< span class = "sr-only" > View Source< / span >
< / a >
< / div >
< section class = "docstring" >
< p > Parses an < code class = "inline" > Accept-Language< / code > header value in its string
or tokenized form to produce a list of tuples of the form
< code class = "inline" > [{quality, %Cldr.LanguageTag{}}, ...]< / code > sorted by quality
in descending order.< / p > < h2 id = "parse!/1-arguments" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#parse!/1-arguments" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Arguments
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
< ul > < li > < code class = "inline" > accept-language< / code > is any string in the format defined by < a href = "https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4" > rfc2616< / a > < / li > < / ul > < h2 id = "parse!/1-returns" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#parse!/1-returns" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Returns
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
2023-07-24 12:33:21 +03:00
< ul > < li > < p > < code class = "inline" > {:ok, [{quality, language_tag}, ...]}< / code > or< / p > < / li > < li > < p > raises a < a href = "https://hexdocs.pm/ex_cldr/2.37.2/Cldr.AcceptLanguageError.html" > < code class = "inline" > Cldr.AcceptLanguageError< / code > < / a > exception< / p > < / li > < / ul > < p > If at least one valid language tag is found but errors are also
2023-07-12 11:28:07 +03:00
detected on one more more tags, an < code class = "inline" > {ok, list}< / code > tuple is returned
wuth an error tuple for each invalid tag added at the end of the list.< / p > < h2 id = "parse!/1-example" class = "section-heading" >
2023-07-25 10:58:48 +03:00
< a href = "#parse!/1-example" >
< i class = "ri-link-m" aria-hidden = "true" > < / i >
Example
2023-07-12 11:28:07 +03:00
< / a >
< / h2 >
2023-10-05 12:55:13 +03:00
< pre > < code class = "makeup elixir" translate = "no" > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > parse!< / span > < span class = "p" data-group-id = "4619050095-1" > (< / span > < span class = "s" > " da,zh-TW;q=0.3" < / span > < span class = "p" data-group-id = "4619050095-1" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-2" > [< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-3" > {< / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-4" > %< / span > < span class = "nc" data-group-id = "4619050095-4" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "4619050095-4" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-5" > [< / span > < span class = "p" data-group-id = "4619050095-5" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-6" > %{< / span > < span class = "p" data-group-id = "4619050095-6" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-7" > %{< / span > < span class = "p" data-group-id = "4619050095-7" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-8" > [< / span > < span class = "p" data-group-id = "4619050095-8" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Latn< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :DK< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-9" > %{< / span > < span class = "p" data-group-id = "4619050095-9" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-10" > [< / span > < span class = "p" data-group-id = "4619050095-10" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-4" > }< / span > < span class = "p" data-group-id = "4619050095-3" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-11" > {< / span > < span class = "mf" > 0.3< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-12" > %< / span > < span class = "nc" data-group-id = "4619050095-12" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "4619050095-12" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-13" > [< / span > < span class = "p" data-group-id = "4619050095-13" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-14" > %{< / span > < span class = "p" data-group-id = "4619050095-14" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-15" > %{< / span > < span class = "p" data-group-id = "4619050095-15" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-16" > [< / span > < span class = "p" data-group-id = "4619050095-16" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Hant< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :TW< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-17" > %{< / span > < span class = "p" data-group-id = "4619050095-17" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-18" > [< / span > < span class = "p" data-group-id = "4619050095-18" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-12" > }< / span > < span class = "p" data-group-id = "4619050095-11" > }< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-2" > ]< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > parse!< / span > < span class = "w" > < / span > < span class = "s" > " invalid_tag" < / span > < span class = "w" >
< / span > < span class = "gt" > ** (Cldr.AcceptLanguageError) " Expected a BCP47 language tag. Could not parse the remaining " g" starting at position 11
(ex_cldr) lib/cldr/accept_language.ex:304: Cldr.AcceptLanguage.parse!/1< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "gp unselectable" > iex> < / span > < span class = "nc" > Plausible.Cldr.AcceptLanguage< / span > < span class = "o" > .< / span > < span class = "n" > parse!< / span > < span class = "p" data-group-id = "4619050095-19" > (< / span > < span class = "s" > " da,zh-TW;q=0.3,invalid_tag" < / span > < span class = "p" data-group-id = "4619050095-19" > )< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-20" > [< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-21" > {< / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-22" > %< / span > < span class = "nc" data-group-id = "4619050095-22" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "4619050095-22" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-23" > [< / span > < span class = "p" data-group-id = "4619050095-23" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-24" > %{< / span > < span class = "p" data-group-id = "4619050095-24" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-25" > %{< / span > < span class = "p" data-group-id = "4619050095-25" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-26" > [< / span > < span class = "p" data-group-id = "4619050095-26" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :da< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " da" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Latn< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :DK< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-27" > %{< / span > < span class = "p" data-group-id = "4619050095-27" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-28" > [< / span > < span class = "p" data-group-id = "4619050095-28" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-22" > }< / span > < span class = "p" data-group-id = "4619050095-21" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-29" > {< / span > < span class = "mf" > 0.3< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-30" > %< / span > < span class = "nc" data-group-id = "4619050095-30" > Cldr.LanguageTag< / span > < span class = "p" data-group-id = "4619050095-30" > {< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > backend< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "nc" > TestBackend.Cldr< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > canonical_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > cldr_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > language_subtags< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-31" > [< / span > < span class = "p" data-group-id = "4619050095-31" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > extensions< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-32" > %{< / span > < span class = "p" data-group-id = "4619050095-32" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > gettext_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "no" > nil< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh" < / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > locale< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-33" > %{< / span > < span class = "p" data-group-id = "4619050095-33" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > private_use< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-34" > [< / span > < span class = "p" data-group-id = "4619050095-34" > ]< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-07-12 11:28:07 +03:00
< / span > < span class = "ss" > rbnf_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :" zh-Hant" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > requested_locale_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > " zh-TW" < / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > script< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :Hant< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > territory< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "ss" > :TW< / span > < span class = "p" > ,< / span > < span class = "w" >
2023-10-05 12:55:13 +03:00
< / span > < span class = "ss" > transform< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-35" > %{< / span > < span class = "p" data-group-id = "4619050095-35" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "ss" > language_variants< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" data-group-id = "4619050095-36" > [< / span > < span class = "p" data-group-id = "4619050095-36" > ]< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-30" > }< / span > < span class = "p" data-group-id = "4619050095-29" > }< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-37" > {< / span > < span class = "ss" > :error< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-38" > {< / span > < span class = "nc" > Cldr.LanguageTag.ParseError< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "s" > " Expected a BCP47 language tag. Could not parse the remaining < / span > < span class = "se" > \" < / span > < span class = "s" > g< / span > < span class = "se" > \" < / span > < span class = "s" > starting at position 11" < / span > < span class = "p" data-group-id = "4619050095-38" > }< / span > < span class = "p" data-group-id = "4619050095-37" > }< / span > < span class = "w" >
< / span > < span class = "p" data-group-id = "4619050095-20" > ]< / span > < / code > < / pre >
2023-07-12 11:28:07 +03:00
< / section >
< / section >
< / div >
< / section >
< footer class = "footer" >
< p >
< span class = "line" >
< button class = "a-main footer-button display-quick-switch" title = "Search HexDocs packages" >
Search HexDocs
< / button >
< a href = "Plausible.epub" title = "ePub version" >
Download ePub version
< / a >
< / span >
< / p >
< p class = "built-using" >
Built using
2023-07-25 10:58:48 +03:00
< a href = "https://github.com/elixir-lang/ex_doc" title = "ExDoc" target = "_blank" rel = "help noopener" translate = "no" > ExDoc< / a > (v0.30.3) for the
2023-07-12 11:28:07 +03:00
< a href = "https://elixir-lang.org" title = "Elixir" target = "_blank" translate = "no" > Elixir programming language< / a >
< / p >
< / footer >
< / div >
< / div >
< / section >
< / div >
< script src = "https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js" > < / script >
< script > mermaid . initialize ( { startOnLoad : true } ) < / script >
< / body >
< / html >