Rehber Linux'ta Gemini ile Türkçe dil desteği olmayan oyunları anlık olarak çevirme

Merhaba sevgili Technopat Sosyal kullanıcıları, bugün Linux'ta Türkçe dil desteği bulunmayan oyunlarda ekranda belirli bir kısmı seçerek yapay zekaya çevirmenizi sağlayan basit bir script tanıtacağım. Zamanla geliştirilebilir. Bash scripti olduğu için geliştirme seçeneği çok fazla. Ben şu an Hyprland'de kısayol atayarak kullanıyorum. Kullandığınız masaüstü ortamında (Wayland gereklidir.) scripti oluşturup masaüstü kısayolu atayarak kullanabilirsiniz.

1-Gerekli paketler: grim slurp tesseract tesseract-data-eng jq curl libnotify

Grim ve Slurp paketleri ekranda belirli bir alanı seçerek ekran görüntüsü almamızı sağlıyor. İkisi de Wayland için kullanılan araçlar. X11 kullanıyorsanız farklı paket kullanıp scriptte bu araçların adının geçtiği kelimeleri değiştirebilirsiniz.

Tesseract ve Tesseract Data ENG paketleri görüntüdeki yazıyı tarayarak metnin algılamasını sağlıyor. Script Tesseract sayesinde ekran görüntüsündeki İngilizce metni algılıyor. Algılanan metin böylece çevrilmesi için yapay zekaya iletiliyor.

JQ paketi terminalde JSON paketinin ayrıştırılmasını sağlıyor.

Curl paketi ile belirlediğimiz yapay zeka modeline istek gönderiyoruz.

Libnotify paketi, yapay zekadan gelen yanıtı ekranda bildirim olarak gösteriyor.

2-Google AI Studio API anahtarı al

https://aistudio.google.com/app/api-keys sayfasından free tier bir API anahtarı oluşturun. Oluşturduğunuz API anahtarını kopyalayın. Scripte eklemeniz gerekecek.

3-Script
Ev dizininizde ocr_cevir.sh adında bir dosya oluşturun. Dosyayı bir metin düzenleyici ile açın, aşağıdaki bash scriptini kopyalayıp yapıştırın ve kaydedin.

Kod:
#!/bin/bash

API_KEY="API KEYİNİZİ YAPIŞTIRIN"

MODEL="gemini-3-flash-preview"



IMG="/tmp/ocr_snapshot.png"



grim -g "$(slurp)" "$IMG"



if [ ! -f "$IMG" ]; then

    exit 1

fi



notify-send -u low -t 1000 "Gemini 3" "Görüntü işleniyor..."



TEXT=$(tesseract "$IMG" stdout -l eng 2>/dev/null)



if [ -z "$TEXT" ]; then

    notify-send -u low "Hata" "Metin okunamadı."

    exit 1

fi



JSON_DATA=$(jq -n \

                  --arg text "$TEXT" \

                  '{

                    contents: [{

                      parts: [{

                        text: ("Act as a professional Turkish video game localizer. Translate the following text from English to Turkish.\n\nContext: The text is from a video game (Dialogue, UI, or Item Description).\nStyle: Natural, informal, and immersive. Avoid robotic literal translations.\nConstraint: Output ONLY the Turkish translation. Do not add any notes or explanations.\n\nText to translate:\n" + $text)

                      }]

                    }]

                  }')



RESPONSE=$(curl -s -H "Content-Type: application/json" \

     -d "$JSON_DATA" \

     "https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent?key=${API_KEY}")



CEVIRI=$(echo "$RESPONSE" | jq -r '.candidates[0].content.parts[0].text')



if [ "$CEVIRI" == "null" ] || [ -z "$CEVIRI" ]; then

    ERROR_MSG=$(echo "$RESPONSE" | jq -r '.error.message // "API Hatası"')

    notify-send -u critical "Gemini 3 Hatası" "$ERROR_MSG"

else

    notify-send -u critical -t 15000 "Gemini 3 Çeviri:" "$CEVIRI"

fi

4-API KEY'inizi ekleyin
Scriptteki API_KEY= satırında " " arasına oluşturduğunuz API anahtarını yapıştırın.

5-Dosyayı çalıştırılabilir yapın
chmod +x ocr_cevir.sh komutu ile dosyayı uygulama gibi çalıştırılabilir hâle getirin.

6-Kısayol oluşturun
Hyprland'de basit bir şekilde config dosyama şu satırı ekledim:
Kod:
bind = ALT, Q, exec, ~/ocr_cevir.sh
Bu sayede Alt ve Q tuşlarına aynı anda bastığımda ekran görüntüsünde belirli bir alan seçmem gerekiyor, oyunda diyaloğu seçiyorum. Seçtiğim alandaki İngilizce metin Tesseract ile algılanıyor ve Gemini'ye gönderiliyor. Gemini sonucu gönderdiğinde Türkçe çeviri, bildirim yoluyla geliyor.

GNOME
GNOME kullanıcıları Grim ve Slurp yerine GNOME-Screenshot paketini kullanabilir.

Scriptteki şu satırı bulun:
Kod:
grim -g "$(slurp)" "$IMG"
Şu şekilde değiştirin:
Kod:
gnome-screenshot -a -f "$IMG"

Güncel olarak GNOME kısayol ayarlarında bash script çalıştırma seçeneği olmayabilir. Pencere yöneticileri daha stabil olacaktır. Deneyenler belirtebilir, düzenleme yapılabilir. Umarım işinize yaramıştır. İyi eğlenceler dilerim.

ÖRNEKLER
Zenless Zone Zero
zzz.png

Undertale


1769794210502.png
 
Son düzenleme:
"Bu bir Zenless Zone Zero diyaloğudur; doğal, argolu ve anime altyazısı tarzında Türkçe'ye çevir."

Daha iyi bir prompt olamaz mıydı? Bu şekilde saçma olmuş bence ama yine de güzel elinize sağlık.
 
"Bu bir Zenless Zone Zero diyaloğudur; doğal, argolu ve anime altyazısı tarzında Türkçe'ye çevir."

Daha iyi bir prompt olamaz mıydı? Bu şekilde saçma olmuş bence ama yine de güzel elinize sağlık.
Kişisel kullanımım için ZZZ özelinde hazırladım, işe yarar olduğu için burada da sundum. Basit bir script olduğu için kolayca kullanıcılar tarafından düzenlenebilir.

Rehber içeriğinde prompt genel amaçlı değiştirildi. Kullanıcılar özelleştirebilir.
 
Ben bunu Python modelleriyle offline yaptım, internet gerekmiyor 😎.
Çünkü translate modelleri hem LLM değil hem de aşırı küçük.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı