Metin harf-büyüklüğü dönüşümü nedir?
Metin harf-büyüklüğü dönüşümü bir giriş dizesini alır ve aynı sözcükleri farklı bir harf-büyüklük konvansiyonunda işlenmiş olarak yayınlar. En yaygın hedefler camelCase ve PascalCase (çoğu süslü parantezli dilde tanımlayıcılar için kullanılır), snake_case ve CONSTANT_CASE (Python, Ruby, Rust, C makroları), kebab-case (URL'ler, CSS sınıf adları, HTML öznitelikleri, npm paket adları), dot.case (yapılandırma anahtarları, JavaScript nesne yolları), path/case (dosya sistemi tarzı tanımlayıcılar), Title Case ve Sentence case (başlıklar ve düzyazı), ayrıca tam lower case ve UPPER CASE'dir. Bu dönüştürücü, girişinizdeki doğal sözcük sınırlarını — boşluklar, tireler, alt çizgiler, noktalar, eğik çizgiler ve helloWorld tarzı tanımlayıcıları işaretleyen lowercase→uppercase geçişleri — algılar ve her hedef harf-büyüklüğünün gerektirdiği ayırıcı ve büyük harf desenleriyle yeniden birleştirir.
Harf-büyüklüğü dönüşümü nasıl çalışır?
Girişiniz, küçük bir vanilla-JavaScript tokenizer'ı ve on bir harf-büyüklüğü formatlayıcısı kullanılarak tamamen tarayıcınızda işlenir. Üst düzey adımlar:
- Girişiniz textarea'dan kelimesi kelimesine okunur — yapıştırdığınız her bayt yerel olarak bellekte tutulur.
- Bir tokenizer, girişi boşluklar, alt çizgiler, tireler, noktalar ve eğik çizgiler üzerinden böler, ardından her parçayı tekrar lowercase→uppercase sınırlarında (yani
helloWorld["hello", "World"]olur) ve harf↔rakam sınırlarında (yaniv2API["v", "2", "API"]olur) ayrıştırır. - Boş tokenlar filtrelenir ve hayatta kalan tokenlar
String.prototype.toLocaleLowerCasekullanılarak küçük harfe çevrilir, böylece Türkçe, Almanca ve diğer dillerdeki Unicode harfler doğru korunur. - On bir formatlayıcı daha sonra tokenları her hedef harf-büyüklüğüne sırayla derler — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (
and,the,ofvb. küçük sözcükler listesiyle, ilk veya son sözcük dışında küçük harfle kalır), Sentence case, tam lower case ve tam UPPER CASE. - Çıktı, sonuç ızgarasında her harf-büyüklüğü için bir satıra yazılır; her satır kendi kopyalama düğmesine sahiptir ve eski tarayıcılar için senkron
document.execCommand('copy')fallback'ı ile asenkron Clipboard API'sini kullanır.
Neden bir harf-büyüklüğü dönüştürücü kullanmalı?
- Tanımlayıcıları yeniden düzenleme: bir JavaScript değişkenini
user_id'denuserId'ye, bir Python fonksiyonunuhelloWorld'denhello_world'a veya bir Rust sabitinimaxBuffer'danMAX_BUFFER'a teker teker karakter düzenlemeden yeniden adlandırın. - Yapılandırma anahtarlarını dönüştürme: camelCase anahtarlarla dolu bir JSON config'ini Python servisi için snake_case YAML'a veya bir Helm chart için kebab-case'e tek yapıştırmayla çevirin.
- Başlık yazma: bir başlık taslağını yapıştırın ve Sentence case formunun (AP Stylebook) yanında Title Case formunu (Chicago Manual of Style küçük sözcükler istisnalarıyla) okuyun — yayınınızın hangisini kullandığına göre seçin.
- URL slug'ları oluşturma: bir blog yazısı başlığını yapıştırın ve kebab-case formunu doğrudan CMS'inizin slug alanına kopyalayın — tokenizer noktalama ve çok sözcüklü ifadeleri sokulara fazla ayraç bırakmadan halleder.
Harf-büyüklüğü dönüşümünün yaygın uygulamaları nelerdir?
Harf-büyüklüğü konvansiyonları arasında geçiş yapmak yazılım mühendisliği, içerik yazımı ve veri mühendisliği genelinde görülür:
- Kod yeniden düzenleme: bir stil rehberi değiştiğinde (örn. JavaScript camelCase → backend yeniden yazımı sırasında Python snake_case) bir kod tabanındaki tanımlayıcıları yazım hatası yapmadan yeniden adlandırma.
- API payload'larını yeniden şekillendirme: camelCase JSON anahtarlarını Ruby on Rails veya Django backend'ine vermeden önce snake_case'e ya da CSS-in-JS sınıf adı için kebab-case'e dönüştürme.
- Başlık ve slug yazımı: Title Case sayfa başlıklarını, Sentence case meta açıklamalarını ve kebab-case URL slug'larını aynı kaynak başlıktan tek adımda üretme.
Bir harf-büyüklüğü dönüşümü örneği nasıl görünür?
Girişe Hello World API yapıştırın. Sonuç ızgarası on bir satırı eşzamanlı render eder: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Sentence case), hello world api (lower case) ve HELLO WORLD API (UPPER CASE). Aynı giriş helloWorldAPI olarak yapıştırılırsa aynı üç sözcüğe tokenize olur — lowercase→uppercase sınır algılayıcı bu şekli de yönetir.
Bu tarayıcımda mı çalışıyor?
Evet. Tokenizer ve on bir harf-büyüklüğü formatlayıcısı, tarayıcı sekmesi içinde çalışan yaklaşık 120 satır vanilla JavaScript'tir. Hiçbir şey yüklenmez, hiçbir service worker girişinizi proxy'lemez ve sayfa, dönüştürme adımının kendisi için sıfır ağ isteği yapmaz. Tek giden trafik standart sayfa-yükleme varlıklarıdır (CSS, fontlar, analitik) — metniniz Ultim8Soft'a hiçbir zaman ulaşmaz.
Değişken adları için hangi harf-büyüklüğü biçimini kullanmalıyım?
Dile ve takımın stil rehberine bağlıdır. JavaScript ve TypeScript kod tabanları değişkenler ve fonksiyonlar için ezici çoğunlukla camelCase, sınıflar ve React bileşenleri için PascalCase ve ortam değişkeni adları ile modül-seviyesi sabitler için CONSTANT_CASE kullanır — Google JavaScript stil rehberi ve Airbnb stil rehberi her ikisi de bu seçimleri sabitler. Python (PEP 8), Ruby ve Rust değişkenler ve fonksiyonlar için snake_case'i, sınıflar için PascalCase'i ve modül-seviyesi sabitler için CONSTANT_CASE'i tercih eder. C ve C++ kod tabanları (Linux çekirdeği, LLVM) fonksiyonlar için snake_case'e ve önişlemci makroları için CONSTANT_CASE'e dayanır. Şüpheye düşerseniz takımınızın linter veya formatter'ını çalıştırın — hangi konvansiyonun zorunlu kılındığını size söyler.
Giriş nasıl tokenize edilir?
Tokenizer önce girişi herhangi bir boşluk, alt çizgi (_), tire (-), nokta (.) veya eğik çizgi (/) dizisi üzerinden böler. Ortaya çıkan her parça sonra tekrar lowercase→uppercase sınırlarında (yani helloWorld ["hello", "World"] olur) ve harf↔rakam sınırlarında (yani v2API ["v", "2", "API"] olur) bölünür. Boş tokenlar filtrelenir ve hayatta kalan tokenlar String.prototype.toLocaleLowerCase aracılığıyla küçük harfe çevrilir. Formatlayıcılar daha sonra tokenları yeniden büyük harfle yazar ve her hedef harf-büyüklüğünün gerektirdiği ayırıcı ile yeniden birleştirir. Strateji altı yaygın tanımlayıcı şeklinin tamamını — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE ve düz boşlukla ayrılmış düzyazı — kutudan çıkar çıkmaz halleder.
Unicode / ASCII olmayan karakterler ne olacak?
Unicode harfler turdan sağ çıkar. Tokenizer, String.prototype.toLocaleLowerCase ve toLocaleUpperCase kullanır; bunlar yerel-spesifik harf-büyüklüğü kurallarını dikkate alır — Türkçe noktalı/noktasız i, Almanca ß'nin SS'ye dönmesi, Fransızca ve İspanyolca'daki aksanlı Latin harfler ve benzeri. Ayırıcı kümesinde (boşluk, _, -, ., /) OLMAYAN harf olmayan karakterler — örneğin rakamlar, aksanlı harfler veya CJK karakterler — göründükleri tokenın içinde tutulur ve harf-büyüklüğü formatlayıcıları onları kelimesi kelimesine tekrar yayınlar. Bu, nœud_principal gibi bir girişin ["nœud", "principal"]'a tokenize olduğu ve nœudPrincipal (camelCase) veya NœudPrincipal (PascalCase) olarak temiz şekilde dönüştüğü anlamına gelir.
Bu harf-büyüklüğü dönüştürücü, tokenizer'ı ve on bir formatlayıcıyı tamamen tarayıcınızda çalıştıran tek bir statik sayfadır — satıcı kütüphanesi yok, dönüştürme başına ağ çağrısı yok, hesap yok. Yukarıya herhangi bir metin yapıştırın, on bir harf-büyüklüğü çıktısını yan yana tarayın ve ihtiyacınız olanı kopyalayın.