Humanize Library 를 소개합니다.이 Library는 사용자에게 보여주는 데이타를
각 문화권에 맞게 인간 친화적으로 표시해주는 Library입니다.
출처:https://youtu.be/S3BEfCzYPRU
Nuget에서 Humanizer 패키지를 설치합니다.
여러 언어 버전이 있습니다.
다행히도 한국어 버전도 존재하네요
Humanizer.Core.ko-KR
Humanizer.Core 이건 반드시 설치해야한다고 합니다.
영어외에 타 언어는 해당 언어코드에 맞게 설치해주세요
(현재 36개 언어를 지원)
기본사용법
using Humanizer;
using System.ComponentModel;
string testString = "this is mY Sentence. how Do You Think it WENT?";
Console.WriteLine("TitleCase:" + testString.Transform(To.TitleCase));
“.Transform(To.TitleCase)”
영문의 경우 앞글자 대문자를 자동으로 바꿔줍니다.
(예시)
“PascalCaseInputStringIsTurnedIntoSentence”.Humanize()
결과:“Pascal case input string is turned into sentence”
“Underscored_input_string_is_turned_into_sentence”.Humanize()
결과: “Underscored input string is turned into sentence”
“Underscored_input_String_is_turned_INTO_sentence”.Humanize()
결과:“Underscored input String is turned INTO sentence”
※ 이런식으로 중복해서도 적용할수 있습니다.
Console.WriteLine(“LowerCase,SentenceCase:” + testString.Transform(To.LowerCase,To.SentenceCase));
문장을 줄이고 말줄임표를 자동표시하거나 글자를 가릴수 있습니다.
Console.WriteLine("Truncate(10):" + testString.Truncate(10));
Console.WriteLine("Truncate(10) ***:" + testString.Truncate(10,"***"));
시간관련
//시간
Console.WriteLine(DateTime.Now.AddDays(1).Humanize());
Console.WriteLine(DateTime.Now.AddDays(1).AddSeconds(1).Humanize());
Console.WriteLine(DateTime.Now.AddHours(3.1).Humanize());
Console.WriteLine(DateTime.Now.AddHours(-3).Humanize());
시간에 대해서 한글표현도 자동으로 해줍니다.
단위 표시를 자동 계산 할때
var size = 250.Gigabytes();
Console.WriteLine(size.Megabytes);
Console.WriteLine(size.Terabytes);
Console.WriteLine(size.Humanize());
Console.WriteLine(315d.ToHeading(HeadingStyle.Full));
Console.WriteLine(615d.ToHeading(HeadingStyle.Full));
Console.WriteLine(115d.ToHeading(HeadingStyle.Full));
Console.WriteLine(115d.ToHeadingArrow().ToString());
Console.WriteLine(1015d.ToHeadingArrow().ToString());
※ 추가적으로 enum 객체에 대해서 자동매칭을 해줍니다.
enum 자동매칭을 잘활용하면 대단히 유용할것 같긴 한데 100% 확실할지 미지수이긴 하네요
enum Book
{
SelfHelp,
ScienceFiction,
[Description("The Scary Math category")]
MathAndPhysics
}
Book bookType ="Science Fiction".DehumanizeTo<Book>();
Console.WriteLine(bookType);
bookType= "The Scary Math category".DehumanizeTo<Book>();
Console.WriteLine(bookType);
Full Source
using Humanizer;
using System.ComponentModel;
string testString = "this is mY Sentence. how Do You Think it WENT?";
Console.WriteLine("TitleCase:" + testString.Transform(To.TitleCase));
Console.WriteLine("SentenceCase:" + testString.Transform(To.SentenceCase));
Console.WriteLine("LowerCase:" + testString.Transform(To.LowerCase));
Console.WriteLine("UpperCase:" + testString.Transform(To.UpperCase));
Console.WriteLine("LowerCase,SentenceCase:" + testString.Transform(To.LowerCase,To.SentenceCase));
Console.WriteLine("Truncate(10):" + testString.Truncate(10));
Console.WriteLine("Truncate(10) ***:" + testString.Truncate(10,"***"));
string strname = "홍길동";
Console.WriteLine("Truncate(1)**:" + strname.Truncate(2,"**"));
//출력 This Is My Sentence. How Do You Think It WENT?
Console.WriteLine("Book:" + Book.ScienceFiction);
Console.WriteLine("Book:" + Book.ScienceFiction.Humanize());
Console.WriteLine("Book:" + Book.ScienceFiction.Humanize().Transform(To.TitleCase));
Console.WriteLine("Book:" + Book.MathAndPhysics.Humanize());
Book bookType ="Science Fiction".DehumanizeTo<Book>();
Console.WriteLine(bookType);
bookType= "The Scary Math category".DehumanizeTo<Book>();
Console.WriteLine(bookType);
//시간
Console.WriteLine(DateTime.Now.AddDays(1).Humanize());
Console.WriteLine(DateTime.Now.AddDays(1).AddSeconds(1).Humanize());
Console.WriteLine(DateTime.Now.AddHours(3.1).Humanize());
Console.WriteLine(DateTime.Now.AddHours(-3).Humanize());
Console.WriteLine(5.ToOrdinalWords());
Console.WriteLine("LII".FromRoman());
var size = 250.Gigabytes();
Console.WriteLine(size.Megabytes);
Console.WriteLine(size.Terabytes);
Console.WriteLine(size.Humanize());
Console.WriteLine(315d.ToHeading(HeadingStyle.Full));
Console.WriteLine(615d.ToHeading(HeadingStyle.Full));
Console.WriteLine(115d.ToHeading(HeadingStyle.Full));
Console.WriteLine(115d.ToHeadingArrow().ToString());
Console.WriteLine(1015d.ToHeadingArrow().ToString());
enum Book
{
SelfHelp,
ScienceFiction,
[Description("The Scary Math category")]
MathAndPhysics
}
그외 여러가지 기능이 존재하는것 같습니다. 여러모로 써먹을만한곳이 많아 보입니다.
포스트를 작성하면서 처음 접해본 Library지만 소개못한 기능이 엄청 많아서 놀랐습니다.
생각보다 유명한 Library 같네요