- 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> |
||
|---|---|---|
| docs | ||
| packaging | ||
| pdfcevir | ||
| sozluk | ||
| tests | ||
| tools | ||
| .gitignore | ||
| CHANGELOG.md | ||
| install.sh | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
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
- Analiz: her sayfa dijital, karışık, taranmış ya da bozuk kodlamalı olarak sınıflanır.
- Çı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.
- Ç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.
- 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.
- 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
- docs/KURULUM.md — kurulum, kullanım, sorun giderme
- docs/TASARIM.md — nasıl çalıştığı, tasarım kararları
- CHANGELOG.md — sürüm geçmişi
Lisans
AGPL-3.0-or-later. PyMuPDF AGPL-3.0 lisanslıdır; proje de bununla uyumlu lisanslanmıştır.