Last active
October 16, 2019 18:23
-
-
Save nafidurmus/3312b6f5412d602680385bad8ce2676f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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