Goonome-translate

Başlatan mhmtkrktr, 27 Aralık 2017 - 19:21:24

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mhmtkrktr


#!/usr/bin/bash

_translate_notification() {
gdbus call --session \
--dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--method org.freedesktop.Notifications.Notify \
translate_google 1 gtk-dialog-info "$TITLE " "$TR" \
[] '{"urgency": <byte 2>, "sound-name": <string "message-new-instant">}' \
3000
   (uint32 10,)
}
_notification_timeout() {
gdbus call --session \
--dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--method org.freedesktop.Notifications.CloseNotification \
"$1" &>/dev/null
}

check_network() {
    if ! ping google.com -c 1 &> /dev/null; then
TR='Ağ bağlantısı bulunamadı !'
TITLE=$(seq -s'! ' 30|tr -d '[:digit:]')
    fi
}

_notification_control() {
TR_NOTIFY=$(_translate_notification 2>/dev/null | sed 's/(uint32 \([0-9]\+\),)/\1/g')
sleep "$SLP" && _notification_timeout "$TR_NOTIFY"
}

_delete_selelected() {
sleep 10 && xsel -c
}

SELECT=$(xsel -o | sed "s/[\"'<>]//g")

  if [[ -n "$SELECT" ]]; then
URL='http://translate.googleapis.com'
INFO="translate_a/single?client=gtx&sl=auto&tl=tr-TR&dt=t&q=$SELECT"
TR=$(wget -U "Mozilla/5.0" -qO - "$URL/$INFO")
TR=$(echo "$TR"|sed -e 's|\["|\n|g;s|","|\n|g;s|\[\[||g;s|\\n||g'|grep -v '\[\|\]')
[[ -z "$TR" ]] && check_network || TITLE="${SELECT}"
  else
TR='Kelime seçilmedi !'
  fi

  if [[ "${#SELECT}" -gt 180 ]]; then
SLP=$((${#SELECT}/16))
  elif [[ "${#SELECT}" -gt 150 ]]; then
SLP=$((${#SELECT}/13))
  elif [[ "${#SELECT}" -gt 120 ]]; then
SLP=$((${#SELECT}/11))
  elif [[ "${#SELECT}" -gt 100 ]]; then
SLP=$((${#SELECT}/9))
  elif [[ "${#SELECT}" -gt 50 ]]; then
SLP=$((${#SELECT}/8))
  else
SLP=5
  fi

  _notification_control
  [[ -n "$SELECT" ]] && _delete_selelected &



Kullanımı :
1 ; Betiğe kısayol atayın
2 ; Fare ile çevirmek istediğiniz kelimeyi veya metni seçin.
3 ; Atadığınız kısayol tuşunu kullanarak çeviri işlemini tamamlayın.

Not :
a) Betiğin xsel paketine ihtiyacı var.
b) Notify penceresinin boyutu sınırlı olduğu için, uzun metinlerde çevirinin alana sığdığı kadar olan bölümü görüntülenir. Eğer metnin sonunda ... işereti varsa, çevirinin devamı olduğu anlamına gelecektir.
c) Çeviri penceresi, çevrilen harf sayısına orantılı (ortalama) olarak ekranda kalacaktır. Eğer metni okumaya zamanınız yetmemiş ise,  yeni bir seçim yapmadan 10 saniye içinde kısayolu tekrarlayabilirsiniz.
d) Çevirinin gösterildiği bildirim penceresine ,özel yapılandırma yapmak isterseniz, kullanılan shell teması içinde .notification-banner değerini düzenleyebilirsiniz. (font-size, width, color vb)
e) Betik sadece Gnome-shell üzerinde test edildi. Qt tabanlı masaüstlerinde ek gereksinimleri tamamlanmadan veya qdbus üzerinden yapılandırılmadan çalışacağını sanmam.

f) Google api üzerinden bu şekilde bir çalışmanın paylaşılması yasal olarak engel taşıyormu bilmiyorum. Bu gibi bir durum varsa yönetici arkadaşlardan kaldırılmasını rica ederim.



hitokiri

Yani, onlar bir şekilde bu yönetimi de devre dışı bırakana kadar, bu oldukça başarılı bir diğer yöntem. Ve hatta, bir kaç ufak dokunuşla, aynı zamanda, shell eklentisine de dönüşebilir, şöyle ki; biri mesela; ilk konudaki gtk dialogu alsa, bu notify'a da bir kaydet butonu ekleyip, data dosyasına eklese, hatta o ilk gtk-dialog sonra, oyunsal bir algoritmayla süslense, amanın, çok mu çok oluyor, ne. :)
Eline sağlık.

mhmtkrktr

Hiç de çok değil.  :) Sadece "ihtiyaç var mı?" sorusunun cevabı lâzım. Şöyle bakalım;

1: bu şekilde eklentiye dönüştürebilirim ancak olası tek farkı, çeviri işleminin kısayol tuşuyla değilde panele koyulacak bir çevir butonu üzerinden aktif edilmesini sağlamış olur. Bunun eksi tarafı, eklenti halinde yaygınlaşırsa Google amcanın buna daha çabuk engel oluşturma ihtimali olabilir. Ben bu şekilde 2 yıldır kullanıyorum daha o taraftan bir engel olmadı..

2: Notify için buton özelliği var. Seçilen içeriği kaydet butonu ekleyebilirim. Ancak amaç içerik oluşturmaksa şu şekilde daha farklı bir çalışma olabilir;

Yeni farklı bir betik düzenlenir.  Bu betik kendisine verilen (İngilizce e-kitap, makale vb) tüm içeriğin, içinde geçen tüm kelimeleri tek tek tarar, aynı kelime daha önce çevirilmişse atlar, olmayanları çevirir ve harf sırasına göre yerel bir dosyaya aktarır.
Bu şekilde, yeterli büyüklükte içerik verilebilirse, iyi bir bilgisayar ve internet hızıyla kaynakta ki neredeyse tüm içeriği bir kaç saat içinde yerele aktarmış olur.
Bu sayede çok geniş içerikli offline bir sözlük uygulaması yazılabilcek kaynak oluşur. Fakat bu yöntemde farkettiysen kelimeler, sıfat, zamir, özne gibi ayrımlara girmiyor.
G-Translate bunu kendi sayfasında ayırıyor. Ama burada bu engel var. 

hitokiri

Yeni bir web tarayıcısına ihtiyaç var mıydı, neden firefox varken google chrome vb. :) Biraz hayal gücüyle flappy bird milyonlar kazandı, ihtiyaç var mıydı. Hayal gücünü serbest bırakmak gerek, yoksa herkes biraz araştırmayla harika görünen şeyler yapabilir. Parçaları bir araya getirmek, tatmin getiriyorsa(para, keyif, popülerlik vb. ), uğraşılır, getirmiyorsa, zaman meselesi, bana kalırsa. Zaman bulabilince ben buna el atmaya çalışacağım bakalım. Başka yollarıda var bu veri çekmenin, google tabanlı olmayı verir. Ben oyun kısmında takıldım kaldım, şu an. :) 
Neyse cânım betikçiği unutmayalım, bakalım ne kadar dayanacak yöntem.  ;D

mhmtkrktr

Alıntı YapSadece "ihtiyaç var mı?" sorusunun cevabı lâzım.
Bu soruyu "ne gerek var" anlamında sormadım. Yanlış anlaşılmasın. Bu şekilde bir veritabanı üzerinde uygulama hazırlamak isteyen olursa bahsettiğim betiği ben yazabilirim. Büyük olasılıkla yukarda ki çeviri betiğinden daha meşekatli olmayacaktır. Evde oto teybi gibi müzik çalmaktan başka bir amaçla kullanmadığım iyi bir PC de var. Veririm içeriği, uğraşsın dursun fukara.
Ben bu içeriğin kullanılacağı bir alan olacak mı anlamında soruyorum. "oyunsal bir algoritmayla süslense" olayını anlayamadım ama. Gif tarzı janjanlı bir pencereden mi söz ediyoruz?

hitokiri

Direk ezberletmeye yönelik, kullanıcı verisini; görülmüş tanımları, hatta tekrar sıklığının falan bile kullanıcı tarafından düzenlenebileceği; döve döve öğretirim ağbi tanımları, oyunu. Memrise benzeri, ama uğraşılırsa, daha çok ya bu neymiş diye bakılan şeyler için, kısayola atayınca direk bilmedikleri kullanıcının ortaya çıkıyor, bu da bir farkı oluyor, bashedilen şeyden. Ama olasılıklar hayal gücünün sınırında tabi, oyun dedik mi, iş teorisine kadar gider.  ;D Ama çok şatafatlı bir iş olur, neyse fikir işte, her fikir uygalamaya konulacak diye bir şey yok. Hatta bazen iyi bir fikir bile olsa, uygulamaya çalışınca; vazgeçildiği çok olmuştur.  [ @sem'in kulakları çıt etsin. :D ]

mhmtkrktr

Valla benim çocukluğum köyde mısır pamuk yetiştirerek geçti. Bu kadar karmaşaya aklım ermez  :D  :D Ama Memrise 'a baktımda güzelmiş. Bunun gibi çalışmalar bizim gibi hobi amaçlı değilde daha çok profesyonel olarak bu işle ilgilenenlerin uğraşıp takip edeceği tarzda uygulamalar sanırım.

hitokiri

Alıntı yapılan: mhmtkrktr - 28 Aralık 2017 - 23:47:50
Valla benim çocukluğum köyde mısır pamuk yetiştirerek geçti. Bu kadar karmaşaya aklım ermez  :D  :D Ama Memrise 'a baktımda güzelmiş. Bunun gibi çalışmalar bizim gibi hobi amaçlı değilde daha çok profesyonel olarak bu işle ilgilenenlerin uğraşıp takip edeceği tarzda uygulamalar sanırım.

;D ;D İşte bilgi toplumu diyorlar ya, bilgi para ediyor, nerden gelirse gelsin. Bilgi de aynı zamanda satılabilir bir şey. Neyse, denemeden bilemeyiz. Çoban'dan Reis-i Cumhur bile var, ne mutlu.   :)

mhmtkrktr

Çobandan reis-i cumhuru olan cumhurlara bilgi toplumu mu diyorlar?  :D ;D Ben mısıra pamuğa geri döneyim o zaman.  :)

hitokiri

 ;D ;D Demiyorlar tabii,sen olayları karıştırıyorsun,onlar başka başka olaylar pardon yani.