🐛 (locale): Preserva grafía original de "?lang="

Antes, RequestLocale sólo guardaba el LanguageIdentifier ya resuelto,
así que `Context::route()` propagaba siempre la forma canónica en los
enlaces generados ("?lang=en-US"), aunque el usuario hubiera pedido
"?lang=en". Ahora se conserva el valor original de la query junto al
idioma resuelto, y se reutiliza al construir nuevos enlaces mientras
siga siendo válido.

El idioma efectivo para renderizar la petición no cambia: sigue siendo
siempre el LanguageIdentifier canónico soportado por la aplicación.
This commit is contained in:
Manuel Cillero 2026-08-01 08:05:48 +02:00
parent fdd2dca280
commit 3e83f8e35e
2 changed files with 81 additions and 51 deletions

View file

@ -455,7 +455,7 @@ impl Context {
pub fn route(&self, path: impl Into<RoutePath>) -> RoutePath {
let mut route = path.into();
if !route.is_external() && self.locale.needs_lang_query() {
route.alter_param("lang", self.locale.langid().to_string());
route.alter_param("lang", self.locale.lang_query_value());
}
route
}