No .NET, há a CultureInfo
classe no System.Globalization
espaço para nome. Possui duas propriedades semelhantes, ambas retornando valores do CultureInfo
tipo: CurrentCulture
e CurrentUICulture
.
Qual a diferença entre eles?
Qual devo usar quando e por quê?
.net
globalization
cultureinfo
splattne
fonte
fonte
CurrentUICulture
que sempre estará nos EUA em uma máquina no idioma inglês, independentemente doCurrentCulture
, que pode ser definido para localizar as Configurações regionais.CurrentCulture
é 'en-GB', masCurrentUICulture
é 'en-US'.Respostas:
CurrentCulture
é a representação do .NET da localidade padrão do usuário do sistema. Isso controla a formatação padrão de número e data e similares.CurrentUICulture
refere-se ao idioma padrão da interface do usuário, uma configuração introduzida no Windows 2000. Isso se refere principalmente à parte de localização / tradução da interface do usuário do seu aplicativo.Quaisquer que sejam as opções regionais em que o sistema está configurado, serão os valores "Atual" no seu aplicativo .NET.
Muitas vezes, eles são os mesmos. Porém, no meu sistema, eles seriam diferentes: prefiro meus números e datas no formato alemão, então
CurrentCulture
seria alemão, mas também prefiro todos os meus aplicativos em inglês, portanto, oCurrentUICulture
inglês.Há um belo artigo sobre o tópico: Classificando tudo: por que temos o CurrentCulture e o CurrentUICulture
fonte
D
) pode conter bastante "idioma":en-US
retorna "sexta-feira, 6 de abril de 2018", enquantoru-RU
retorna "6 de abril de 2018 às.".Este é um truque simples que eu uso para lembrar qual usar:
fonte
Uma boa maneira de fazer a diferença, além das boas explicações feitas por outros usuários, e um aspecto importante no desenvolvimento de aplicativos da web é o seguinte:
CurrentCulture
representa a configuração do servidor web. Por exemplo, se seu aplicativo Web ASP.NET estiver hospedado na Alemanha, o valor deCutlureInfo.CurrentCulture
provavelmente seriade-DE
. Assim, a.ToString()
formatação padrão paraIFormattable
tipos usaria as formações padrão em alemão, ou aquelas que foram configuradas no sistema operacional do servidor como padrões.CurrentUICulture
pode ser capturado do agente do usuário e pode representar a cultura da interface do usuário do cliente que está se conectando ao site. Por exemplo, se você carregar o website da Rússia, suas configurações locais são definidas para usar língua russa, e seu agente usuário envia suas definições de locale para o servidor (Opera e IE fazer isso automaticamente, não tenho certeza para o Chrome e Firefox), oCurrenUICulture
faria representarru-RU
. Isso fará com que todos os recursos, como seqüências de caracteres localizadas recuperadas pelo ResourceManager ou expressões de localização nos arquivos aspx / ascx do ASP.NET, estejam em russo (se houver traduções disponíveis).fonte
Diferenças:
CurrentCulture
é para formatação de datas e moedas,CurrentUICulture
acompanhando o idioma / traduções. Será usado porResourceManager
para procurar recursos por cultura.CurrentCulture
classe está dentro doSystem.Globalization
tempo em queCurrentUICulture
vemSystem.Threading
.CurrentCulture
é persistente em diferentes solicitações na sessão, enquantoCurrentUICulture
precisa ser definido com todas as solicitações.Semelhança:
Ambos são
System.Globalization.CultureInfo
instâncias.fonte
Vale a pena notar que ele
CurrentUICulture
suporta locais não específicos de países como 'en' (culturas neutras), enquantoCurrentCulture
APENAS suporta locais específicos de países como 'en-GB'. DefinirCurrentCulture
uma cultura neutra gerará umaArgumentException
.Suponho que isso ocorra porque formatos como datas e moeda estão mais fortemente vinculados ao próprio país, mas o idioma exibido geralmente é intercambiável entre os países.
fonte