selectPreferredLanguage
Signature
def selectPreferredLanguage(first: Language, more: Language*): Directive1[Language]
Description
Inspects the request’s Accept-Language
header and determines, which of a given set of language alternatives is preferred by the client according to content negotiation rules defined by http://tools.ietf.org/html/rfc7231#section-5.3.5.
If there are several best language alternatives that the client has equal preference for (even if this preference is zero!) the order of the arguments is used as a tie breaker (first one wins).
Example
val request = Get() ~> `Accept-Language`(
Language("en-US"),
Language("en") withQValue 0.7f,
LanguageRange.`*` withQValue 0.1f,
Language("de") withQValue 0.5f)
request ~> {
selectPreferredLanguage("en", "en-US") { lang =>
complete(lang.toString)
}
} ~> check { responseAs[String] shouldEqual "en-US" }
request ~> {
selectPreferredLanguage("de-DE", "hu") { lang =>
complete(lang.toString)
}
} ~> check { responseAs[String] shouldEqual "de-DE" }