,etiketlerine gerek yok — sadece Markdown yazın." +- icon: "👁" + title: Editörlerde daha iyi + desc: "Markdown, modern IDE'lerde ve metin editörlerinde güzel bir şekilde görüntülenir." +support: + description: "JDK 23'ten itibaren kullanılabilir (Eylül 2024)" diff --git a/translations/content/tr/language/module-import-declarations.yaml b/translations/content/tr/language/module-import-declarations.yaml new file mode 100644 index 0000000..8d9fdcf --- /dev/null +++ b/translations/content/tr/language/module-import-declarations.yaml @@ -0,0 +1,18 @@ +--- +title: Modül içe aktarım bildirimleri +oldApproach: Çok Sayıda İçe Aktarım +modernApproach: import module +summary: "Bir modülün dışa aktardığı tüm paketleri tek bir bildirimle içe aktarın." +explanation: "Modül içe aktarım bildirimleri, bir modülün dışa aktardığı her şeyi tek bir satırla içe aktarmanıza izin verir. Bu, özellikle koleksiyonları, G/Ç'yi, akışları ve daha fazlasını kapsayan java.base için kullanışlıdır." +whyModernWins: +- icon: "🧹" + title: Tek satır + desc: "Uzun içe aktarım listesini tek bir modül içe aktarımıyla değiştirin." +- icon: "📦" + title: Modüle duyarlı + desc: "Tutarlı paket kümelerini içe aktarmak için modül sistemini kullanır." +- icon: "🚀" + title: Hızlı başlangıç + desc: "İçe aktarım listelerinin sıkıcı olduğu betikler ve prototipler için mükemmeldir." +support: + description: "JDK 25 LTS'de tamamlandı (JEP 511, Eylül 2025)." diff --git a/translations/content/tr/language/pattern-matching-instanceof.yaml b/translations/content/tr/language/pattern-matching-instanceof.yaml new file mode 100644 index 0000000..c840043 --- /dev/null +++ b/translations/content/tr/language/pattern-matching-instanceof.yaml @@ -0,0 +1,18 @@ +--- +title: instanceof için kalıp eşleştirme +oldApproach: instanceof + Tür Dönüşümü +modernApproach: Kalıp Değişkeni +summary: "Tür kontrolü ve tür dönüşümünü kalıp eşleştirme ile tek adımda birleştirin." +explanation: "instanceof için kalıp eşleştirme, tür kontrolünden sonra gereksiz tür dönüşümünü ortadan kaldırır. Değişken, kalıbın eşleştiği yerle otomatik olarak kapsamlandırılır; bu da kodu daha güvenli ve kısa yapar." +whyModernWins: +- icon: "🔄" + title: Gereksiz tür dönüşümü yok + desc: "Tür kontrolü ve değişken bağlama tek bir ifadede gerçekleşir." +- icon: "📏" + title: Daha az satır + desc: "İki satır yerine bir satır — tür dönüşümü satırı tamamen ortadan kalkar." +- icon: "🛡️" + title: Kapsam güvenliği + desc: "Kalıp değişkeni yalnızca türün garanti edildiği yerde kapsamdadır." +support: + description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)" diff --git a/translations/content/tr/language/pattern-matching-switch.yaml b/translations/content/tr/language/pattern-matching-switch.yaml new file mode 100644 index 0000000..3544a7b --- /dev/null +++ b/translations/content/tr/language/pattern-matching-switch.yaml @@ -0,0 +1,18 @@ +--- +title: switch'te kalıp eşleştirme +oldApproach: if-else Zinciri +modernApproach: Tür Kalıpları +summary: "if-else instanceof zincirlerini temiz switch tür kalıplarıyla değiştirin." +explanation: "switch'te kalıp eşleştirme, tür testini, tür dönüşümünü ve bağlamayı tek ve özlü bir case etiketinde birleştirerek türlere doğrudan eşleştirmenizi sağlar. Derleyici tamamlığı denetler." +whyModernWins: +- icon: "📐" + title: Yapılandırılmış dağıtım + desc: "switch, dallanma yapısını açık ve taranabilir hale getirir." +- icon: "🎯" + title: İfade biçimi + desc: "Doğrudan bir değer döndürür — değiştirilebilir değişkene gerek yoktur." +- icon: "✅" + title: Kapsamlılık + desc: "Derleyici tüm türlerin işlendiğini sağlar." +support: + description: "JDK 21 LTS'den itibaren geniş çapta kullanılabilir (Eylül 2023)" diff --git a/translations/content/tr/language/primitive-types-in-patterns.yaml b/translations/content/tr/language/primitive-types-in-patterns.yaml new file mode 100644 index 0000000..95ad6c0 --- /dev/null +++ b/translations/content/tr/language/primitive-types-in-patterns.yaml @@ -0,0 +1,18 @@ +--- +title: Kalıplarda temel türler +oldApproach: Manuel Aralık Kontrolleri +modernApproach: Temel Tür Kalıpları +summary: "Kalıp eşleştirme artık yalnızca nesnelerle değil, temel türlerle de çalışır." +explanation: "Java 25, kalıp eşleştirmeyi temel türlere genişletir. int, long, double vb. türleri when koruyucularıyla switch kalıplarında kullanabilirsiniz; bu, kutulama veya manuel aralık kontrollerine olan ihtiyacı ortadan kaldırır." +whyModernWins: +- icon: "📦" + title: Kutulama yok + desc: "Temel türleri doğrudan eşleştirin — Integer sarmalayıcısına gerek yoktur." +- icon: "🎯" + title: Kalıp tutarlılığı + desc: "Nesneler ve temel türler için aynı kalıp sözdizimi." +- icon: "⚡" + title: Daha iyi performans + desc: "Kalıp eşleştirmede otomatik kutulama yükünü önleyin." +support: + description: "JDK 25'te önizleme (üçüncü önizleme, JEP 507). --enable-preview gerektirir." diff --git a/translations/content/tr/language/private-interface-methods.yaml b/translations/content/tr/language/private-interface-methods.yaml new file mode 100644 index 0000000..05ccc6d --- /dev/null +++ b/translations/content/tr/language/private-interface-methods.yaml @@ -0,0 +1,18 @@ +--- +title: Özel interface metotları +oldApproach: Çoğaltılmış Mantık +modernApproach: Özel Metotlar +summary: "Özel metotlar kullanarak interface'lerdeki paylaşılan mantığı çıkarın." +explanation: "Java 9, interface'lerde özel metotlara izin vererek uygulama ayrıntılarını uygulayan sınıflara göstermeden varsayılan metotlar arasında kod paylaşmanıza olanak tanır." +whyModernWins: +- icon: "🧩" + title: Kod yeniden kullanımı + desc: "Tekrar etmeden varsayılan metotlar arasında mantığı paylaşın." +- icon: "🔐" + title: Kapsülleme + desc: "Uygulama ayrıntıları uygulayan sınıflardan gizli kalır." +- icon: "🧹" + title: DRY interface'ler + desc: "Varsayılan metotlar arasında artık kopyala-yapıştır yok." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/language/record-patterns.yaml b/translations/content/tr/language/record-patterns.yaml new file mode 100644 index 0000000..9bb26e0 --- /dev/null +++ b/translations/content/tr/language/record-patterns.yaml @@ -0,0 +1,18 @@ +--- +title: "Record kalıpları (parçalama)" +oldApproach: Manuel Erişim +modernApproach: Parçalama +summary: "Record'ları doğrudan kalıplarda parçalayın — alanları tek adımda çıkarın." +explanation: "Record kalıpları, bir record'un bileşenlerini doğrudan instanceof ve switch içinde ayrıştırmanıza olanak tanır. İç içe kalıplar da desteklenir; bu, ara değişkenler olmadan derin eşleştirmeyi mümkün kılar." +whyModernWins: +- icon: "🎯" + title: Doğrudan çıkarma + desc: "Erişimcileri elle çağırmadan record bileşenlerine erişin." +- icon: "🪆" + title: İç içe geçirilebilir + desc: "Kalıplar iç içe geçirilebilir — tek bir ifadede iç record'larla eşleştirin." +- icon: "📏" + title: Kompakt kod + desc: "Beş satır ikiye dönüşür — daha az tören, aynı netlik." +support: + description: "JDK 21 LTS'den itibaren geniş çapta kullanılabilir (Eylül 2023)" diff --git a/translations/content/tr/language/records-for-data-classes.yaml b/translations/content/tr/language/records-for-data-classes.yaml new file mode 100644 index 0000000..b346807 --- /dev/null +++ b/translations/content/tr/language/records-for-data-classes.yaml @@ -0,0 +1,18 @@ +--- +title: Veri sınıfları için record'lar +oldApproach: Ayrıntılı POJO +modernApproach: record +summary: "Bir satır, değişmez veri taşıyıcılar için 30'dan fazla satır şablon kodunun yerini alır." +explanation: "Record'lar constructor'ı, erişimcileri (x(), y()), equals(), hashCode() ve toString() metodlarını otomatik olarak oluşturur. Tasarım gereği değişmezdirler ve DTO'lar, değer nesneleri ve kalıp eşleştirme için idealdir." +whyModernWins: +- icon: "⚡" + title: Tek satır tanım + desc: "Tek satır constructor, getter'lar, equals, hashCode, toString'in yerini alır." +- icon: "🔒" + title: Varsayılan olarak değişmez + desc: "Tüm alanlar final'dır — setter tuzağı yoktur." +- icon: "🧩" + title: Kalıp dostu + desc: "Record'lar switch ve instanceof'ta parçalama kalıplarıyla çalışır." +support: + description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)" diff --git a/translations/content/tr/language/sealed-classes.yaml b/translations/content/tr/language/sealed-classes.yaml new file mode 100644 index 0000000..9384f7a --- /dev/null +++ b/translations/content/tr/language/sealed-classes.yaml @@ -0,0 +1,18 @@ +--- +title: Tür hiyerarşileri için sealed sınıflar +oldApproach: Açık Hiyerarşi +modernApproach: sealed permits +summary: "Hangi sınıfların bir türü genişletebileceğini kısıtlayın — kapsamlı switch'leri etkinleştirin." +explanation: "Sealed sınıflar, kapalı bir alt tür kümesi tanımlar. Derleyici tüm olası durumları bilir ve varsayılan bir dal olmadan kapsamlı kalıp eşleştirmeyi etkinleştirir. Record'larla birleştirildiğinde cebirsel veri türlerini modeller." +whyModernWins: +- icon: "🔐" + title: Kontrollü hiyerarşi + desc: "Yalnızca izin verilen alt türler genişletebilir — sürpriz alt sınıf yok." +- icon: "✅" + title: Kapsamlı eşleştirme + desc: "Derleyici switch'in tüm durumları kapsadığını doğrular, default gerekmez." +- icon: "📐" + title: Cebirsel veri türleri + desc: "Sum türlerini doğal olarak modelleyin — sealed + record'lar = Java'da ADT'ler." +support: + description: "JDK 17 LTS'den itibaren geniş çapta kullanılabilir (Eylül 2021)" diff --git a/translations/content/tr/language/static-members-in-inner-classes.yaml b/translations/content/tr/language/static-members-in-inner-classes.yaml new file mode 100644 index 0000000..59ec5a5 --- /dev/null +++ b/translations/content/tr/language/static-members-in-inner-classes.yaml @@ -0,0 +1,18 @@ +--- +title: İç sınıflardaki statik üyeler +oldApproach: Statik iç içe sınıf kullanılmalı +modernApproach: İç sınıflarda statik üyeler +summary: "Statik iç içe sınıflar gerektirmeden iç sınıflarda statik üyeler tanımlayın." +explanation: "Java 16'dan önce, yalnızca statik iç içe sınıflar statik üyeler içerebiliyordu. İç (statik olmayan) sınıflar, bir çevreleyen örnek gerektirdiğinden statik üyelere sahip olamazdı. Java 16, bu kısıtlamayı gevşeterek iç sınıflarda statik alanlar, metotlar ve hatta iç içe türlere izin verir." +whyModernWins: +- icon: "🔓" + title: Daha fazla esneklik + desc: "İç sınıflar artık gerektiğinde statik üyelere sahip olabilir." +- icon: "🧩" + title: Paylaşılan durum + desc: "Bir iç sınıfın örnekleri arasında paylaşılan durumu takip edin." +- icon: "📐" + title: Tasarım özgürlüğü + desc: "Yalnızca bir statik alan için statik iç içe sınıfa geçmeye gerek yok." +support: + description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)" diff --git a/translations/content/tr/language/static-methods-in-interfaces.yaml b/translations/content/tr/language/static-methods-in-interfaces.yaml new file mode 100644 index 0000000..2934e08 --- /dev/null +++ b/translations/content/tr/language/static-methods-in-interfaces.yaml @@ -0,0 +1,18 @@ +--- +title: Interface'lerde statik metotlar +oldApproach: Yardımcı sınıflar +modernApproach: Interface statik metotları +summary: "Ayrı yardımcı sınıflar yerine statik yardımcı metotları doğrudan interface'lere ekleyin." +explanation: "Java 8'den önce, bir interface ile ilgili yardımcı metotlar ayrı bir sınıfta (örn. Collection için Collections) yaşamak zorundaydı. Interface'lerdeki statik metotlar, ilgili yardımcı araçları bir arada tutmanızı sağlar. Comparator.comparing(), Stream.of() ve List.of() gibi modern API'lerde yaygındır." +whyModernWins: +- icon: "📦" + title: Daha iyi organizasyon + desc: "İlgili yardımcı araçları ayrı bir sınıfta değil, interface ile birlikte tutun." +- icon: "🔍" + title: Keşfedilebilirlik + desc: "Fabrika ve yardımcı metotlar, onları beklediğiniz yerde bulunur." +- icon: "🧩" + title: API uyumu + desc: "Ayrı *Utils veya *Helper sınıflarına gerek yoktur." +support: + description: "JDK 8'den itibaren kullanılabilir (Mart 2014)" diff --git a/translations/content/tr/language/switch-expressions.yaml b/translations/content/tr/language/switch-expressions.yaml new file mode 100644 index 0000000..0c0340c --- /dev/null +++ b/translations/content/tr/language/switch-expressions.yaml @@ -0,0 +1,18 @@ +--- +title: Switch ifadeleri +oldApproach: Switch Deyimi +modernApproach: Switch İfadesi +summary: "Değer döndüren switch ifadesi — break yok, düşme geçişi yok." +explanation: "Switch ifadeleri doğrudan bir değer döndürür, düşme geçişi hatalarını önlemek için ok sözdizimini kullanır ve derleyici kapsamlılığı doğrular. Bu, hataya açık deyim biçiminin yerini alır." +whyModernWins: +- icon: "🎯" + title: Değer döndürür + desc: "Switch sonucunu doğrudan atayın — geçici değişkene gerek yoktur." +- icon: "🛡️" + title: Düşme geçişi yok + desc: "Ok sözdizimi, eksik break nedeniyle oluşan yanlışlıkla düşme geçişi hatalarını ortadan kaldırır." +- icon: "✅" + title: Kapsamlılık kontrolü + desc: "Derleyici tüm durumların kapsandığını sağlar." +support: + description: "JDK 14'ten itibaren geniş çapta kullanılabilir (Mart 2020)" diff --git a/translations/content/tr/language/text-blocks-for-multiline-strings.yaml b/translations/content/tr/language/text-blocks-for-multiline-strings.yaml new file mode 100644 index 0000000..d70e6ac --- /dev/null +++ b/translations/content/tr/language/text-blocks-for-multiline-strings.yaml @@ -0,0 +1,18 @@ +--- +title: Çok satırlı dizeler için metin blokları +oldApproach: String Birleştirme +modernApproach: Metin Blokları +summary: "Üçlü tırnak metin blokları ile çok satırlı dizeleri doğal olarak yazın." +explanation: "Metin blokları, çok satırlı dizeleri tam olarak göründükleri gibi yazmanıza olanak tanır. Artık tırnak işaretlerini kaçırmak veya \\n eklemek gerekmez. Derleyici, gereksiz girintiyi otomatik olarak kaldırır." +whyModernWins: +- icon: "📖" + title: Olduğu gibi okunabilir + desc: "JSON, SQL ve HTML, kaynak kodunuzda gerçek JSON, SQL ve HTML gibi görünür." +- icon: "🚫" + title: Kaçış cehennemi yok + desc: "Gömülü tırnak işaretleri ters eğik çizgi ile kaçırılmaya gerek yoktur." +- icon: "📐" + title: Akıllı girinti + desc: "Başlangıç boşluğu, kapanış sınırlayıcı konumuna göre otomatik olarak kırpılır." +support: + description: "JDK 15'ten itibaren geniş çapta kullanılabilir (Eylül 2020)" diff --git a/translations/content/tr/language/type-inference-with-var.yaml b/translations/content/tr/language/type-inference-with-var.yaml new file mode 100644 index 0000000..fdb6e85 --- /dev/null +++ b/translations/content/tr/language/type-inference-with-var.yaml @@ -0,0 +1,18 @@ +--- +title: var ile tür çıkarımı +oldApproach: Açık Türler +modernApproach: var anahtar kelimesi +summary: "Yerel değişken tür çıkarımı için var kullanın — daha az gürültü, aynı güvenlik." +explanation: "Java 10'dan itibaren, derleyici yerel değişken türlerini sağ taraftan çıkarır. Bu, tür güvenliğinden ödün vermeden görsel gürültüyü azaltır. Türün bağlamdan açık olduğu durumlarda var kullanın." +whyModernWins: +- icon: "⚡" + title: Daha az şablon kod + desc: "Atamanın her iki tarafında karmaşık genel türleri tekrar etmeye gerek yoktur." +- icon: "👁" + title: Daha iyi okunabilirlik + desc: "Tür bildirimlerine değil, değişken adlarına ve değerlere odaklanın." +- icon: "🔒" + title: Hâlâ tür güvenli + desc: "Derleyici, derleme zamanında tam türü çıkarır ve uygular." +support: + description: "JDK 10'dan itibaren geniş çapta kullanılabilir (Mart 2018)" diff --git a/translations/content/tr/language/unnamed-variables.yaml b/translations/content/tr/language/unnamed-variables.yaml new file mode 100644 index 0000000..063fcd9 --- /dev/null +++ b/translations/content/tr/language/unnamed-variables.yaml @@ -0,0 +1,18 @@ +--- +title: _ ile isimsiz değişkenler +oldApproach: Kullanılmayan Değişken +modernApproach: _ Yer Tutucu +summary: "Bir değişkenin kasıtlı olarak kullanılmadığını belirtmek için _ kullanın." +explanation: "İsimsiz değişkenler, okuyuculara ve araçlara bir değerin kasıtlı olarak görmezden gelindiğini iletir. Artık 'ignored' veya 'unused' adlandırma kurallarına, artık IDE uyarılarına gerek yoktur." +whyModernWins: +- icon: "📢" + title: Net niyet + desc: "_ açıkça 'bu değere burada ihtiyaç yok' der." +- icon: "🔇" + title: Uyarı yok + desc: "IDE'ler ve lint araçları kasıtlı olarak kullanılmayan değişkenleri işaretlemez." +- icon: "🧹" + title: Daha temiz lambda'lar + desc: "Çok parametreli lambda'lar yalnızca bazı parametrelere ihtiyaç duyduğunuzda daha temizdir." +support: + description: "JDK 22'de tamamlandı (JEP 456, Mart 2024)." diff --git a/translations/content/tr/security/key-derivation-functions.yaml b/translations/content/tr/security/key-derivation-functions.yaml new file mode 100644 index 0000000..7f56103 --- /dev/null +++ b/translations/content/tr/security/key-derivation-functions.yaml @@ -0,0 +1,18 @@ +--- +title: Anahtar Türetme Fonksiyonları +oldApproach: Manuel PBKDF2 +modernApproach: KDF API +summary: "Standart KDF API'sini kullanarak kriptografik anahtarlar türetin." +explanation: "KDF API, HKDF dahil anahtar türetme fonksiyonları için standart bir arayüz sağlar. Garip SecretKeyFactory + PBEKeySpec örüntüsünü temiz bir builder API'si ile değiştirir." +whyModernWins: +- icon: "📐" + title: "Temiz API" + desc: "Garip KeySpec yapıcıları yerine builder örüntüsü." +- icon: "🔧" + title: "HKDF desteği" + desc: "PBKDF2'nin yanında modern HKDF algoritması." +- icon: "🛡️" + title: "Standart" + desc: "Tüm anahtar türetme algoritmaları için birleşik API." +support: + description: "JDK 25 LTS'de sonuçlandırıldı (JEP 510, Eylül 2025)." diff --git a/translations/content/tr/security/pem-encoding.yaml b/translations/content/tr/security/pem-encoding.yaml new file mode 100644 index 0000000..8d4a77e --- /dev/null +++ b/translations/content/tr/security/pem-encoding.yaml @@ -0,0 +1,18 @@ +--- +title: PEM kodlama/çözme +oldApproach: Manuel Base64 + Başlıklar +modernApproach: PEM API +summary: "Kriptografik nesneleri yerel olarak PEM formatında kodlayın ve çözün." +explanation: "PEM API, sertifikalar, anahtarlar ve diğer kriptografik nesneler için PEM formatında standart kodlama/çözme sağlar. Artık BEGIN/END başlıklarıyla manuel Base64 sarmalamaya gerek yoktur." +whyModernWins: +- icon: "🧹" + title: "Manuel Base64 yok" + desc: "PEM başlıkları, satır sarmalama ve Base64 otomatik olarak işlenir." +- icon: "🔄" + title: "İki yönlü" + desc: "Tek bir API ile PEM'e kodlama ve PEM'den çözme." +- icon: "🛡️" + title: "Standart format" + desc: "RFC 7468 uyumlu PEM çıktısı üretir." +support: + description: "JDK 25'te önizleme (JEP 470). --enable-preview gerektirir." diff --git a/translations/content/tr/security/random-generator.yaml b/translations/content/tr/security/random-generator.yaml new file mode 100644 index 0000000..b807dbf --- /dev/null +++ b/translations/content/tr/security/random-generator.yaml @@ -0,0 +1,18 @@ +--- +title: RandomGenerator arayüzü +oldApproach: new Random() / ThreadLocalRandom +modernApproach: RandomGenerator fabrikası +summary: "Belirli bir sınıfa bağlı kalmadan rastgele sayı algoritmalarını ada göre seçmek için RandomGenerator arayüzünü kullanın." +explanation: "JDK 17, tüm RNG uygulamaları için ortak arayüz olarak RandomGenerator'ı tanıttı. new Random() veya ThreadLocalRandom'ı sabit kodlamak yerine, farklı kullanım durumları için optimize edilmiş algoritmalar arasında kolayca geçiş yapmayı sağlayan bir fabrika aracılığıyla ada göre algoritma seçebilirsiniz (hız, istatistiksel kalite, bölünebilirlik)." +whyModernWins: +- icon: "🔧" + title: "Algoritmadan bağımsız" + desc: "Kod yapısını değiştirmeden en iyi RNG algoritmasını ada göre seçin." +- icon: "⚡" + title: "Daha iyi algoritmalar" + desc: "Üstün istatistiksel özelliklere sahip modern LXM üreticilerine erişim." +- icon: "🔗" + title: "Birleşik API" + desc: "Tek arayüz; Random, ThreadLocalRandom, SplittableRandom ve daha fazlasını kapsar." +support: + description: "JDK 17'den itibaren kullanılabilir (Eylül 2021, JEP 356)." diff --git a/translations/content/tr/security/strong-random.yaml b/translations/content/tr/security/strong-random.yaml new file mode 100644 index 0000000..a5889e0 --- /dev/null +++ b/translations/content/tr/security/strong-random.yaml @@ -0,0 +1,18 @@ +--- +title: Güçlü rastgele üretim +oldApproach: new SecureRandom() +modernApproach: getInstanceStrong() +summary: "Platformun en güçlü SecureRandom uygulamasını edinin." +explanation: "getInstanceStrong(), platformda en güçlü olarak yapılandırılan SecureRandom uygulamasını döndürür. Bu, securerandom.strongAlgorithms güvenlik özelliği tarafından kontrol edilir." +whyModernWins: +- icon: "🛡️" + title: "Mevcut en güçlüsü" + desc: "Platform için en iyi algoritmayı otomatik olarak seçer." +- icon: "📖" + title: "Açık niyet" + desc: "Güçlü rastgeleliğin gerekli olduğunu açıkça belirtir." +- icon: "🔧" + title: "Yapılandırılabilir" + desc: "Yöneticiler güvenlik özellikleri aracılığıyla güçlü algoritmayı değiştirebilir." +support: + description: JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017) diff --git a/translations/content/tr/security/tls-default.yaml b/translations/content/tr/security/tls-default.yaml new file mode 100644 index 0000000..a3913c8 --- /dev/null +++ b/translations/content/tr/security/tls-default.yaml @@ -0,0 +1,18 @@ +--- +title: Varsayılan olarak TLS 1.3 +oldApproach: Manuel TLS Yapılandırması +modernApproach: Varsayılan TLS 1.3 +summary: "TLS 1.3 varsayılan olarak etkindir — açık protokol yapılandırmasına gerek yoktur." +explanation: "Java 11, TLS 1.3 desteğini ekledi ve onu tercih edilen protokol yaptı. HttpClient bunu otomatik olarak kullanır. Güvenli bağlantılar için artık protokol sürümlerini manuel olarak belirtmeye gerek yoktur." +whyModernWins: +- icon: "🛡️" + title: "Daha güvenli" + desc: "TLS 1.3, eski şifre paketlerini ve el sıkışma örüntülerini kaldırır." +- icon: "⚡" + title: "Daha hızlı el sıkışma" + desc: "TLS 1.3, iki yerine tek bir gidip gelişte tamamlanır." +- icon: "🆓" + title: "Sıfır yapılandırma" + desc: "Varsayılan olarak güvenli — açık protokol seçimine gerek yoktur." +support: + description: JDK 11'den itibaren geniş çapta kullanılabilir (Eylül 2018) diff --git a/translations/content/tr/streams/collectors-flatmapping.yaml b/translations/content/tr/streams/collectors-flatmapping.yaml new file mode 100644 index 0000000..3a1f70a --- /dev/null +++ b/translations/content/tr/streams/collectors-flatmapping.yaml @@ -0,0 +1,18 @@ +--- +title: "Collectors.flatMapping()" +oldApproach: İç içe flatMap +modernApproach: "flatMapping()" +summary: "Gruplama toplayıcısının içinde düzleştirme yapmak için flatMapping() kullanın." +explanation: "Collectors.flatMapping(), bir bire-çok eşlemeyi aşağı akış toplayıcısı olarak uygular. Stream.flatMap() işlevinin toplayıcı karşılığıdır — groupingBy veya partitioningBy içinde kullanışlıdır." +whyModernWins: +- icon: "🧩" + title: Birleştirilebilir + desc: "groupingBy içinde aşağı akış toplayıcısı olarak çalışır." +- icon: "📐" + title: Tek geçiş + desc: "Tek bir akış geçişinde düzleştirme ve gruplama yapılır." +- icon: "🔗" + title: İç içe kullanılabilir + desc: "Diğer aşağı akış toplayıcılarıyla birleştirilebilir." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/streams/optional-ifpresentorelse.yaml b/translations/content/tr/streams/optional-ifpresentorelse.yaml new file mode 100644 index 0000000..4b4e12d --- /dev/null +++ b/translations/content/tr/streams/optional-ifpresentorelse.yaml @@ -0,0 +1,18 @@ +--- +title: "Optional.ifPresentOrElse()" +oldApproach: Optional üzerinde if/else +modernApproach: "ifPresentOrElse()" +summary: "Optional'ın hem mevcut hem de boş durumlarını tek bir çağrıda işleyin." +explanation: "ifPresentOrElse(), mevcut durum için bir Consumer ve boş durum için bir Runnable alır. isPresent/get anti-deseninden kaçınılmasını sağlar." +whyModernWins: +- icon: "📏" + title: Tek ifade + desc: "Her iki durum tek bir metot çağrısında işlenir." +- icon: "🚫" + title: "get() yok" + desc: "Tehlikeli isPresent() + get() desenini ortadan kaldırır." +- icon: "🔗" + title: Akıcı + desc: "findUser() veya Optional döndüren herhangi bir metodun ardından doğal olarak zincirlenir." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/streams/optional-or.yaml b/translations/content/tr/streams/optional-or.yaml new file mode 100644 index 0000000..e730365 --- /dev/null +++ b/translations/content/tr/streams/optional-or.yaml @@ -0,0 +1,18 @@ +--- +title: "Optional.or() ile yedekleme" +oldApproach: İç içe yedekleme +modernApproach: ".or() zinciri" +summary: "İç içe kontroller olmadan Optional yedeklerini zincirleyin." +explanation: "Optional.or(), orijinal Optional'ın bir değeri varsa onu döndürür; yoksa alternatif bir Optional elde etmek için tedarikçiyi değerlendirir. Tedarikçiler gecikmeli çalışır — yalnızca gerektiğinde çağrılır." +whyModernWins: +- icon: "🔗" + title: Zincirlenebilir + desc: "Okunabilir bir boru hattında yedekler arka arkaya eklenir." +- icon: "⚡" + title: Gecikmeli değerlendirme + desc: "Yedek tedarikçiler yalnızca gerekli olduğunda çalışır." +- icon: "📖" + title: Bildirimsel + desc: "'önce birincili dene, yoksa ikincili, yoksa varsayılanı' şeklinde okunur." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/streams/predicate-not.yaml b/translations/content/tr/streams/predicate-not.yaml new file mode 100644 index 0000000..2e95db8 --- /dev/null +++ b/translations/content/tr/streams/predicate-not.yaml @@ -0,0 +1,18 @@ +--- +title: "Predicate.not() ile olumsuzlama" +oldApproach: Lambda olumsuzlama +modernApproach: "Predicate.not()" +summary: "Lambda sarmalayıcılar yazmak yerine metot referanslarını temiz biçimde olumsuzlamak için Predicate.not() kullanın." +explanation: "Java 11'den önce bir metot referansını olumsuzlamak için onu bir lambda içine sarmak gerekiyordu. Predicate.not(), herhangi bir koşulu doğrudan olumsuzlamanıza olanak tanır; bu sayede kod okunabilirliği korunur ve akış hattı boyunca metot referansı stiliyle tutarlılık sağlanır." +whyModernWins: +- icon: "👁" + title: Daha temiz olumsuzlama + desc: "Metot referanslarını olumsuzlamak için lambda içine sarmaya gerek kalmaz." +- icon: "🔗" + title: Birleştirilebilir + desc: "Her Predicate ile çalışır; temiz koşul zincirleri oluşturmayı sağlar." +- icon: "📖" + title: Doğal okunur + desc: "Predicate.not(String::isBlank) İngilizce gibi okunur." +support: + description: "JDK 11'den itibaren kullanılabilir (Eylül 2018)." diff --git a/translations/content/tr/streams/stream-gatherers.yaml b/translations/content/tr/streams/stream-gatherers.yaml new file mode 100644 index 0000000..8dd8bbe --- /dev/null +++ b/translations/content/tr/streams/stream-gatherers.yaml @@ -0,0 +1,18 @@ +--- +title: Stream toplayıcıları +oldApproach: Özel Collector +modernApproach: "gather()" +summary: "Özel ara akış işlemleri için toplayıcılar kullanın." +explanation: "Toplayıcılar (Gatherers), kayan pencereler, sabit boyutlu gruplar ve standart akış işlemleriyle mümkün olmayan tarama işlemleri gibi karmaşık dönüşümleri ifade edebilen yeni bir ara akış işlemidir." +whyModernWins: +- icon: "🧩" + title: Birleştirilebilir + desc: "Toplayıcılar diğer akış işlemleriyle birleştirilebilir." +- icon: "📦" + title: Yerleşik işlemler + desc: "windowFixed, windowSliding, fold ve scan kullanıma hazır gelir." +- icon: "🔧" + title: Genişletilebilir + desc: "Herhangi bir ara dönüşüm için özel toplayıcılar yazılabilir." +support: + description: "JDK 24'te tamamlandı (JEP 485, Mart 2025)." diff --git a/translations/content/tr/streams/stream-iterate-predicate.yaml b/translations/content/tr/streams/stream-iterate-predicate.yaml new file mode 100644 index 0000000..023eaf0 --- /dev/null +++ b/translations/content/tr/streams/stream-iterate-predicate.yaml @@ -0,0 +1,18 @@ +--- +title: "Koşullu Stream.iterate()" +oldApproach: iterate + limit +modernApproach: "iterate(seed, pred, op)" +summary: "Akış biçiminde bir döngü gibi yinelemeyi durdurmak için koşul kullanın." +explanation: "Üç argümanlı Stream.iterate(seed, hasNext, next), bir for döngüsü gibi çalışır: seed başlangıç değeri, hasNext ne zaman duracağını belirler ve next sonraki değeri üretir." +whyModernWins: +- icon: "🎯" + title: Doğal sonlandırma + desc: "Keyfi bir sınır değil, bir koşula göre durun." +- icon: "📐" + title: "for döngüsü karşılığı" + desc: "for(seed; hasNext; next) ile aynı anlambilim." +- icon: "🛡️" + title: Sonsuz akış riski yok + desc: "Koşul, sonlandırmayı garanti eder." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/streams/stream-mapmulti.yaml b/translations/content/tr/streams/stream-mapmulti.yaml new file mode 100644 index 0000000..fc89d78 --- /dev/null +++ b/translations/content/tr/streams/stream-mapmulti.yaml @@ -0,0 +1,18 @@ +--- +title: "Stream.mapMulti()" +oldApproach: "flatMap + List" +modernApproach: "mapMulti()" +summary: "Ara akışlar oluşturmadan her giriş için sıfır veya daha fazla öğe yayın." +explanation: "mapMulti(), her öğe için ara Stream nesneleri oluşturmaktan kaçınan, flatMap'e alternatif bir zorunlu yöntemdir. Eşlemenin az sayıda öğe ürettiği durumlarda daha verimlidir." +whyModernWins: +- icon: "⚡" + title: Daha az bellek kullanımı + desc: "Her öğe için ara Stream oluşturulmaz." +- icon: "🎯" + title: Zorunlu stil + desc: "Döngüler ve koşullar doğrudan kullanılabilir." +- icon: "📐" + title: Esnek + desc: "Tam denetimle sıfır, bir veya çok sayıda öğe yayılabilir." +support: + description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)" diff --git a/translations/content/tr/streams/stream-of-nullable.yaml b/translations/content/tr/streams/stream-of-nullable.yaml new file mode 100644 index 0000000..289f1ae --- /dev/null +++ b/translations/content/tr/streams/stream-of-nullable.yaml @@ -0,0 +1,18 @@ +--- +title: "Stream.ofNullable()" +oldApproach: Null Kontrolü +modernApproach: "ofNullable()" +summary: "Null olabilecek bir değerden sıfır veya bir öğeli akış oluşturun." +explanation: "Stream.ofNullable(), değer null değilse tek öğeli, null ise boş bir akış döndürür. Üçlü null kontrol desenini ortadan kaldırır." +whyModernWins: +- icon: "📏" + title: Özlü + desc: "Tek bir çağrı üçlü koşulun yerini alır." +- icon: "🔗" + title: "flatMap uyumlu" + desc: "flatMap içinde null değerleri atlamak için mükemmeldir." +- icon: "🛡️" + title: Null-güvenli + desc: "NPE riski yok — null boş akışa dönüşür." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/streams/stream-takewhile-dropwhile.yaml b/translations/content/tr/streams/stream-takewhile-dropwhile.yaml new file mode 100644 index 0000000..c899e0e --- /dev/null +++ b/translations/content/tr/streams/stream-takewhile-dropwhile.yaml @@ -0,0 +1,18 @@ +--- +title: "Stream takeWhile / dropWhile" +oldApproach: Manuel Döngü +modernApproach: takeWhile/dropWhile +summary: "Bir koşula göre akıştan öğeleri alın veya atlayın." +explanation: "takeWhile(), koşul doğru olduğu sürece öğeleri döndürür ve ilk yanlışta durur. dropWhile() ise koşul doğru olduğu sürece öğeleri atlar ve kalanları döndürür. Her ikisi de sıralı akışlarda en iyi çalışır." +whyModernWins: +- icon: "🎯" + title: Kısa devre + desc: "Koşul başarısız olduğunda işlemi durur." +- icon: "🔗" + title: Boru hattı uyumlu + desc: "Diğer akış işlemleriyle doğal biçimde zincirlenir." +- icon: "📖" + title: Bildirimsel + desc: "takeWhile 'koşul sağlandığı sürece al' şeklinde okunur." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/streams/stream-tolist.yaml b/translations/content/tr/streams/stream-tolist.yaml new file mode 100644 index 0000000..b4a82d7 --- /dev/null +++ b/translations/content/tr/streams/stream-tolist.yaml @@ -0,0 +1,18 @@ +--- +title: "Stream.toList()" +oldApproach: "Collectors.toList()" +modernApproach: ".toList()" +summary: "Terminal toList(), ayrıntılı collect(Collectors.toList()) çağrısının yerini alır." +explanation: "Stream.toList(), değiştirilemez bir liste döndürür. .collect(Collectors.toUnmodifiableList()) ile eşdeğerdir ancak çok daha kısadır. Not: Collectors.toList()'in aksine sonuç sabittir." +whyModernWins: +- icon: "📏" + title: "7 karakter, 24 değil" + desc: ".toList(), .collect(Collectors.toList()) ifadesinin yerini alır." +- icon: "🔒" + title: Değiştirilemez + desc: "Sonuç liste değiştirilemez." +- icon: "📖" + title: Akıcı + desc: "Boru hattının sonunda doğal biçimde okunur." +support: + description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)" diff --git a/translations/content/tr/streams/virtual-thread-executor.yaml b/translations/content/tr/streams/virtual-thread-executor.yaml new file mode 100644 index 0000000..e8ee19b --- /dev/null +++ b/translations/content/tr/streams/virtual-thread-executor.yaml @@ -0,0 +1,18 @@ +--- +title: Sanal iş parçacığı yürütücüsü +oldApproach: Sabit İş Parçacığı Havuzu +modernApproach: Sanal İş Parçacığı Yürütücüsü +summary: "Sınırsız hafif eşzamanlılık için sanal iş parçacığı yürütücülerini kullanın." +explanation: "Sanal iş parçacığı yürütücüsü her görev için yeni bir sanal iş parçacığı oluşturur. Havuz boyutlandırması gerekmez — sanal iş parçacıkları milyonlarca oluşturulabilecek kadar ucuzdur." +whyModernWins: +- icon: "♾️" + title: Boyutlandırma yok + desc: "Ayarlanacak havuz boyutu yok — gerektiği kadar iş parçacığı oluşturulabilir." +- icon: "⚡" + title: Hafif + desc: "Sanal iş parçacıkları MB değil, KB bellek kullanır." +- icon: "🧹" + title: Otomatik kapatma + desc: "try-with-resources kapatmayı otomatik olarak yönetir." +support: + description: "JDK 21 LTS'den itibaren geniş çapta kullanılabilir (Eylül 2023)" diff --git a/translations/content/tr/strings/string-chars-stream.yaml b/translations/content/tr/strings/string-chars-stream.yaml new file mode 100644 index 0000000..b0e7cca --- /dev/null +++ b/translations/content/tr/strings/string-chars-stream.yaml @@ -0,0 +1,18 @@ +--- +title: Karakter akışı olarak String +oldApproach: Manuel Döngü +modernApproach: "chars() Stream" +summary: "Metin karakterlerini bir akış hattı olarak işleyin." +explanation: "String.chars(), karakter değerlerinden oluşan bir IntStream döndürerek işlevsel işlemeye olanak tanır. Unicode desteği için codePoints(), ek karakterleri doğru biçimde işler." +whyModernWins: +- icon: "🔗" + title: Zincirlenebilir + desc: "Karakter akışları üzerinde filter, map ve collect kullanılabilir." +- icon: "📐" + title: Bildirimsel + desc: "Nasıl döngü kurulacağını değil, ne yapılacağını tanımlayın." +- icon: "🌐" + title: "Unicode'a hazır" + desc: "codePoints(), emoji ve ek karakterleri doğru şekilde işler." +support: + description: "JDK 8+'dan itibaren kullanılabilir (9+'da geliştirildi)" diff --git a/translations/content/tr/strings/string-formatted.yaml b/translations/content/tr/strings/string-formatted.yaml new file mode 100644 index 0000000..fa793bc --- /dev/null +++ b/translations/content/tr/strings/string-formatted.yaml @@ -0,0 +1,18 @@ +--- +title: "String.formatted()" +oldApproach: "String.format()" +modernApproach: "formatted()" +summary: "formatted() metodunu şablon dizesinin kendisi üzerinde çağırın." +explanation: "String.formatted(), String.format() ile eşdeğer bir örnek metodudur; ancak biçim dizesi üzerinde çağrılır. Soldan sağa bir akışta daha doğal okunur." +whyModernWins: +- icon: "📖" + title: Doğal okunur + desc: "Template.formatted(args), String.format(template, args)'tan daha akıcı akar." +- icon: "🔗" + title: Zincirlenebilir + desc: "Diğer String metodlarıyla zincirlenebilir." +- icon: "📏" + title: Daha az ayrıntılı + desc: "Gereksiz String.format() statik çağrısını kaldırır." +support: + description: "JDK 15'ten itibaren geniş çapta kullanılabilir (Eylül 2020)" diff --git a/translations/content/tr/strings/string-indent-transform.yaml b/translations/content/tr/strings/string-indent-transform.yaml new file mode 100644 index 0000000..6767324 --- /dev/null +++ b/translations/content/tr/strings/string-indent-transform.yaml @@ -0,0 +1,18 @@ +--- +title: "String.indent() ve transform()" +oldApproach: Manuel Girintileme +modernApproach: "indent() / transform()" +summary: "Metni girintileyin ve dize dönüşümlerini akıcı biçimde zincirleyin." +explanation: "indent(n), her satıra n boşluk ekler. transform(fn) herhangi bir işlev uygular ve sonucu döndürerek dize işlemlerinin akıcı biçimde zincir oluşturmasını sağlar." +whyModernWins: +- icon: "📏" + title: Yerleşik + desc: "Girintileme yaygın bir işlemdir — artık tek bir çağrıdır." +- icon: "🔗" + title: Zincirlenebilir + desc: "transform(), dizeler üzerinde akıcı boru hatları sağlar." +- icon: "🧹" + title: Temiz kod + desc: "Manuel satır bölme ve StringBuilder döngülerine gerek kalmaz." +support: + description: "JDK 12'den itibaren geniş çapta kullanılabilir (Mart 2019)" diff --git a/translations/content/tr/strings/string-isblank.yaml b/translations/content/tr/strings/string-isblank.yaml new file mode 100644 index 0000000..22b5c01 --- /dev/null +++ b/translations/content/tr/strings/string-isblank.yaml @@ -0,0 +1,18 @@ +--- +title: "String.isBlank()" +oldApproach: "trim().isEmpty()" +modernApproach: "isBlank()" +summary: "Tek bir metot çağrısıyla boş dizeleri kontrol edin." +explanation: "isBlank(), dize boşsa veya yalnızca trim()'in kaçırdığı Unicode boşluk karakterleri de dahil olmak üzere boşluk içeriyorsa true döndürür." +whyModernWins: +- icon: "📖" + title: Kendi kendini belgeler + desc: "isBlank(), neyi kontrol ettiğini tam olarak ifade eder." +- icon: "🌐" + title: "Unicode-bilinçli" + desc: "Yalnızca ASCII değil, tüm Unicode boşluklarını işler." +- icon: "⚡" + title: Bellek tahsisi yok + desc: "Ara kırpılmış dize oluşturulmaz." +support: + description: "JDK 11'den itibaren geniş çapta kullanılabilir (Eylül 2018)" diff --git a/translations/content/tr/strings/string-lines.yaml b/translations/content/tr/strings/string-lines.yaml new file mode 100644 index 0000000..666d3bc --- /dev/null +++ b/translations/content/tr/strings/string-lines.yaml @@ -0,0 +1,18 @@ +--- +title: "String.lines() ile satır bölme" +oldApproach: "split(\"\\\\n\")" +modernApproach: "lines()" +summary: "Regex yükü olmadan metni satırlara bölmek için String.lines() kullanın." +explanation: "String.lines(), \\n, \\r veya \\r\\n ile bölünmüş satırlardan oluşan bir Stream
döndürür. split()'ten daha tembel ve verimlidir; regex derlenmesinden kaçınır ve daha ileri işleme için Stream API ile doğal biçimde entegre olur." +whyModernWins: +- icon: "⚡" + title: Tembel akış + desc: "Satırlar, split() gibi hepsi bir anda değil, isteğe bağlı olarak üretilir." +- icon: "🔧" + title: Evrensel satır sonları + desc: "\\n, \\r ve \\r\\n otomatik olarak regex olmadan işlenir." +- icon: "🔗" + title: Stream entegrasyonu + desc: "filter, map ve collect ile doğrudan kullanım için Stream döndürür." +support: + description: "JDK 11'den itibaren kullanılabilir (Eylül 2018)." diff --git a/translations/content/tr/strings/string-repeat.yaml b/translations/content/tr/strings/string-repeat.yaml new file mode 100644 index 0000000..2ba88e7 --- /dev/null +++ b/translations/content/tr/strings/string-repeat.yaml @@ -0,0 +1,18 @@ +--- +title: "String.repeat()" +oldApproach: StringBuilder Döngüsü +modernApproach: "repeat()" +summary: "Bir dizeyi döngü kullanmadan n kez tekrarlayın." +explanation: "String.repeat(int), dizeyi kendisiyle n kez birleştirerek döndürür. Sınır durumlarını işler: repeat(0) boş dize, repeat(1) aynı dizeyi döndürür." +whyModernWins: +- icon: "📏" + title: Tek satır + desc: "5 satır StringBuilder kodunu tek bir çağrıyla değiştirin." +- icon: "⚡" + title: Optimize edilmiş + desc: "Dahili uygulama büyük tekrarlar için optimize edilmiştir." +- icon: "📖" + title: Net amaç + desc: "repeat(3) amacı hemen ortaya koyar." +support: + description: "JDK 11'den itibaren geniş çapta kullanılabilir (Eylül 2018)" diff --git a/translations/content/tr/strings/string-strip.yaml b/translations/content/tr/strings/string-strip.yaml new file mode 100644 index 0000000..c2e12fa --- /dev/null +++ b/translations/content/tr/strings/string-strip.yaml @@ -0,0 +1,18 @@ +--- +title: "String.strip() ve trim() karşılaştırması" +oldApproach: "trim()" +modernApproach: "strip()" +summary: "strip(), stripLeading() ve stripTrailing() ile Unicode'a duyarlı boşluk temizleme kullanın." +explanation: "trim(), yalnızca U+0020 ve altındaki karakterleri (ASCII kontrol karakterleri ve boşluk) kaldırır. strip(), bölünemez boşluk ve ideografik boşluk gibi Unicode boşluklarını da işleyen Character.isWhitespace() kullanır." +whyModernWins: +- icon: "🌐" + title: "Unicode-doğru" + desc: "Her dilden tüm boşluk karakterlerini işler." +- icon: "🎯" + title: Yönlü + desc: "stripLeading() ve stripTrailing(), tek taraflı kırpma sağlar." +- icon: "🛡️" + title: Daha az hata + desc: "Uluslararası metinlerde geride kalan sürpriz boşluk kalmaz." +support: + description: "JDK 11'den itibaren geniş çapta kullanılabilir (Eylül 2018)" diff --git a/translations/content/tr/tooling/aot-class-preloading.yaml b/translations/content/tr/tooling/aot-class-preloading.yaml new file mode 100644 index 0000000..4209f90 --- /dev/null +++ b/translations/content/tr/tooling/aot-class-preloading.yaml @@ -0,0 +1,18 @@ +--- +title: AOT sınıf ön yükleme +oldApproach: Her Seferinde Soğuk Başlangıç +modernApproach: AOT Önbelleği +summary: "Anında başlangıç için sınıf yükleme ve derlemeyi önbelleğe alın." +explanation: "AOT sınıf ön yükleme, eğitim çalışmasından yüklenen ve bağlanan sınıfları önbelleğe alır. Sonraki başlangıçlarda sınıflar önbellekten yüklenerek doğrulama ve bağlama adımları atlanır. AOT derlemesiyle birleştirildiğinde başlangıç süresi önemli ölçüde azalır." +whyModernWins: +- icon: "⚡" + title: Daha hızlı başlangıç + desc: "Sınıf yükleme, doğrulama ve bağlama adımları atlanır." +- icon: "📦" + title: Önbelleğe alınmış durum + desc: "Eğitim çalışması ideal sınıf durumunu yakalar." +- icon: "🔧" + title: Kod değişikliği gerekmez + desc: "Mevcut uygulamalarla çalışır — yalnızca JVM bayrakları eklenir." +support: + description: "JDK 25 LTS'de standart özellik olarak kullanılabilir (JEP 514/515, Eylül 2025)." diff --git a/translations/content/tr/tooling/built-in-http-server.yaml b/translations/content/tr/tooling/built-in-http-server.yaml new file mode 100644 index 0000000..37c3984 --- /dev/null +++ b/translations/content/tr/tooling/built-in-http-server.yaml @@ -0,0 +1,18 @@ +--- +title: Yerleşik HTTP sunucusu +oldApproach: Harici Sunucu / Çerçeve +modernApproach: jwebserver CLI +summary: "Java 18, prototipleme ve dosya sunumu için yerleşik minimal bir HTTP sunucusu içerir." +explanation: "JDK 18, jwebserver komut satırı aracı veya SimpleFileServer API aracılığıyla erişilebilen basit, sıfır bağımlılıklı bir HTTP dosya sunucusu ekledi. Belirli bir dizindeki statik dosyaları yapılandırma gerekmeksizin sunar. CLI aracı hızlı prototipleme, test etme ve geçici dosya paylaşımı için idealdir — harici bağımlılık veya çerçeve gerekmez. API, özelleştirilebilir işleyiciler ve çıktı seviyeleriyle programlı kullanıma olanak tanır." +whyModernWins: +- icon: "🚀" + title: Sıfır kurulum + desc: "Herhangi bir dizinde jwebserver komutunu çalıştırın — kurulum, yapılandırma veya bağımlılık gerekmez." +- icon: "📦" + title: JDK'ya dahil + desc: "Her JDK 18+ kurulumunda gelir; Java yüklü her makinede kullanılabilir." +- icon: "🧪" + title: Prototipleme için harika + desc: "HTML, API veya ön uç geliştirmeyi test etmek için statik dosyaları anında sunun." +support: + description: "JDK 18'den itibaren kullanılabilir (Mart 2022)" diff --git a/translations/content/tr/tooling/compact-object-headers.yaml b/translations/content/tr/tooling/compact-object-headers.yaml new file mode 100644 index 0000000..1a9f8a2 --- /dev/null +++ b/translations/content/tr/tooling/compact-object-headers.yaml @@ -0,0 +1,18 @@ +--- +title: Kompakt nesne başlıkları +oldApproach: 128 bit Başlıklar +modernApproach: 64 bit Başlıklar +summary: "Daha iyi bellek yoğunluğu ve önbellek kullanımı için nesne başlık boyutunu yarıya indirin." +explanation: "Kompakt nesne başlıkları, 64 bit platformlarda nesne başına ek yükü 128 bitten 64 bite düşürür. Bu durum belleği tasarruf eder ve özellikle çok sayıda küçük nesne içeren uygulamalarda önbellek kullanımını iyileştirir." +whyModernWins: +- icon: "📦" + title: "%50 daha küçük başlıklar" + desc: "Nesne başına 16 yerine 8 bayt." +- icon: "⚡" + title: Daha iyi önbellek kullanımı + desc: "CPU önbellek satırlarına daha fazla nesne sığar." +- icon: "📊" + title: Daha yüksek yoğunluk + desc: "Aynı heap boyutuna daha fazla nesne yerleştirin." +support: + description: "JDK 25 LTS'de tamamlandı (JEP 519, Eylül 2025)." diff --git a/translations/content/tr/tooling/jfr-profiling.yaml b/translations/content/tr/tooling/jfr-profiling.yaml new file mode 100644 index 0000000..be72259 --- /dev/null +++ b/translations/content/tr/tooling/jfr-profiling.yaml @@ -0,0 +1,18 @@ +--- +title: Profilleme için JFR +oldApproach: Harici Profil Aracı +modernApproach: Java Flight Recorder +summary: "Herhangi bir Java uygulamasını yerleşik Flight Recorder ile profilleyin — harici araç gerekmez." +explanation: "Java Flight Recorder (JFR), JVM'e yerleşik düşük ek yüklü bir profilleme aracıdır. CPU, bellek, GC, G/Ç, iş parçacıkları ve özel olaylar için minimal performans etkisiyle (~%1) olayları yakalar." +whyModernWins: +- icon: "🆓" + title: Yerleşik + desc: "Kurulacak veya lisanslanacak harici profil aracı yok." +- icon: "⚡" + title: Düşük ek yük + desc: "~%1 performans etkisi — üretimde kullanıma güvenli." +- icon: "📊" + title: Zengin olaylar + desc: "CPU, bellek, GC, iş parçacıkları, G/Ç, kilitler ve özel olaylar." +support: + description: "JDK 9/11'den itibaren geniş çapta kullanılabilir (11'de açık kaynak yapıldı)" diff --git a/translations/content/tr/tooling/jshell-prototyping.yaml b/translations/content/tr/tooling/jshell-prototyping.yaml new file mode 100644 index 0000000..ca288ce --- /dev/null +++ b/translations/content/tr/tooling/jshell-prototyping.yaml @@ -0,0 +1,18 @@ +--- +title: Prototipleme için JShell +oldApproach: "Dosya Oluştur + Derle + Çalıştır" +modernApproach: jshell REPL +summary: "Dosya oluşturmadan Java ifadelerini etkileşimli olarak deneyin." +explanation: "JShell, Java için bir Oku-Değerlendir-Yazdır Döngüsüdür. Dosya oluşturmak, derlemek veya main metodu yazmak zorunda kalmadan ifadeleri test edin, API'leri deneyin ve kod prototipleri oluşturun. Sekme tamamlama ve satır içi belgeler dahildir." +whyModernWins: +- icon: "⚡" + title: Anında geri bildirim + desc: "Bir ifade yazın, sonucu hemen görün." +- icon: "📝" + title: Dosya gerekmez + desc: ".java dosyası veya derleme adımı gerekmez." +- icon: "🔍" + title: API keşfi + desc: "Sekme tamamlama, metot ve parametreleri keşfetmeye yardımcı olur." +support: + description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)" diff --git a/translations/content/tr/tooling/junit6-with-jspecify.yaml b/translations/content/tr/tooling/junit6-with-jspecify.yaml new file mode 100644 index 0000000..e0188ec --- /dev/null +++ b/translations/content/tr/tooling/junit6-with-jspecify.yaml @@ -0,0 +1,18 @@ +--- +title: "JSpecify null güvenliği ile JUnit 6" +oldApproach: Açıklamasız API +modernApproach: "@NullMarked API" +summary: "JUnit 6, JSpecify @NullMarked'ı benimseyerek null sözleşmelerini doğrulama API'si genelinde açık hale getirir." +explanation: "JUnit 5, standartlaştırılmış null olabilirlik açıklamaları olmadan geldi; bu durum geliştiricilerin doğrulama parametrelerinin veya dönüş değerlerinin null olup olmayacağını tahmin etmesine neden oldu. JUnit 6, tüm modülü genelinde JSpecify'ı benimser: @NullMarked açıklaması varsayılan olarak tüm açıklamasız türleri null olmayan yapar ve @Nullable istisnaları işaretler. Assertions sınıfı, assertNull(@Nullable Object actual) ve fail(@Nullable String message) gibi parametreleri açıkça açıklar; böylece IDE'ler ve NullAway ile Error Prone gibi statik analizörler çalışma zamanı yerine derleme zamanında null kötüye kullanımını yakalayabilir." +whyModernWins: +- icon: "📜" + title: Açık sözleşmeler + desc: "JUnit 6 modülündeki @NullMarked, null anlambilimini doğrudan API'de belgeler — kaynak okumaya gerek kalmaz." +- icon: "🛡️" + title: Derleme zamanı güvenliği + desc: "IDE'ler ve analizörler, null olmayan beklenirken null geçildiğinde uyarır; testler çalıştırılmadan önce hatalar yakalanır." +- icon: "🌐" + title: Ekosistem standardı + desc: "JSpecify, Spring, Guava ve diğerleri tarafından benimsendi — tüm yığınınızda tutarlı null anlambilimi." +support: + description: "JUnit 6.0'dan itibaren kullanılabilir (Ekim 2025, Java 17+ gerektirir)" diff --git a/translations/content/tr/tooling/multi-file-source.yaml b/translations/content/tr/tooling/multi-file-source.yaml new file mode 100644 index 0000000..ea4ac91 --- /dev/null +++ b/translations/content/tr/tooling/multi-file-source.yaml @@ -0,0 +1,18 @@ +--- +title: Çok dosyalı kaynak başlatıcı +oldApproach: Önce Hepsini Derle +modernApproach: Kaynak Başlatıcı +summary: "Açık derleme adımı olmadan çok dosyalı programları başlatın." +explanation: "Java 22+, .java dosyasından başlatıldığında başvurulan kaynak dosyaları otomatik olarak derleyebilir. Bu durum, Maven veya Gradle gerektirmeden küçük çok dosyalı programların betikler kadar kolay çalıştırılmasını sağlar." +whyModernWins: +- icon: "🚀" + title: Sıfır kurulum + desc: "Küçük çok dosyalı programlar için derleme aracı gerekmez." +- icon: "🔗" + title: Otomatik çözümleme + desc: "Başvurulan sınıflar otomatik olarak bulunur ve derlenir." +- icon: "📝" + title: Betik benzeri + desc: "Çok dosyalı programları betikler gibi çalıştırın." +support: + description: "JDK 22'den itibaren kullanılabilir (Mart 2024)" diff --git a/translations/content/tr/tooling/single-file-execution.yaml b/translations/content/tr/tooling/single-file-execution.yaml new file mode 100644 index 0000000..5d6f702 --- /dev/null +++ b/translations/content/tr/tooling/single-file-execution.yaml @@ -0,0 +1,18 @@ +--- +title: Tek dosya çalıştırma +oldApproach: İki Adımlı Derleme +modernApproach: Doğrudan Başlatma +summary: "Tek dosyalı Java programlarını javac olmadan doğrudan çalıştırın." +explanation: "Java başlatıcısı, tek bir kaynak dosyayı tek komutla derleyip çalıştırabilir. Unix'te shebang desteğiyle Java dosyaları betik olarak çalışabilir. Ayrı bir derleme adımına gerek kalmaz." +whyModernWins: +- icon: "⚡" + title: Tek komut + desc: "java File.java tek adımda derler ve çalıştırır." +- icon: "📝" + title: Betik benzeri + desc: ".java dosyalarını çalıştırılabilir betik yapmak için shebang satırı ekleyin." +- icon: "🎓" + title: Öğrenmeye uygun + desc: "Yeni başlayanlar, derleme araçlarını öğrenmeden kodu hemen çalıştırabilir." +support: + description: "JDK 11'den itibaren geniş çapta kullanılabilir (Eylül 2018)" diff --git a/translations/strings/tr.yaml b/translations/strings/tr.yaml new file mode 100644 index 0000000..a04e498 --- /dev/null +++ b/translations/strings/tr.yaml @@ -0,0 +1,89 @@ +site: + title: java.evolved + tagline: Java gelişti. Kodun da gelişebilir. + tagline_line1: Java gelişti. + tagline_line2: Kodun da gelişebilir. + description: Modern Java kod parçacıklarından oluşan bir koleksiyon. Her eski Java deseni, temiz ve modern karşılığının yanında — yan yana. + heroSnippetCount: ✦ {{snippetCount}} modern desen · Java 8 → Java 25 + heroOld: Eski + heroModern: Modern + allComparisons: Tüm karşılaştırmalar + snippetsBadge: '{{snippetCount}} parçacık' +nav: + allPatterns: ← Tüm desenler + toggleTheme: Temayı değiştir + viewOnGitHub: GitHub'da görüntüle + selectLanguage: Dil seç +breadcrumb: + home: Ana Sayfa +sections: + codeComparison: Kod Karşılaştırması + whyModernWins: Modern yöntem neden daha iyi + oldApproach: Eski Yaklaşım + modernApproach: Modern Yaklaşım + sinceJdk: JDK'dan itibaren + difficulty: Zorluk + jdkSupport: JDK Desteği + howItWorks: Nasıl çalışır + relatedDocs: İlgili Belgeler + relatedPatterns: İlgili desenler +filters: + show: 'Göster:' + all: Tümü +difficulty: + beginner: Başlangıç + intermediate: Orta + advanced: İleri +search: + placeholder: Parçacık ara… + noResults: Sonuç bulunamadı. + esc: ESC + searchTrigger: Ara… + navigate: gezin + open: aç + close: kapat +cards: + old: Eski + modern: Modern + hoverHint: modernini görmek için üzerine gel → + hoverHintRelated: Modernini görmek için üzerine gel ➜ + touchHint: 👆 dokun veya kaydır → + learnMore: daha fazla bilgi +copy: + copy: Kopyala + copied: Kopyalandı! +share: + label: Paylaş +view: + expandAll: Tümünü Genişlet + collapseAll: Tümünü Daralt +stats: + modernPatterns: Modern Desenler + jdkVersions: Kapsanan JDK Sürümleri + categories: Kategoriler + linesOfPython: Gereken Python Satırı +footer: + tagline: Java gelişti. Kodun da gelişebilir. + madeWith: ❤️ ile yapıldı + and: ve + inspiredBy: İlham kaynağı + viewOnGitHub: GitHub'da görüntüle +copilot: + headline: Java kod tabanınızı GitHub Copilot ile modernleştirin. + description: Copilot'un eski desenleri modern Java'ya otomatik olarak geçirmenize yardımcı olmasına izin verin. + appModernization: Uygulama Modernizasyonu → + javaGuide: Java Kılavuzu → +support: + available: Mevcut + preview: Önizleme + experimental: Deneysel +contribute: + button: Katkıda Bulun + codeIssue: Kod sorunu bildir + translationIssue: Çeviri sorunu bildir + suggestPattern: Yeni desen öner + seeIssue: "Bu kodda bir sorun mu gördünüz?" + reportIt: "Bize bildirin." +untranslated: + notice: Bu sayfa henüz {{localeName}} diline çevrilmemiştir. + viewInEnglish: İngilizce olarak görüntüle