-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Merhabalar Nisan ayın karşıma çıkan bir sorunu çözmek amacıyla bir projeye başlamıştım. Nisan ayında projeyi belli bir miktar ilerletmiştim sonra araya mezuniyet , staj vs. girdi ve projeyi aksatmıştım. Şimdi projeyi bitirme zamanı. 😃 Bu proje için yazmış olduğum blog yazılarına aşağıdan ulaşabilirsiniz.
Projenin özetini yukarıdaki videodan görebilirsiniz.
1.yazı , 2. yazı , 3. yazı , 4. yazı (1. yazı Bir Proje Doğuyor’dur.Diğer yazılar yukarıya doğru sırayla gidiyor.)
Bu yazıyı okumadan önce , önceki yazılara göz atarsanız daha verimli olacaktır.
Şimdi bu projeyi neden yaptığımı , nasıl çalıştığını ve kodların ne işe yaradığından bahsedeceğim. Son olarak ileride ne olacağına da değineceğim.
Bu projeyi neden yapmaya başladım ?
Bir filmi izlemek için altyazı arayışına girmiştim. Fakat türkçe altyazı bulamamıştım. Bütün filmler / diziler için genellikle İngilizce altyazı bulunur. Ben de düşündüm ki bu ingilizce olan altyazıları türkçeye çevirebilir miyim ? Hemen araştırmaya başladım. Daha fazla ayrıntı için aşağıdaki yazıya göz atabilirsiniz.
Bir Proje Doğuyor
_Geçenlerde karşılaştığım bir problem sonucunda bir internet sitesi / uygulama yapmayı planlıyorum. Bu uygulamanın yapım…_medium.com
Kullancağım teknolojileri belirledim ve geliştirme sürecine başladım. Süreçten önce proje hakkındaki aşağıdaki yazıya da göz atabilirsiniz.
Bir Proje Doğuyor #2
_Oluşturacağım projeye isim olarak Subtitle of Local vermeyi düşünüyorum._medium.com
Yukarıdaki yazının sonundaki sununda da belirttiğim gibi Ruby ile dosya okuma ve çeviri işlemlerini araştırmaya geçtim.
İlk olarak Ruby ile Dosya okuma yazma işlemlerini öğrenmeye başladım. Bu yazıya da göz atmak için aşağıdaki yazıya göz atabilirsiniz.
Ruby ile Dosya okuma yazma işleri
_İlk olarak bir proje yapmak isteği üzerine buralara kadar geldim. Önceki yazıları aşağıdaki linklerden okuyabilirsiniz._medium.com
Az çok dosya okumayı öğrendikten sonra çeviri için arayışa girdim. Çeviri apisi veren yerlere baktım. Ve yandex çeviri apisini kullanmaya karar verdim. Bilgiğiniz gibi altyazı dosyaları srt formatında oluyor.
altyazı dosyasının bir kısmı
Yandex çeviri apisi öğrenirken deneyimlerime ulaşmak için aşağıdaki yazıya göz atabilirsiniz.
Ruby ile yandex translate kullanımı
_Bu serinin 4. yazısı olarak karşınıza çıkacak. Önceki yazıralara aşağıdaki linklerden ulaşabilirsiniz._medium.com
Ve sonunda bu filmi izleyebileceğim . Sizin de izlemek istediğiniz bir film varsa ve altyazı bulamıyorsanız altyazı çeviricisini kullanabilirsiniz. Şimdi nasıl kullanıldığını ve kodların ne işe yaradığına bakalım.
Proje nasıl çalışır , kodlar ne anlama geliyor ?
kodların ekran görüntüsü
Yukarıda fonksiyon diye belirttiğim ana fonksiyondur.(def translate)
Şimdi projeyi nasıl çalıştıracağımıza bakalım.
1.Bilgisayarınızda Ruby kurulu olmalı. Kurulu değilse aşağıdaki gibi kurulumu yapabilirsiniz. Burada linux kurulumu anlatılacaktır.
sudo apt-get update
sudo apt-get install curl
\curl -L https://get.rvm.io | bash -s stable --ruby
rvm get stable --autolibs=enable
rvm install ruby
rvm --default use ruby-2.5.3
Kurulumu doğru yapdığını kontrol etmek için ruby -v komutunu çalıştıralım.
şu şekilde bir çıktı aldıysanız herşeyi doğru yapmışsınızdır.
Halen bi sıkıntı varsa aşağıdaki yazıya göz atabilirsiniz.
Linux işletim sistemine(debian tabanlı) Ruby on Rails kurulumu nasıl yapılır ?
_1.) Sistemimizi kurulum için hazırlayalım.Hatasız bir şekilde aşağıdaki kodu çalıştıralım._medium.com
Her şeyi yaptınız fakat kurulumu yapamadıysanız bana ulaşın 😃
2.Ruby yi kurduğunuzu varsayalım şimdi diğer adıma geçiyoruz. Şimdi yandex translate apisinden kendimiz bir api key almamız gerekli.
İlk olarak Yandex translate sitesine girelim ve Create a new key butonuna tıklayalım. Oluşan api key ileride bize lazım olacak.
tmsl ile başlayan kod bize lazım olacaktır
Şimdi aşağıdaki tablodan dil kodlarına bakalım. Tablodan istediğimiz kodu seçerek istediğimiz dile çevirebiliriz.
istediğiniz dil kodunu seçerek , istediğiniz dile çeviri yapabilirsiniz.
Yandex altyazı dosyasındaki dile otomatik olarak belirliyor. Bize sadece çevirmek istediğimiz dilin kodunu bulmakta.
3.Şimdi denemek için bir alt yazı dosyası bulalım. turkcealtyazi.org a girerek bir film bulalım. Ben Joker i buldum ve sadece ingilizce altyazısı olduğunu gördüm.
Joker için ingilizce olan altyazıyı indirelim.
Joker filminin ingilizce altyazı dosyası
Altyazı dosyasının içinde 784 tane çevirmeli satır var. Yani 3136 tane satırı gözden geçirmemiz gerekecek.
Şimdi çeviri işlemi için hangi kodu çalıştıracağıza bakalım.
https://gist.github.com/nafidurmus/bc7dfb23219771eccaf7a15b8997edb3
Yukarıdaki kodda ;
ruby : ruby dosyası çalıştıracağımızı
-r ./subtitle-for-everyone.rb : çalıştıracağımız proje dosyasını ekledik.
-e : script i çalıştırmak için izin verdik
translate : dosyanın içindeki fonksiyonun adı
yandex_translate_id : yandex ten aldığımız api
altyazı_dosyasının_konumu : çevirilecek dosyanın konumu ve adı
cevirilmesini_istediğiniz_dilin_kod : istenen dil kodu (örnek : tr)
Şimdi çalıştıracağımız kodun örneğine bakalım.
yukarıdaki kodların çalışır halde olanı (kırmızıyla kapatılan alan çeviri apisinden)
Şimdi kodu çalıştıralım ve çevirelerin nasıl değiştiğine bakalım. Aşağıdaki videodan değişimleri izleyebilirsiniz.
Çeviride ara ara sıkıntılar olsada %80-%90 oranında iyi sonuç verdiğini söyleyebilirim. Genelde sıkıntılar çok uzun olmadıkça olmuyor. 2–2.5 saatlik film altyazıları çevirilerini
Sonra ne olacak ?
Sonrası için aklımda iki fikir var. Algoritmayı kullanmayı planlıyorum.
1.Kütüphane(gem) yaparak daha kullanışlı hale getirmek. Ruby ile kütüphane yapı için aşağıdaki yazıya göz atabilirsiniz.
4 Adımda Ruby gem(kütüphane) yapımı
_Merhabalar bu yazıda basit bir ruby gem yapımından bahsedeceğim. Şimdi adım adım ilerleyelim._medium.com
Yaptıktan sonra yine burada paylaşırım.
2.Bir web sitesi yaparak altyazıları listelemek
Altyazı, Sinema, Paylaşım Siteniz
_PlanetDP türkçe, ingilizce altyazı sitesidir. divxplanet devamıdır._www.planetdp.org
Aşağıdaki ekran görüntüsünde gördüğünüz gibi altyazıları listelemek istiyorum.
Altyazıları listeleme sebebim ise bir kişi altyazıyı çevirdikten sonra , başka biri yine aynı film / dizi için altyazıya ihtiyaç duyarsa siteden indirebilsin.
Kaynak kodlarına aşağıdan ulaşabilirsiniz.
https://github.com/nafidurmus/subtitle-for-everyone
Bana ulaşabileceğiniz iletişim adresleri ,