Como eu posso definir e obter a cultura de uma página Razor?
O idioma em que a “cultura” será definida na ordem:
- Query String na url, exemplo:
?lang=en-US
. - Idioma de preferência do usuário.
- Idioma do Browser.
- Idioma padrão do site.
O método retorna uma string com o idioma. Exemplo:
public class Language { private static string lang; public static string GetCurrent(HttpRequest request) { if (string.IsNullOrEmpty(lang)) { // Verificações ... lang = "resultado das verificações"; } return lang; } }
Eu apenas citei isto, por conta que eu tentei definir a cultura nas páginas Razor:
public void OnGet() { Thread.CurrentThread.CurrentCulture = new CultureInfo(Language.GetCurrent(Request)); Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; }
Porém só obtive sucesso na Startup.cs
, mas não consigo realizar essas verificações pra definir o idioma nela por conta do HttpRequest
não estar presente, também acho que não deve ser o local ideal pra fazer isso.