C# Humanizer Kütüphanesinin Kullanımı!

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
a3b2jeo.png


Giriş

Merhaba, bugün sizlere pek bilinmeyen (Tr'de) bir C# kütüphanesi olan Humanizer kütüphanesini anlatacağım.

Öncelikle basit bir tanımla başlamak gerekirse.
Humanizer, sayıları, tarihleri, metinleri ve diğer veri türlerini daha insansı ve doğal bir formata dönüştürerek,
yazılım geliştiricilerine içeriklerini daha anlaşılır ve kullanıcı dostu hale getirme imkanı sunar.

Tabi diğer kütüphanelerde olduğu gibi bu da Türkiye'de bir kaynağa sahip değil bu maalesef, yani çoğunuz ilk kez burada göreceksiniz..
Neyse girişi çok uzatmadan konumuza geçelim, iyi okumalar dilerim!


Kullanım

Öncelikle işe bir proje dosyası oluşturmakla başlayalım.

bvsuofo.png


Ben programın ismini "Humanizer" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

6OfL8I.gif


Projemiz oluştuktan sonra gerekli kütüphanemizi eklememiz gerekiyor.

2scszra.png


Bu işlem için sağ taraftaki "Çözüm Gezgini" kısmından projemizin üstüne sağ tık yapıyoruz ve çıkan kısımdan "NuGet Paketlerini Yönet..." diyoruz.

6OfL8I.gif


7mywt3q.png


Açılan kısımdan "Gözat" kısmına tıklıyoruz ve arama kısmına "Humanizer" yazıyoruz.
İlk çıkanı seçtikten sonra "
Yükle" tuşuna basıyoruz.
(Pek çok dil seçeneği de bulunuyor, Türkçe için: "Humanizer.Core.Tr")


6OfL8I.gif


Kütüphanemiz yüklendikten sonra

aaku1ra.png


C#:
using Humanizer;

ile kodumuza dahil ediyoruz.


6OfL8I.gif


Evet, kütüphanemizi yüklediğimize göre şimdi de genel kullanıma geçebiliriz.

Sayıyı Okunabilir Formata Çevirme
C#:
int Sayi = 12345;
string OkunabilirSayi = Sayi.ToWords(); // "on iki bin üç yüz kırk beş"
Console.WriteLine($"Okunabilir Sayı: {OkunabilirSayi}");

Tarihleri Daha Anlaşılır Hale Getirme
C#:
DateTime tarih = new DateTime(2020, 03, 28);
string AnlasilirTarih = tarih.Humanize(); // "4 yıl önce"
Console.WriteLine($"Anlaşılır Tarih: {AnlasilirTarih}");

Metin Manipülasyonu
C#:
string metin = "Kullanıcılar:Grimner,Pump,Teux";
string AnlasilirMetin = metin.Humanize(); // "Kullanıcılar grimner pump teux"
Console.WriteLine($"Anlaşılır Metin: {AnlasilirMetin}");

Sayıları Ordinal Formata Çevirme
C#:
int OrdinalSayi = 3;
string OrdinalString = OrdinalSayi.Ordinalize(); // "3." (3. yazımı)
Console.WriteLine($"Ordinal Sayı: {OrdinalString}");

Zaman Aralıklarını Daha Anlaşılır Hale Getirme

C#:
// Burada farklı kullanımları olacak. Lazım olanı kullanırsınız.
TimeSpan ZamanAraligi = TimeSpan.FromDays(400); // Gün şeklinde verir. 7 ve üstü hafta olarak çıkar. Yani 400 gün 57 hafta olarak çıkacak.
TimeSpan ZamanAraligi = TimeSpan.FromHours(100); // Saat şeklinde verir. 24 ve üstü gün olarak çıkar. 168 saat üstü ise hafta olarak gösterir. Yani 100 saat 4 gün olarak çıkacak.
TimeSpan ZamanAraligi = TimeSpan.FromMinutes(1000); // Dakika şeklinde verir, diğerlerinde ki gibi çok fazla olursa saat, gün ve hafta şeklinde gösterir. Yani 1000 dakika 16 saat olarak çıkacak.
TimeSpan ZamanAraligi = TimeSpan.FromSeconds(500); // Saniye şeklinde verir, diğerlerinde ki gibi çok fazla olursa dakika, saat, gün ve hafta şeklinde gösterir. Yani 500 saniye 8 dakika olarak çıkacak.
TimeSpan ZamanAraligi = TimeSpan.FromMilliseconds(50000); // Salise şeklinde verir, diğerlerinde ki gibi çok fazla olursa saniye, dakika, saat, gün ve hafta şeklinde gösterir. Yani 50000 milisaniye 50 saniye olarak çıkacak.

// Burası sabit.
string AnlasilirZamanAraligi = ZamanAraligi.Humanize();
Console.WriteLine($"Anlaşılır Zaman Aralığı: {AnlasilirZamanAraligi}");

Zaman Aralıklarını Daha Anlaşılır Hale Getirme
C#:
string OrnekMetin = "TurkHackTeam - Grimner";
string KisalmisMetin = OrnekMetin.Truncate(13); // "TurkHackTeam"
// Burada Truncate kısmında belirttiğimiz sayı kadarını alıyor.
Console.WriteLine($"Kısaltılmış Metin: {KisalmisMetin}");

Rakamları, Roman Rakamlarına Çevirme

C#:
int RomanSayi = 24;
string RomanRakamlari = RomanSayi.ToRoman(); // "XXIV"
Console.WriteLine($"Roma Rakamı: {RomanRakamlari}");

Byte Dönüştürme İşlemleri
C#:
int ByteSayisi = 2048;

string OkunabilirBoyut = ByteSayisi.Bytes().Humanize(); // "2 KB"
string OkunabilirBoyut = ByteSayisi.Megabytes().Humanize();
string OkunabilirBoyut = ByteSayisi.Gigabytes().Humanize();
string OkunabilirBoyut = ByteSayisi.Terabytes().Humanize();

Console.WriteLine($"KB: {OkunabilirBoyut}");

Title Case Şeklinde Ayarlama
C#:
string Metin = "Turk hack team grimner";
string TitleCaseMetin = Metin.Titleize(); // "Turk Hack Team Grimner"
Console.WriteLine($"Title Case: {TitleCaseMetin}");

Çoğul Halini Alma
C#:
string Kelime = "Have";
string CogulHali = Kelime.Pluralize(); // "Haves"
Console.Write($"Çoğul Hali: {CogulHali}");

Sonuç


9hxngx2.png


Kapanış

Evet, genel olarak kütüphanemiz bu kadardı.
Tabi daha farklı kullanım şekilleri de olabilir ancak bu kadarının yeterli olacağını düşündüm.
Daha fazla detay için kütüphanenin dökümanlarını inceleyebilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!​
 

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
Emeğine sağlık brom.
Ellerine sağlık
Teşekkürler.

Harikaymış bu yav.
Aslında basit bir kütüphane ama güzel iş yapıyor.

Hocam elinize sağlık
Teşekkür ederim asistanım.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.