Skip to content

Instantly share code, notes, and snippets.

@nafidurmus
Last active October 16, 2019 18:23
Show Gist options
  • Save nafidurmus/3312b6f5412d602680385bad8ce2676f to your computer and use it in GitHub Desktop.
Save nafidurmus/3312b6f5412d602680385bad8ce2676f to your computer and use it in GitHub Desktop.
def translate(yandex_translate_id,subtittle_file,language) # 3 değişkenli bir fonksiyon oluşturduk
require 'yandex-translator' # çeviri için kullanacağımız kütüphaneyi ekledik
translator = Yandex::Translator.new(yandex_translate_id) # yandex_translate_id yi fonksiyondan çekeceğiz
file = File.open(subtittle_file) # çevirilecek altyazı dosyasını fonksiyondan çekeceğiz , aktyazı dosyasını açıyoruz
file_data = file.readlines.map(&:chomp) # okuduğumuz dosyayı satır satır diziye ekledik
a = 0 # dizi eklediğimiz her satırı kontrol etmak için , ilk elemandan başladık
while a < file_data.length do # dizinin içindeki bütün elemanlara bakmak için dizinin boyutuna baktık
if !file_data[a].start_with?(/[0-9]/) and !file_data[a].empty? #burada dosyadan aldığımız her satır için
#sayı ile başlıyor mu diye kontrol ediyoruz.Fakat başına ! koyduğumuz için tam tersi oluyor.
# Yani baktığımız eleman sayı ile başlamıyorsa aşağıdaki kod parçası çalışacak ve metinleri tek
# bir dosya içinde toplayabileceğiz. Burada start_with? metodunu kullanarak satırın ne ile nasıl
# başladığını kontrol edebiliriz. Aynı şekilde end_with? metoduda vardır fakat bizim burada işimize
# yaramadı. (/[0-9]/) şu alanı inceleyelim.Buraya start_with? metoduna göre kullanacağımız
# başlamasını istediğimiz özelliği belirmemiz gerekiyor.Ama biz burada REGEXP kullandık.Açıklamasını
# aşağıya ekledim. /[0-9]/ sadece sayı olanları aramamıza yarıyor.
ceviri = translator.translate file_data[a], from: language # altyazı dosyasında metin olan kısmı
#istenilen dile cevirmeye yarıyor. Burada language kısmını fonksiyondan çekeceğiz.
file = File.read(subtittle_file) # Altyazı dosyasını okumak için gerekli , fonksiyondan çekeceğiz
filtered_data = file.gsub(file_data[a], ceviri) # altyazı formatındaki satırın yerine çevirdiğimiz
# satırı eklemek
File.open(subtittle_file, "w") do |f| # altyazı dosyasına çevirileri eklemek için gerekli fonksiyon
f.write(filtered_data) # altyazı formatına çevirileri yazmaya yarar
end
end
a +=1 #yukarıda başladığımız sayacı her durumda 1 arttırıyoruz.
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment