İngilizce PDF'leri sayfa düzenini bozmadan, tamamen yerel GPU (Ollama) ile Türkçeye çevirir · Layout-preserving local EN→TR PDF translator for CachyOS/Arch
Dosyaya git
Ali Polat dd0009767b v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu
- Ara PDF'ler /tmp (RAM) yerine ~/.cache/pdfcevir/tmp altında, iş bitince siliniyor
- pdfcevir-sozluk: çeviri önbelleğinden terim sözlüğü adayı üretir
- README: CachyOS/Arch kurulum adımları, toplu çeviri kullanımı
- Kişisel/iş sözlükleri depo dışında tutuluyor

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 11:13:29 +03:00
docs docs: kurulum ve kullanım rehberi 2026-09-20 22:16:23 +03:00
packaging v0.3.0: masaüstü arayüzü, kurulum, resim-PDF OCR iyileştirmeleri 2026-09-19 04:52:04 +03:00
pdfcevir v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu 2026-09-26 11:13:29 +03:00
sozluk v0.2.0: görsel içi metin, GPU OCR, satır içi vurgu, terim koruma 2026-09-19 02:39:30 +03:00
tests v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu 2026-09-26 11:13:29 +03:00
tools v0.2.0: görsel içi metin, GPU OCR, satır içi vurgu, terim koruma 2026-09-19 02:39:30 +03:00
.gitignore v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu 2026-09-26 11:13:29 +03:00
CHANGELOG.md v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu 2026-09-26 11:13:29 +03:00
install.sh v0.3.0: masaüstü arayüzü, kurulum, resim-PDF OCR iyileştirmeleri 2026-09-19 04:52:04 +03:00
LICENSE v0.1.0: düzen koruyan yerel PDF çevirisi (dijital + taranmış sayfalar) 2026-09-19 01:45:04 +03:00
pyproject.toml v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu 2026-09-26 11:13:29 +03:00
README.md v0.4.0: büyük belgeler için disk tabanlı ara dosyalar, sözlük önerisi, CachyOS kurulumu 2026-09-26 11:13:29 +03:00

PDF Çevirici (pdfcevir)

İngilizce PDF'leri sayfa düzenini bozmadan Türkçeye çeviren, tamamen yerel çalışan araç — DeepL'in belge çevirisi gibi, ama kendi ekran kartınızda. Hiçbir veri bilgisayarınızdan çıkmaz.

Belge türü Ne yapılır
Dijital PDF (Word, PowerPoint çıktısı, kılavuz) Metin yerinde sökülür; Türkçesi aynı konum, renk, boyut ve kalınlıkta yazılır. Zemin, görsel, tablo, çizim dokunulmadan kalır.
Sunumdaki ekran görüntüleri / diyagramlar Görsel içindeki yazı OCR ile okunur, çevrilir ve yerine yazılır. Fotoğraftaki el yazısı gibi alakasız metinler elenir.
Taranmış ya da tamamen resim olan PDF Sayfa OCR ile okunur (madde işaretleri, tablolar, dikey yazılar dahil), Türkçe metin zemine uyarak yazılır.
Bozuk kodlamalı metin (kopyalayınca anlamsız çıkan) Otomatik fark edilir ve OCR ile okunur.

Sağlamlık: her sayfa bağımsız işlenir. Bir sayfada sorun çıkarsa o sayfa orijinal haliyle kalır. Çıktı önce doğrulanır, sonra kaydedilir; yarım ya da bozuk dosya oluşmaz. Her çalıştırmada sayfa bazlı bir rapor (*_TR.rapor.json) yazılır: neyin çevrildiği, neyin neden atlandığı.

Gereksinimler

  • Linux (Windows/macOS'ta da çalışır ama kurulum betiği Linux içindir)
  • Ollama ve bir çeviri modeli (varsayılan: translategemma:4b, ~3.3 GB)
  • Tesseract (İngilizce dil paketi), Liberation fontları
  • Önerilen: NVIDIA GPU (8 GB VRAM yeterli). GPU yoksa çalışır ama yavaştır.

Yeni başlıyorsan: adım adım anlatım için docs/KURULUM.md.

Kurulum (CachyOS / Arch Linux)

CachyOS + NVIDIA ekran kartı üzerinde geliştirildi ve test edildi.

# 1) Sistem paketleri (NVIDIA için ollama-cuda; AMD için ollama-rocm, GPU yoksa ollama)
sudo pacman -S --needed git python ollama-cuda tesseract tesseract-data-eng ttf-liberation
sudo systemctl enable --now ollama

# 2) Programı indir ve kur
git clone https://github.com/boslukkk/pdf-cevirici.git
cd pdf-cevirici
./install.sh                    # sanal ortam + model (~3.3 GB) + uygulama menüsü kısayolu
./install.sh --ollama-paralel   # isteğe bağlı: paralel çeviri (≈2-3 kat hızlı, sudo ister)

Betik her şeyi pdf-cevirici/.venv içine kurar, sisteme Python paketi yazmaz. Kaldırmak için klasörü ve ~/.local/share/applications/pdfcevir.desktop dosyasını silmek yeterli.

Diğer dağıtımlarda (Ubuntu, Fedora…) da çalışır; install.sh eksik paketleri dağıtımınıza uygun komutla söyler.

Kullanım

Arayüz: Uygulama menüsünden PDF Çevirici'yi açın (ya da PDF'e sağ tık → Birlikte aç). Dosyaları pencereye sürükleyin, Çevir'e basın. Çıktı PDF'in yanına ad_TR.pdf olarak yazılır.

Komut satırı:

pdfcevir belge.pdf                          # → belge_TR.pdf
pdfcevir belge.pdf --pages 1-10 -o cikti.pdf
pdfcevir *.pdf -o ceviriler/                # toplu
pdfcevir sunum.pdf --sozluk sozluk/siemens.txt
pdfcevir belge.pdf -m translategemma:12b    # daha akıcı, daha yavaş
pdfcevir tarama.pdf --ocr force             # metin katmanı olsa da OCR

Seçenekler: pdfcevir --help.

Klasörü toplu çevirme (alt klasörler dahil, yapı korunur, yarıda kalırsa kaldığı yerden sürer):

pdfcevir-toplu "~/Belgeler/Kılavuzlar" "~/Belgeler/Kılavuzlar-TR"

Terim sözlüğü

Ürün adları, kodlar (WinCC, STEP 7, S7-1500 …) otomatik korunur. Özel terimler için bir sözlük verebilirsiniz (satır başına bir terim):

stakeholder = paydaş          # her zaman bu karşılık (çekim ekleri doğal kalır: "Paydaş Kaydı")
TIA Portal                    # "=" yoksa: çevirmeden koru

Örnekler: sozluk/pmp.txt, sozluk/siemens.txt.

Önbellekten sözlük önerisi: daha önce yapılan çevirilerdeki sık terimleri (2–4 sözcük) en sık kullanılan karşılıklarıyla listeler. Model çağrısı yok, birkaç saniye sürer.

pdfcevir-sozluk -o sozluk/aday/onbellek.txt --haric sozluk/pmp.txt --haric sozluk/siemens.txt

Liste modelin kendi çevirilerinden çıkar: yanlış çevrilmiş terimler de burada görünür (ör. current transformer = güncel trafo). Gözden geçirip düzeltin, #? satırlarını kontrol edin, sonra dosyayı sozluk/ altına taşıyıp --sozluk ile kullanın.

Model seçimi (8 GB VRAM, RTX 4060 Ti ölçümleri)

Model Hız Not
translategemma:4b (varsayılan) ~250 karakter/sn, tamamen GPU Önerilen. Çeviriye özel model.
translategemma:12b ~45 karakter/sn (8 GB'a sığmaz, kısmen CPU) Daha akıcı; bazen metni genişletir.

Hız için Ollama'nın paralel istekleri açık olmalı (./install.sh --ollama-paralel, ya da OLLAMA_NUM_PARALLEL=8). Yarıda kalan işler önbellek sayesinde kaldığı yerden devam eder.

Nasıl çalışır

Ayrıntılar: docs/TASARIM.md

  1. Analiz: her sayfa dijital, karışık, taranmış ya da bozuk kodlamalı olarak sınıflanır.
  2. Çıkarım: satırlar paragraf ve madde düzeyinde birleştirilir (PowerPoint'in satır satır bölünmüş blokları, madde işaretleri, içindekiler nokta dizileri dahil). Font, renk, hizalama, satır içi vurgu (kalın/renkli parçalar) kaydedilir. Görseller RapidOCR (GPU) ile okunur, Tesseract ile çapraz doğrulanır.
  3. Çeviri: Ollama ile yerel GPU'da, paralel. Ürün adları korunur, Türkçe ekler okunuşa göre düzeltilir (TIA Portal'da, S7-1500'e). Her çıktı doğrulanır, sorunluysa yeniden denenir.
  4. Yazma: orijinal metin yalnız metin olarak sökülür (redaksiyon); görsel içi metin zemin rengi ya da piksel onarımı (inpaint) ile silinir. Türkçesi taban çizgisine hizalı yazılır; sığmazsa boş alana genişletilir, sonra küçültülür.
  5. Doğrulama: çıktı yeniden açılıp kontrol edilir, sonra kaydedilir.

Geliştirme ve test

pip install -e ".[gpu,gui,dev]"
pytest tests/test_units.py                                  # birim testleri (GPU gerekmez)
python tests/make_samples.py tests/samples                  # sentetik örnek PDF'ler
pdfcevir tests/samples/taranmis.pdf -o tests/out/taranmis_TR.pdf
python tests/check.py tests/samples/taranmis.pdf tests/out/taranmis_TR.pdf   # kalite ölçütleri
python tools/compare.py orijinal.pdf ceviri.pdf karsilastirma/               # yan yana PNG
python tools/model_bench.py rapor.md translategemma:4b translategemma:12b --pdf belge.pdf:1-10

tests/check.py ölçütleri: kalan İngilizce oranı, Türkçe karakterlerin metin olarak çıkarılabilmesi ve metin dışı bölgelerde piksel farkı (görsel/düzen bozuldu mu).

Belgeler

Lisans

AGPL-3.0-or-later. PyMuPDF AGPL-3.0 lisanslıdır; proje de bununla uyumlu lisanslanmıştır.