Eventos
Campeonato Mundial de Visualização de Dados do Power BI
14 de fev., 16 - 31 de mar., 16
Com 4 chances de participar, você pode ganhar um pacote de conferência e chegar à Grande Final AO VIVO em Las Vegas
Saiba maisNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Observação
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.
Importante
Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
Para a versão atual, consulte a versão .NET 9 deste artigo.
Por Hisham Bin Ateya
Este artigo:
As APIs de localização ASP.NET Core foram criadas para serem extensíveis. A extensibilidade permite que os desenvolvedores personalizem a localização de acordo com suas necessidades. Por exemplo, OrchardCore tem um POStringLocalizer
. POStringLocalizer
descreve em detalhes o uso da Localização de objeto portátil para usar arquivos PO
para armazenar recursos de localização.
Este artigo lista os dois pontos de extensibilidade principais que as APIs de localização fornecem:
As APIs de localização ASP.NET Core têm quatro provedores padrão que podem determinar a cultura atual de uma solicitação em execução:
Os provedores anteriores são descritos em detalhes na documentação sobre Middleware de localização. Se os provedores padrão não atenderem às suas necessidades, crie um provedor personalizado usando uma das seguintes abordagens:
CustomRequestCultureProvider fornece um RequestCultureProvider personalizado que usa um delegado simples para determinar a cultura de localização atual:
options.AddInitialRequestCultureProvider(new CustomRequestCultureProvider(async context =>
{
var currentCulture = "en";
var segments = context.Request.Path.Value.Split(new char[] { '/' },
StringSplitOptions.RemoveEmptyEntries);
if (segments.Length > 1 && segments[0].Length == 2)
{
currentCulture = segments[0];
}
var requestCulture = new ProviderCultureResult(currentCulture);
return Task.FromResult(requestCulture);
}));
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(async context =>
{
var currentCulture = "en";
var segments = context.Request.Path.Value.Split(new char[] { '/' },
StringSplitOptions.RemoveEmptyEntries);
if (segments.Length > 1 && segments[0].Length == 2)
{
currentCulture = segments[0];
}
var requestCulture = new ProviderCultureResult(currentCulture);
return Task.FromResult(requestCulture);
}));
Uma nova implementação de RequestCultureProvider pode ser criada para determinar as informações de cultura da solicitação de uma fonte personalizada. Por exemplo, a origem personalizada pode ser um arquivo de configuração ou um banco de dados.
O exemplo a seguir mostra AppSettingsRequestCultureProvider
, que estende o RequestCultureProvider para determinar as informações de cultura da solicitação de appsettings.json
:
public class AppSettingsRequestCultureProvider : RequestCultureProvider
{
public string CultureKey { get; set; } = "culture";
public string UICultureKey { get; set; } = "ui-culture";
public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
{
if (httpContext == null)
{
throw new ArgumentNullException();
}
var configuration = httpContext.RequestServices.GetService<IConfigurationRoot>();
var culture = configuration[CultureKey];
var uiCulture = configuration[UICultureKey];
if (culture == null && uiCulture == null)
{
return Task.FromResult((ProviderCultureResult)null);
}
if (culture != null && uiCulture == null)
{
uiCulture = culture;
}
if (culture == null && uiCulture != null)
{
culture = uiCulture;
}
var providerResultCulture = new ProviderCultureResult(culture, uiCulture);
return Task.FromResult(providerResultCulture);
}
}
A localização do ASP.NET Core fornece ResourceManagerStringLocalizer. ResourceManagerStringLocalizer é uma implementação de IStringLocalizer que usa resx
para armazenar recursos de localização.
Você não fica limitado a usar arquivos resx
. Implementando IStringLocalizer
, qualquer fonte de dados pode ser usada.
Os seguintes projetos de exemplo implementam IStringLocalizer:
Comentários do ASP.NET Core
O ASP.NET Core é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
Campeonato Mundial de Visualização de Dados do Power BI
14 de fev., 16 - 31 de mar., 16
Com 4 chances de participar, você pode ganhar um pacote de conferência e chegar à Grande Final AO VIVO em Las Vegas
Saiba mais