- Medium web editöründe yalnızca Lehçe büyük Ś harfinin girilememesine yol açan hata; giriş alışkanlıkları, PC ithalat ortamı, kaydetme kısayolu alışkanlığı ve Windows’un Right Alt işleme biçiminin üst üste gelmesiyle ortaya çıktı
- Lehçe, Latin alfabesine 9 aksanlı harf ekleyerek yazılır; erken PC ortamlarında özel klavye yerine Alt+Latin harfi kombinasyonlarını kullanan “programmer’s layout” fiilen standart hâline geldi
- Windows, Right Alt’ı içeride Ctrl+Alt gibi eşlediği için, Ś girmek için kullanılan Right Alt+S sistem açısından Ctrl+Alt+S gibi görünmeye başladı
- Medium, tarayıcının kaydetme iletişim kutusunu engellemek için Ctrl+S’i yakalayıp
preventDefault() çağırıyordu; ancak Alt’ın basılı olup olmadığını kontrol etmediği için harf girişinin kendisini engelledi
- Düzeltme, Ctrl+S’i engelleme koşuluna
!e.altKey ekleyen küçük bir değişiklikti; bu da İngilizcedeki 26 harf merkezli bilişim alışkanlıklarının başka dilleri kullananlar için nasıl istisnalar ve sürtüşmeler yaratabildiğini gösterdi
Medium’da kaybolan Ś
- Bir kullanıcı, Medium’da Lehçe bir yazı yazmaya başladığında diğer harflerin girildiğini ama yalnızca Ś harfinin girilemediğini bildirdi
- Medium belirli bir dili özel olarak ele almıyordu; bu yüzden Lehçedeki 32 harf içinde neden yalnızca bu harfin sorun çıkardığı başta tuhaf görünüyordu
- Sebep tek bir özelliğin kusuru değil, onlarca yıla yayılan giriş yöntemleri ile işletim sistemi işleme biçimlerinin çakışmasının sonucuydu
Lehçe ve ek harfler
- Lehçe, Rusçadan sonra en çok kullanılan Slav dilidir ve Ukraynacanın önündedir
- Rusça ve Ukraynacadan farklı olarak Lehçe, İngilizce/Latin alfabesini temel alır ama birkaç harf ekler
- Aslen Lehçe sözcüklerde Q, V, X yoktur; ancak Latince ve alıntı sözcükler için korunurlar
- Bunun yerine Latin harflerini temel alan 9 aksanlı harf daha kullanılır
-
- yüzyılın başındaki daktilolar bu ek harfleri desteklemek zorundaydı; bazı harfler ayrı tuşlar aldı, kalanlar ise sayı tuşlarıyla paylaşıldı
- Büyük harfler bazen Latin harfi yazıldıktan sonra backspace ile geri dönüp aksan eklenerek “simüle” edilirdi
- Ek harflere yer açmak için noktalı virgül ve parantez gibi noktalama işaretlerinden de vazgeçildiği olurdu
Komünist Polonya’da PC ortamı ve programmer’s layout
- 1980’lerde Polonya’daki erken kişisel bilgisayar ortamı, harcanabilir gelir eksikliği ve Batı bilgisayarlarının ticari ithalatının yasak olması gibi kısıtlarla karşı karşıyaydı
- Batı’dan gelen bilgisayarlar çoğu zaman orijinal kılavuzları, çevrilmemiş yazılımları ve Amerikan klavyesiyle geliyordu
- Fransa ve Almanya gibi ülkeler daktilo düzenlerini yansıtan özel klavyeler alırken, Polonya’nın Amerikan klavyesinde 9 ek harfi girmenin bir yolunu bulması gerekiyordu
- Ctrl zaten kısayollarda yaygın olarak kullanılıyordu, Alt ise görece daha az kullanılıyordu; bu yüzden Alt kombinasyonları fiilen standart hâline geldi
- 8 aksanlı harf, karşılık gelen Latin harfine atandı
- Kalan bir harf ise yakındaki bir tuşa atandı
- Mevcut düzene “typist’s layout”, yeni yönteme ise “programmer’s layout” denildi
- Bunun nedeni erken PC kullanıcılarının çoğunlukla programcı olması olabilir
- Ya da programlamada sık kullanılan noktalama işaretlerini olduğu gibi koruması olabilir
- programmer’s layout, tek sol Alt ile yakındaki tuşları aynı elle basmayı gerektirdiği için ergonomik olarak rahatsızdı; ancak donanım değişikliği ya da etiket gerektirmeden anlaşılması kolay olduğu için yerleşti
- Daha sonra özel typist’s keyboard ortaya çıktı, ama neredeyse kimse geçiş yapmadı; bu da daha az ideal olan QWERTY’nin yaygın biçimde yerleşmesine benzer bir seyir izledi
Ctrl+S alışkanlığı ile web editörünün çakışması
- Otomatik kaydetme yaygınlaşmadan önce belgeleri elle kaydetme alışkanlığı önemliydi
- 1980’ler ve 1990’lardaki kaydetme işlemleri yavaştı; disk gibi ortamları azar azar yıpratır, bazen CPU’yu yoğun biçimde meşgul ederek başka iş yapmayı zorlaştırırdı
- Kullanıcılar yazarken her nefeslendiklerinde Command+S veya Ctrl+S’e basma alışkanlığı edindi
- Bazıları her paragrafta basardı
- Bazıları her cümlede, daha sonra da birkaç kelimede bir basardı
- Web tabanlı editörlerde bu alışkanlık, tarayıcının geçerli web sayfası HTML’ini kaydetme iletişim kutusunu açması sorununa yol açtı
- Medium da geçmişte bunu engellemek için editör kodunda Ctrl+S veya Command+S’i algılayıp kaydetmeyi çağırıyor ve varsayılan davranışı engelliyordu
if ((e.metaKey || e.ctrlKey) && e.keyCode === goog.events.KeyCodes.S) {
this._editors.save()
e.preventDefault()
}
- Bu kod, Mac’te
metaKey veya Windows/Linux’ta ctrlKey ile S birlikte basıldığında editör kaydetmeyi çalıştırır ve tarayıcının kaydetme iletişim kutusunu engeller
- Sorun, bazı ortamlarda Lehçe Ś girişinin basit bir Alt+S gibi görünmemesiydi
Windows’un Right Alt işleme biçimi
- Windows 3.x ve Windows 95, menü öğelerine ve iletişim kutusu kontrollerine Alt+altı çizili harf ile hızlı erişim sağlıyordu
- Polonya’da Alt zaten aksanlı harf girişi için kullanıldığından Windows kısayollarıyla çakışıyordu
- Klavyeler geliştikçe boşluk çubuğunun sağına ikinci bir Alt tuşu eklendi; böylece sol Alt’ı Windows kısayolları, sağ Alt’ı ise Lehçe giriş için kullanmak mümkün oldu
- Ancak Right Alt işlevinin, yalnızca tek Alt tuşu olan eski klavyelerde de mümkün olması gerektiğinden Microsoft, Windows içinde Right Alt’ı nadiren kullanılan Ctrl+Alt eşzamanlı giriş kombinasyonu olarak eşledi
- Bu karar nedeniyle Lehçe Ś girmek için kullanılan Right Alt+S, sistem açısından Ctrl+Alt+S gibi görünmeye başladı
- Medium’un Ctrl+S engelleme kodu, Alt’ın da basılı olup olmadığını kontrol etmiyordu; sonuç olarak Ś girişini kaydetme kısayolunu engelleme işlemiymiş gibi bloke etti
Düzeltme: Alt basılıyken bunu Ctrl+S saymamak
- Sebep anlaşıldıktan sonra düzeltme basitti
- Ctrl+S’i koşulsuz engellemek yerine, Ctrl basılı olsa bile yalnızca Alt basılı değilse engelleyecek şekilde koşul değiştirildi
if ((e.metaKey || (e.ctrlKey && !e.altKey)) && e.keyCode === goog.events.KeyCodes.S) {
this._editors.save()
e.preventDefault()
}
- Değişiklikten sonra Right Alt+S girişi, Ctrl+S kaydetme engelleme koşuluna takılmadı
- Medium bu hatayı düzeltti ve söz konusu koşul satırına sonradan insanların anlayabilmesi için birçok yorum eklendi
Küçük bir koşul ifadesinin ardındaki daha büyük sorun
- Polonya’da komünizm 1989’da çöktü ve artık bilgisayarlar hem bireyler hem de şirketler tarafından yasal olarak ithal edilebiliyor
- Bugün Polonya’da satın alınan Windows ve Mac’ler Lehçeyi tamamen destekliyor ve işletim sistemleri de yerelleştirilmiş durumda
- Buna rağmen sistem ayarlarında hâlâ programmer’s layout bulunuyor ve iki düzen arasında en yaygın kullanılan seçenek olarak kalıyor
- Bu küçük hata, Amerikan bilişim alışkanlıklarının İngilizcedeki 26 aksansız harf etrafında gelişmiş olması gerçeğiyle bağlantılı
- Lehçe, QWERTY türevi düzenler arasında gidip gelerek uzlaşmak zorunda kaldı; İngilizceden daha da uzak yazı sistemleri kullanan diller ise daha dezavantajlı koşullarla karşılaşabilir
1 yorum
Hacker News görüşleri
Lehçenin Latin alfabesini kullanması ve ek ses değerlerini küçük Slav tarzı uyarlamalarla göstermesi sayesinde Polonya’nın Batı’ya yönelim açısından uyum sağlamasının çok daha kolay olduğunu düşünüyorum
Ortalama bir Polonyalı, Ukraynalı ya da Rus’tan ziyade batı komşularına kültürel olarak çok daha yakındır; muhtemelen tek istisna mutfak olabilir
Uzak gelecekte Ukrayna’nın da aynı yolu izleyip izlemeyeceğini merak ediyorum
Akademisyenler, Lehçenin yaklaşık aynı dönemde ayrı bir dil olarak gelişmeye başladığını düşünüyor ve 13. yüzyıla kadar güney komşularıyla büyük sorunlar yaşamadan iletişim kurulabildiğini belirtiyor
15. ve 16. yüzyıllarda Lehçe yazım sistemi şekillendi; Stanisław Zaborowski ve Jan Kochanowski, dönemin Lehçe ses yapısını daha doğru yansıtmak için yeni harfler getirmeye çalıştı ama önerdikleri alfabe oldukça uzundu
Bölüşüm döneminde Lehçe ile Polonya kültürünü ortadan kaldırmaya yönelik güçlü bir Ruslaştırma vardı ve Kiril alfabesini getirme girişimleri de oldu, ancak sonuçta başarısız kaldı; o dönemin edebiyatında da yurtseverlik ve vatan sevgisi temaları çok yaygındı
1936 dil reformuyla bugünkü bildiğimiz biçime yaklaşıldı ve komünizm döneminde Çekçe ve Slovakçadaki
vykáníbenzeri şekilde resmî dilde ikinci çoğul şahıs kullanımı getirildi, ancak bu yapay ve siyasî yüklü bulunduğu için uzun ömürlü olmadıLehçede lehçeler var, ancak II. Dünya Savaşı sonrası göçlerle farklar bulanıklaştı ve standart Lehçe de o dönemde yerleşti; bugün ise İngilizceden ödünçlemeler çoğaldı ve
hatersözcüğününhejtergibi doğallaşması görülebiliyorBu söz birçok Polonyalıyı epey kızdıracaktır
Asıl sorun, tarayıcıların tuş kombinasyonlarını denetlemenin basit bir yolunu sunmaması ve geliştiricilerin de bunu kendilerinin yapmaması
Birçok sitede hedeflenen tuş kombinasyonu, alt ya da shift gibi ek değiştirici tuşlar basılı olsa bile yine de çalışıyor
Buradaki kod da Windows’ta yalnızca daha büyük bir sorunu düzeltiyor, ama
alt+cmd+shâlâ engelleniyorTarayıcıların keydown/up/press olaylarına
CTRL+S,CTRL+ALT+Sgibi tuş kombinasyonu kodu içeren bir özellik eklemesini öneren bir teklif gerekliBöylece geliştiriciler tuş kodu ve değiştirici tuşları tek tek denetlemek yerine bu özellik üzerinden dallanabilir
Web geliştiricileri de kendi kodlarında böyle bir özelliği kendileri üretip değiştirici tuşları tek tek incelemek yerine doğrudan karşılaştırma yapabilse iyi olurdu. Orijinal yazıdaki gibi hatalar da önlenir ve kullanımı çok daha rahat olur
Control Stuşuna basınca kayıt iletişim penceresinin açılması sorununu düzeltmeye çalışan bir geliştiricinin temelde hataya açık bir davranışa müdahale etmesiyle ortaya çıktıGeliştiricilere daha kolay müdahale edebilecekleri daha fazla seçenek verirseniz ne kadar büyük hasar verebileceklerini düşünün
Tuşları yakalamanız gerekiyorsa zaten düşük seviyeli API’ler var; bence orada kalmak daha iyi
Öte yandan HTML’de kısayol tuşu atamaya yarayan bir accesskey özniteliği var: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
Yeni Copilot 365 de tam olarak böyle. Her
Ćyazmaya çalıştığımda Copilot fırlıyor ve uygulamayı sürekli kapatmam gerekiyorGeçtikten sonra bir daha hiç arkama bakmadım
SteamOS üzerinden yazıyorum
&yazmaya çalışıyordum, o da tabii ki altgr+c idialt+c’ninćyerine ATI Catalyst Control Center başlattığını hatırlayan var mı?Teşekkürler Microsoft. Kalite güvencenizin ne kadar iyi işlediğini görmek harika
İlginç bilgi: Unicode kanonik ayrıştırma normalizasyonu uygulanınca Lehçedeki 9 harften 8’i (
ż,ó,ć,ę,ś,ą,ź,ń) temel harf + birleşik aksan işaretine ayrışıyor, amałolduğu gibi kalıyorBu yüzden sqlite’ın
unicode61 remove_diacriticstokenizer’ı ile Lehçe metni tam metin arama için normalleştirmek mümkün olmuyorłgirişi iki karakterlik bir dizi gibi görünse de aslında l’nin üzerinden geçen çizgiye karşılık gelen bir birleşik karakter yokTam emin değilim ama sqlite’ın
remove_diacriticsözelliği muhtemelen benim yaptığım gibi NCD’ye dönüştürüp sonra birleşik karakterleri dizgeden silerek çalışıyorħya daøgibi ayrışmayan diğer özel durumların da benzer davranmasını beklerim“ł”ile arama yaptıklarında“l”sonuçlarının da çıkmasını bekler mi?Lviv = 2,5 milyon
Vinnytsia = 1,5 milyon
Ivano-Frankivsk = 1,3 milyon
Khmelnytskyi = 1,2 milyon
Rivne = 1,1 milyon
Ternopil = 1,0 milyon
Volyn = 1,0 milyon
Chernivtsi = 800 bin
Zakarpattia = 800 bin (Macarlar hariç)
Böylece Batı Ukrayna’da baskın durumda olan 11,2 milyon Ukraynaca konuşan kişi ediyor; ülkenin geri kalanını tamamen yok saysanız bile bu sayı Çekçe konuşanlardan fazla. Ayrıca kalan bölgeler de tamamen Rusça konuşulan yerler değildi, şimdi ise hiç değil
Ne yazık ki bu sadece Medium’a özgü değil; birçok Windows uygulamasında da aynı şey var. Örneğin Active Presenter’da bir harf, muhtemelen Ó, girildiğinde ekran kaydı duruyor; bu yüzden Lehçe yazı yazmayı kaydetmek çoğu zaman imkânsız hale geliyor
Diğer uygulamalar da benzer biçimde Alt + Ctrl + harf kombinasyonlarını kısayol olarak atayıp bir şekilde klavye düzeni sürücüsünün üstüne yazıyor gibi görünüyor
Yıl 2026 ama bir anda Mac için Edge’de büyük Ś yazılamaz oldu. Sanki 25 yıl geriye dönmüşüz gibi
nvidia overlay içinde Alt+Z kısayolu var; bu hem sol Alt hem de sağ Alt ile çalışıyor, bu yüzden Lehçe kullanıcıları ya overlay’i açmak ya da tuşu yeniden atamak zorunda kalmadan “ż” yazamıyor; oldukça sinir bozucu
Nvidia lütfen düzelt bunu
Özetle durum şu:
Windows zaten Alt kombinasyonlarını kullandığı için bu sağ Alt+s oldu; sağ Alt Windows’un kendisi tarafından kullanılmıyordu ama Windows, ayrı bir sağ Alt kodu yerine bu tuşu ctrl+alt kombinasyonu olarak yeniden yazdı
Özet çıkaracaksan en azından en önemli ayrıntıyı doğru vermelisin. İnsanlar sadece Alt’a basıyordu ama Windows bunu “şimdi ctrl+alt basılıyor” diye dönüştürdü; böylece alt+s, ctrl+s gibi göründü ve olayı yakalayıp öldüren şeyin üzerine kimsenin kontrol etmediği bir Alt eklenmiş oldu