This is for people trying to type Turkish documents on a U.S. keyboard using Emacs. The program provides a turkish-mode in which the correct Turkish accents are added to the ascii version of the last word typed each time the user hits space. The latest version is available here.
It was inspired by Gökhan Tür's deasciifier:
http://www.hlst.sabanciuniv.edu/TL/deascii.html
The program uses decision lists (included at the end of this file) which was created based on 1 million words of Turkish news text using the GPA algorithm. For more information on GPA see the Greedy prepend algorithm for decision list induction.
To activate the program first load this file into emacs:
M-x load-file ENTER turkish.el ENTER
Then turn on the turkish mode:
M-x turkish-mode
When Turkish mode is enabled, the space, tab, and enter keys correct the previous word by adding Turkish accents. For corrections use C-t to toggle the accent of the character under the cursor.
Related link
February 17, 2010
Subscribe to:
Post Comments (Atom)
36 comments:
Bu modda Enter tusu calismiyorsa:
(if (= ?\r last-input-event)
satirini
(if (= ?\r last-command-event)
ile degistirin.
Bu mod Emacs 23'te calismiyor maalesef. Sanirim emacs'te yapilan unicode degisiklikler buna sebep oldu.
turkish-char-alist'in birinci ve ucuncu sutunlarini degistirince bazi karakterler icin sorun cozuluyor (ascii kodu olanlar icin - ü, ç ve ö gibi) ama digerleri icin farklı karakterler geliyor.
Bunu düzeltmenin bir yolu var mı acaba?
Yukarida bahsi gecen iki problem de duzeltildi. En son version (2.5) post'taki linkten indirilebilir. Simdi bir de biri bunu browser extension'a cevirse de bu comment'ler duzgun ciksa :)
Tekrar teşekkürler hocam. Dün benim de aklımdan geçiyordu bunu
Firefox'a nasıl entegre ederiz diye. Emacs Lisp kodunu biraz daha
inceleyeyim, belki Jetpack ile Firefox'a kolayca entegre etmek mümkün
olabilir [1].
Not: Bu yazıdaki Türkçeye özgü harfler turkish-mode ile otomatik
olarak üretilmiştir ;-)
1- https://jetpack.mozillalabs.com/
Güncelleme için teşekkürler. Google Chrome'un Edit in Emacs eklentisi ile çok
güzel çalışıyor. .emacs dosyama şu satırı ekledim:
(add-hook 'edit-server-text-mode-hook 'turkish-mode)
Native bir eklenti yapılana kadar bu oldukça iyi bir çözüm gibi duruyor.
Bu eklentinin bir güzel yanı da emacs'ta yazmayı unutup, doğrudan tarayıcıda yazarsak, edit tuşuna bastığımızda şu ana kadar yazdığımız metni de emacs'e göndermesi. Bu şekilde turkish-mode'daki turkish-correct-region ile önceden yazdığımız metni göndermeden önce Türkçe'ye uygun hale getirebiliyoruz. Aslında moda basit bir turkish-correct-buffer da eklenebilir.
Browser'a entegrasyon yerine browser'dan emacs'ın çağırılabileceği hiç aklıma gelmemişti. Firefox için de araştırdım ve aşağıdaki kaynakları buldum:
* mozex
* conkeror
* It's all text
Bu yorumu son linkteki "It's all text" eklentisini kullanarak Firefox'tan açtığım Emacs ile yazıyorum. MacOS biraz uğraştırdı. Emacs olarak emacsformacosx kullandım. Ayarlarda uygulama olarak "/Applications/Emacs.app/Contents/MacOS/Emacs" kullanmasını söyledim. Bu arada Emacs'ın eski versionlarını test etmedim, hala çalışması lazım programın ama birşeylerin bozulduğunu farkederseniz lütfen haber verin.
(defun turkish-correct-buffer ()
"Adds necessary accents to the words in the whole buffer."
(interactive)
(turkish-correct-region (point-min) (point-max))
)
Tüm bufferi düzeltmek için bu fonksiyonu kullanılabilirsiniz.
turkish-correct-buffer 2.6 versionunda eklendi, link update edildi.
Son yapilan degisikligi geri almak icin (daha dogrusu son sozcugu asciiye donusturmek icin) bunu kullanabilirsiniz.
(defun turkish-asciify-last-word ()
"Asciifies the last word, so that one can undo the last correction without losing place"
(interactive)
(save-excursion
(let ((p (point)))
(turkish-backward-word)
(turkish-asciify-region (point) p))))
Keybindinglere de
("\C-c\C-t" . turkish-asciify-last-word)
satirini ekledim, bu sayede C-c C-t ile son kelime asciiye donusturulebiliyor, yaziya kalindigi yerden devam edilebiliyor.
Yukarıdakine benzer bir komutu (turkish-toggle-last-word) son version'a (2.6) ekledim. Tekrar tekrar basıldığında ascii ile türkçe kelime arasında gidip geliyor. Key binding olarak M-t seçtim: Standart emacs'te C-t ve M-t transpose-chars ve transpose-words komutlarını (hiç kullanmama gerek kalmadı bugüne kadar) biz turkish-toggle-accent ve turkish-toggle-last-word ile değiştirmiş olduk. Son olarak 2.5'te yaptığım eklemeler bazı eski version'larda çalışmasını bozmuş turkish.el'in, 2.6'daki düzeltmelerle 21, 22, ve 23 çalışıyor durumda olmalı.
Bu son komut çok kullanışlı oldu, teşekkür ederim. turkish-correct-buffer yanlışlıkla silinmiş ama sanırım.
Haklısın. turkish-correct-buffer ve turkish-asciify-buffer eklendi (v2.7).
Python implementasyonu eklendi: Turkish deasciifier in Python and state of the art in deasciification
> Şimdi bir de biri bunu browser
> extension'a çevirse de bu comment'ler
> düzgün çıksa :)
Firefox add-on eklendi: https://addons.mozilla.org/en-US/firefox/addon/204311/. Bu yazıyı hiç Türkçe harf kullanmadan yazıyorum ve birazdan sağ tuşla tıklayıp Türkçe harfli hale çevirmeye çalışacağım. Bakalım nasıl olacak hep birlikte göreceğiz.
Mustafa Emre Acer'in yaptığı Chrome extension da fırından yeni çıktı: https://chrome.google.com/extensions/detail/nhfdmlgglfmcdheoabgklabmgjklgofk
Benim Python implementasyonunun web arayüzünü de hazırladım: http://turkceyap.appspot.com/
Java versiyonu da tamam.
Firefox add-on halinin 0.2 versiyonu çıktı, buraya yazıyorum çünkü henüz otomatik güncelleme özelliği yok, elle güncellemek gerekiyor aşağıdaki adrese giderek. Bu sürümle özgün turkish-mode'a biraz daha yaklaşmış durumda, mesela: Cümle içinde yok kullanınca sorun yok artık. Yani iyi oldu gibi, olmuş gibi: https://addons.mozilla.org/en-US/firefox/addon/204311/
Arkadaşlar, Python versiyonunu kullanarak bir Adium plugin'i yaptım. Eğer Mac & Adium kullananınız varsa, ilginizi çekebilir.
Selamlar,
Sabancinin sitesi calismiyor oldugundan, google aramalarimda sayfanizi buldum, tum thread'i ve sonudaki mozzilla application'i bilmeden teker teker okudum, pek program yaziciligindan anlamiyorum, ama super bir olay, ikinize de cok tesekkurler, harika bir application olmus
> Arkadaşlar, Python versiyonunu
> kullanarak bir Adium plugin'i yaptım.
> Eğer Mac & Adium kullananınız varsa,
> ilginizi çekebilir.
Adresi var mi download etmek için?
Son derece yararli bir calisma. Latex dokumanlari hazirlarken de ise yariyor, oldugu gibi kullanilsa bile. Ama belki Latex icin biraz daha uyarlanabilir. Cok tesekkurler.
Ruby ile yapilmis hali de surada: https://github.com/berkerpeksag/ruby-turkish-deasciifier
Perl sürümü de çıkmış. Firefox add-on'un da 0.2.1 sürümü çıktı.
Bunun Mac'te calisan versiyonuna nasil ulasabilirim?
Firefox 4.0 ve üzeri için uyumlu olan Turkish Deasciifier add-on yayımlandı: https://addons.mozilla.org/en-US/firefox/addon/turkish-deasciifier/. Daha detaylı bilgi için: http://goo.gl/BY3DW
Emacs ve Firefox'ta artık gerçekten mutluyum. Sağolun.
Emacs son versiyonu 25 te calismiyor lutfen duzeltirmisiniz cok tesekkurler.
Emacs son versiyonu 25'te calismiyor duzeltirmisiniz lutfen. Cok tesekkurler.
Emre Guneyler,
Deniz Yuret hoca buna mudahale eder mi bilmiyorum ama https://github.com/emres/turkish-mode adresine gidip bir 'issue' acarsaniz, baska bir deyisle https://github.com/emres/turkish-mode/issues adresine gidip 'New Issue' dugmesine basip, tam olarak hangi Emacs surumunu kullandiginizi belirtirseniz (M-x emacs-version), belki yakin zamanda ilgilenip cozmeye calisabilirim. Hatta bunu halledebilirsem (yani hem Emacs 24.x hem de son surum Emacs 25.x serisinde duzgun calisir hale getirme isini halledebilirsem), ELBA ya da MELPA gibi bir depoya koyup 'M-x package-install' ile kurulabilir hale getirme planim var.
MELPA'ya eklendi: https://melpa.org/#/turkish. Emacs versiyon 24.5.1 ile çalışıyor. Yeni stabil sürüm çıktığında deneyip hata bildiriminde bulunursanız, vakit ve fırsat oldukça ben ilgilenmeye çalışırım (eğer Deniz Yüret hoca ya da başkası daha önce davranmazsa). Hata bildirimi için şu adresi kullanabilirsiniz: https://github.com/emres/turkish-mode (eğer nasıl hata bildirimi açacağınızı bilmiyorsanız belirtin, onu da açıklarım).
Merhaba,
https://deasciifier.com/
Burdaki web sitenize mobil cihazlar üzerinden Firefox tarayıcısı ile giriş yapınca, "Yazarken çevir" özelliği çalışmamaktadır. Bu sorunu nasıl çözebiliriz ?
Teşekkürler..
Sitenin yazarina basvurmanizi tavsiye ederim.
Post a Comment