Olá, meu VS está na versão em inglês e as literais do Humanizer acompanham o idioma por default (ex: days, weeks, etc). É possível manter minha versão em inglês e utilizar as saídas do pacote em outro idioma?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, meu VS está na versão em inglês e as literais do Humanizer acompanham o idioma por default (ex: days, weeks, etc). É possível manter minha versão em inglês e utilizar as saídas do pacote em outro idioma?
Oi, Thiago, tudo bem?
A documentação do Humanizer diz que quando o pacote Humanizer é instalado todos os idiomas suportados são instalados. Se você quiser instalar apenas um idioma específico deve instalar o pacote Humanizer.Core.<idioma> (existe um pacote para o português, o Humanizer.Core.pt).
Se você instalou o pacote completo ele vai usar o inglês por padrão. Então para usar outro idioma o código necessário é Humanize(culture: CultureInfo.CurrentCulture), blz?
Dá um feedback aqui pra gente saber se funcionou.
Você pode instalar outro pacote para o português: Humanizer.Core.pt
Meu teste ficou assim:
using Humanizer;
using System;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
// Dia 17 de Agosto de 2018
DateTime dataFimPagamento = new DateTime(2018, 8, 17);
// Data corrente no momento de execução do código
DateTime dataCorrente = DateTime.Now;
TimeSpan diferenca = dataFimPagamento - dataCorrente;
string mensagem = "Vencimento em " + TimeSpanHumanizeExtensions.Humanize(diferenca);
Console.WriteLine(mensagem);
}
}
}Resultado:
Vencimento em 19 semanas
Pressione qualquer tecla para continuar. . .Note que meu Visual Studio está em inglês, e o Humanizer trabalha independente do idioma do VS.
Oi pessoal, tudo beleza?
Fiz o teste, agora instalando o pacote <core.pt> do Nuget, e não funcionou. Adicionei o código sugerido, mas mesmo assim sem sucesso. Notei que mesmo instalando só a versão <core.pt> ele baixa o humanizer.core junto, parece que existe uma dependência. Tentei excluir o <.core> mas só com o <core.pt> ele não compila. Segue o código abaixo...
using System;
using System.Globalization;
using Humanizer;
namespace ByteBank.SistemaAgencia
{
class Program
{
static void Main(string[] args)
{
DateTime dataFimPagamento = new DateTime(2018, 6, 20);
DateTime dataCorrente = DateTime.Now;
TimeSpan diferenca = dataFimPagamento - dataCorrente;
string mensagem = "Vencimento em " + TimeSpanHumanizeExtensions.Humanize(diferenca, culture: CultureInfo.CurrentCulture);
Console.WriteLine(mensagem);
Console.ReadLine();
}
}
}Resultado:
Vencimento em 27 weeks
Nesse caso você deve usar uma sobrecarga do método Humanize que permite forçar a cultura que você deseja (caso contrário ele vai pegar a cultura do seu sistema):
string mensagem = "Vencimento em " + TimeSpanHumanizeExtensions.Humanize(diferenca, 1, System.Globalization.CultureInfo.GetCultureInfo("pt-BR"));
Oi, Thiago, bom dia. E aí, oq achou das sugestões? Dá um feedback pra gente aqui, por favor.
Oi Marcelo, Daniel, tudo bem? Perfeito, deu certo. Ele vai pela região do SO. Forçando a cultura ele converteu. Obrigado pela força. Abraço
Legal, Thiago!
Abraços!