<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: OficalBlueHair</title>
    <description>The latest articles on DEV Community by OficalBlueHair (@officalbluehair).</description>
    <link>https://dev.to/officalbluehair</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4222551%2F673723d5-9fb6-4285-8ef7-5bd44727ca07.gif</url>
      <title>DEV Community: OficalBlueHair</title>
      <link>https://dev.to/officalbluehair</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/officalbluehair"/>
    <language>en</language>
    <item>
      <title>Türkçe Slug Üretirken I/ı/İ/i Sorununu Çözmek</title>
      <dc:creator>OficalBlueHair</dc:creator>
      <pubDate>Mon, 02 Nov 2026 14:15:26 +0000</pubDate>
      <link>https://dev.to/officalbluehair/turkce-slug-uretirken-iiii-sorununu-cozmek-7la</link>
      <guid>https://dev.to/officalbluehair/turkce-slug-uretirken-iiii-sorununu-cozmek-7la</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Kısa özet: JavaScript'in varsayılan &lt;code&gt;toLowerCase()&lt;/code&gt; davranışı Türkçede&lt;br&gt;
&lt;code&gt;İSTANBUL&lt;/code&gt; kelimesini &lt;code&gt;i̇stanbul&lt;/code&gt;, &lt;code&gt;IĞDIR&lt;/code&gt; kelimesini &lt;code&gt;iğdir&lt;/code&gt; yapar.&lt;br&gt;
&lt;code&gt;turkce-slug&lt;/code&gt;, Türkçe harfleri açık kurallarla işleyen, sıfır runtime&lt;br&gt;
bağımlılıklı bir TypeScript paketi. 616.760 kelimede 0 hata.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Sorun
&lt;/h2&gt;

&lt;p&gt;Türkçede dört I harfi vardır ve JavaScript'in locale'den bağımsız&lt;br&gt;
&lt;code&gt;toLowerCase()&lt;/code&gt; / &lt;code&gt;toUpperCase()&lt;/code&gt; davranışı bunları doğru yönetmez:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;İSTANBUL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "i̇stanbul" (i + combining dot)&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;IĞDIR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;    &lt;span class="c1"&gt;// "iğdir"  (Türkçede "ığdır" olmalı)&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;istanbul&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "ISTANBUL" (Türkçede "İSTANBUL" olmalı)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yüzden birçok slug kütüphanesi Türkçe başlıkları bozar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;İSTANBUL&lt;/code&gt; → &lt;code&gt;istanbul&lt;/code&gt; yerine &lt;code&gt;i̇stanbul&lt;/code&gt; (i + birleşik nokta)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;İstanbul'da Iğdır&lt;/code&gt; → &lt;code&gt;istanbulda-igdir&lt;/code&gt; yerine &lt;code&gt;i̇stanbul'da-iğdir&lt;/code&gt;
veya &lt;code&gt;i-stanbul-da-igdir&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ŞÜKRÜ ÇAĞLAR&lt;/code&gt; → &lt;code&gt;sukru-caglar&lt;/code&gt; yerine &lt;code&gt;şükrü-çağlar&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Case dönüşümünde &lt;code&gt;IĞDIR&lt;/code&gt; → &lt;code&gt;ığdır&lt;/code&gt; yerine &lt;code&gt;iğdir&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Türkçe kuralları açıktır:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Girdi&lt;/th&gt;
&lt;th&gt;Doğru çıktı&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;İ&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ı&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;İ&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ı&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Slug üretiminde ise bu harflerin ASCII karşılıkları gerekir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Çözüm: açık harf eşlemesi
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;turkce-slug&lt;/code&gt;, &lt;code&gt;I/ı/İ/i&lt;/code&gt; için locale'e güvenmek yerine harfleri açıkça&lt;br&gt;
eşler. Bu hem tarayıcıda hem Node.js'te aynı sonucu verir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;slugify&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;turkce-slug&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;İSTANBUL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;              &lt;span class="c1"&gt;// "istanbul"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;IĞDIR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;                 &lt;span class="c1"&gt;// "igdir"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;İstanbul'da Iğdır&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// "istanbulda-igdir"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Çok Güzel Bir Başlık!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "cok-guzel-bir-baslik"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ŞÜKRÜ ÇAĞLAR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;          &lt;span class="c1"&gt;// "sukru-caglar"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fiyat: 100 TL / Ay&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    &lt;span class="c1"&gt;// "fiyat-100-tl-ay"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kurulum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;turkce-slug
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paket ESM ve CommonJS çıktılarını, ayrıca TypeScript tiplerini birlikte&lt;br&gt;
sunar. Runtime bağımlılığı yoktur.&lt;/p&gt;
&lt;h2&gt;
  
  
  Türkçe büyük/küçük harf dönüşümleri
&lt;/h2&gt;

&lt;p&gt;Slug dışında Türkçe case dönüşümleri de doğru çalışır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;toLowercaseTr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;toUppercaseTr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;capitalizeTr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;titleCaseTr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;removePunctuation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;turkce-slug&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nf"&gt;toLowercaseTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;İSTANBUL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "istanbul"&lt;/span&gt;
&lt;span class="nf"&gt;toLowercaseTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;IĞDIR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    &lt;span class="c1"&gt;// "ığdır"&lt;/span&gt;
&lt;span class="nf"&gt;toLowercaseTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ISIK&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// "ısık"&lt;/span&gt;

&lt;span class="nf"&gt;toUppercaseTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;istanbul&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "İSTANBUL"&lt;/span&gt;
&lt;span class="nf"&gt;toUppercaseTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ışık&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// "IŞIK"&lt;/span&gt;

&lt;span class="nf"&gt;capitalizeTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;iĞDIR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// "İğdır"&lt;/span&gt;
&lt;span class="nf"&gt;titleCaseTr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ışık ırmak&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "Işık Irmak"&lt;/span&gt;

&lt;span class="nf"&gt;removePunctuation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Merhaba, dünya!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "Merhaba dünya"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Slug seçenekleri
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Çok Güzel&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;separator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;_&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;       &lt;span class="c1"&gt;// "cok_guzel"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Çok Güzel&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;lowercase&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;     &lt;span class="c1"&gt;// "Cok-Guzel"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Çok güzel bir başlık örneği&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;maxLength&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;                                             &lt;span class="c1"&gt;// "cok-guzel"&lt;/span&gt;
&lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fiyat: 100 TL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;preserveNumbers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt; &lt;span class="c1"&gt;// "fiyat-tl"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;separator&lt;/code&gt; varsayılan &lt;code&gt;"-"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;lowercase&lt;/code&gt; varsayılan &lt;code&gt;true&lt;/code&gt;; kapatınca &lt;code&gt;Ç → C&lt;/code&gt;, &lt;code&gt;İ → I&lt;/code&gt; gibi
kaynak büyüklüğü korunur.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;trim&lt;/code&gt; baş/son separator temizliğini kontrol eder.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;maxLength&lt;/code&gt; mümkünse kelime sınırından keser ve sonucu separator ile
bitirmez.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;preserveNumbers&lt;/code&gt; varsayılan &lt;code&gt;true&lt;/code&gt;; &lt;code&gt;false&lt;/code&gt; iken rakamlar kaldırılır.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  616.760 kelimelik doğrulama
&lt;/h2&gt;

&lt;p&gt;Kütüphanenin gerçekten kapsamlı çalıştığını göstermek için iki MIT lisanslı&lt;br&gt;
kaynaktan oluşturulan &lt;strong&gt;616.760 kelimelik&lt;/strong&gt; bir doğrulama korpusu&lt;br&gt;
kullanıyorum:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/hermitdave/FrequencyWords" rel="noopener noreferrer"&gt;FrequencyWords&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/csariyildiz/turkish-wordlist" rel="noopener noreferrer"&gt;Turkish Wordlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Her kelime için üç kontrol yapılıyor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Slug yalnızca ASCII karakterler içeriyor mu?&lt;/li&gt;
&lt;li&gt;Slug idempotent mi? (&lt;code&gt;slugify(slug) === slug&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Türkçe büyük/küçük harf round-trip tutarlı mı?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sonuç: &lt;strong&gt;616.760 / 616.760 geçti, 0 hata.&lt;/strong&gt; Tüm Türkçe özel harfler&lt;br&gt;
(&lt;code&gt;ç ğ ı ö ş ü â î û&lt;/code&gt;) korpusta yer alıyor. Rapor ve korpus GitHub'da:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/OfficalBlueHair/turkce-slug/blob/main/reports/corpus-report.json" rel="noopener noreferrer"&gt;Doğrulama raporu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OfficalBlueHair/turkce-slug/blob/main/data/turkish-words-616760.txt" rel="noopener noreferrer"&gt;Korpus snapshot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Canlı demo
&lt;/h2&gt;

&lt;p&gt;Tarayıcıda canlı &lt;code&gt;slugify&lt;/code&gt;, Türkçe case dönüşümleri ve kelime doğrulaması:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://officalbluehair.github.io/turkce-slug/" rel="noopener noreferrer"&gt;https://officalbluehair.github.io/turkce-slug/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Demo, 4.205 kelimelik hızlı test setini çalıştırır. Tam 616.760 kelimelik&lt;br&gt;
korpus ve rapor GitHub deposunda bulunur.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kaynaklar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/turkce-slug/v/0.1.0" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/turkce-slug/v/0.1.0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/OfficalBlueHair/turkce-slug" rel="noopener noreferrer"&gt;https://github.com/OfficalBlueHair/turkce-slug&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Lisans: MIT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Türkçe slug veya case dönüşümüyle ilgili bir hata görürsen issue açabilirsin.&lt;br&gt;
Geri bildirim ve katkılar memnuniyetle karşılanır.&lt;/p&gt;

</description>
      <category>turkish</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
