- 28 Mar 2020
- 6,325
- 4,808
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.
Ben programın ismini "Humanizer" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.
Projemiz oluştuktan sonra gerekli kütüphanemizi eklememiz gerekiyor.
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.
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")
Kütüphanemiz yüklendikten sonra
C#:
using Humanizer;
ile kodumuza dahil ediyoruz.
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ç
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!