Webtoon / Manhwa sayfalarındaki İngilizce metinleri yapay zeka ile otomatik olarak Türkçe'ye (veya 10+ dile) çeviren tam yığın çeviri sistemi.
Chrome Uzantısı · Python Backend · Masaüstü Uygulaması
Manhwa Çeviri, webtoon okurken dil bariyerini tamamen ortadan kaldırmak için geliştirilmiş uçtan uca bir çeviri sistemidir. Proje üç ana bileşenden oluşur:
| Motor | Açıklama | Hız | Doğruluk |
|---|---|---|---|
| ⚡ PaddleOCR | Hafif, CPU tabanlı metin tespiti. Uzun görselleri otomatik dilimleme ile işler. | Hızlı | İyi |
| 🧠 GLM-OCR + YOLOv8 | YOLOv8 ile konuşma balonu tespiti + GLM-OCR ile balon içi metin okuma. GPU (CUDA) gerektirir. | Orta | Yüksek |
declarativeNetRequest (DNR) ile Referer/Origin header'ları spoof'lanır; webtoons.com gibi korumalı sitelerden görsel indirilir.*_tr.png olarak kaydedilir.┌──────────────────────────────────────────────────────────────────┐
│ KULLANICI │
│ │
│ ┌─────────────────────┐ ┌─────────────────────────┐ │
│ │ Chrome Uzantısı │ │ Masaüstü Uygulaması │ │
│ │ (Manifest V3) │ │ (CustomTkinter) │ │
│ │ │ │ │ │
│ │ • content.js │ │ • desktop_app.py │ │
│ │ • popup.html/js │ │ • Toplu sayfa çevirisi │ │
│ │ • background.js │ │ • Font/renk yönetimi │ │
│ └────────┬────────────┘ └────────┬────────────────┘ │
│ │ HTTP POST │ HTTP POST │
│ └──────────┬─────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ FastAPI Backend (port 8899) │ │
│ │ │ │
│ │ POST /api/translate → Görsel yükle, OCR + Çevir │ │
│ │ GET /api/health → Sağlık kontrolü │ │
│ │ GET /api/languages → Desteklenen diller │ │
│ │ GET /api/ocr-engine → Aktif OCR motoru │ │
│ │ POST /api/ocr-engine → OCR motoru değiştir │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────────────┐ │ │
│ │ │ PaddleOCR (CPU) │ │ YOLOv8 + GLM-OCR (GPU) │ │ │
│ │ │ ocr_engine.py │ │ glm_ocr_engine.py │ │ │
│ │ └──────────────────┘ └──────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Gemma-3-27b-it via Gemini API (translator.py) │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
manhwaCeviri/
├── backend/
│ ├── main.py # FastAPI ana uygulama, endpoint'ler ve yaşam döngüsü
│ ├── config.py # Konfigürasyon (sunucu, OCR, dil, CORS ayarları)
│ ├── ocr_engine.py # PaddleOCR metin tespiti (dilimleme + gruplama)
│ ├── glm_ocr_engine.py # YOLOv8 balon tespiti + GLM-OCR metin okuma
│ ├── translator.py # Gemma-3-27b-it ile bağlamsal çeviri (Gemini API)
│ ├── requirements.txt # Python bağımlılıkları
│ ├── debug_images/ # OCR debug görselleri (otomatik oluşur)
│ └── venv/ # Python sanal ortamı
├── extension/
│ ├── manifest.json # Chrome Extension Manifest V3
│ ├── content.js # Content script (görsel tarama, overlay, toplu çeviri)
│ ├── content.css # Stil dosyası (butonlar, overlay, toast, panel)
│ ├── background.js # Service worker (CORS bypass, DNR, mesaj yönetimi)
│ ├── popup.html # Popup arayüzü (premium dark UI)
│ ├── popup.js # Popup mantığı (motor/dil/mod seçimi)
│ └── icons/ # Extension ikonları (16, 48, 128px)
├── desktop_app.py # Masaüstü çeviri asistanı (CustomTkinter)
├── start_backend.bat # Backend otomatik kurulum ve başlatma
├── Masaustu_App.bat # Masaüstü uygulaması başlatma
├── .gitignore
└── README.md
| Bileşen | Gereksinim |
|---|---|
| İşletim Sistemi | Windows 10/11 |
| Python | 3.10+ |
| GPU (isteğe bağlı) | NVIDIA GPU + CUDA 12.6 (GLM-OCR modu için) |
| Tarayıcı | Google Chrome / Chromium tabanlı tarayıcılar |
| İnternet | Gemini API çağrıları için gerekli |
fastapi, uvicorn — Web sunucusupaddleocr, paddlepaddle — PaddleOCR motorutorch, transformers, accelerate — GLM-OCR motoru (GPU)ultralytics, huggingface-hub — YOLOv8 balon tespitigoogle-genai — Gemini API (Gemma-3 çeviri)Pillow, numpy, opencv-python-headless — Görsel işlemecustomtkinter — Masaüstü uygulaması# Çift tıkla veya terminalde çalıştır:
start_backend.bat
Bu script otomatik olarak:
venv) oluşturur (yoksa)http://127.0.0.1:8899 adresinde başlatırcd backend
# Sanal ortam oluştur ve aktif et
python -m venv venv
venv\Scripts\activate
# Temel bağımlılıkları yükle
pip install -r requirements.txt
# 1. PyTorch + CUDA 12.6
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
# 2. PaddlePaddle GPU (isteğe bağlı)
pip uninstall paddlepaddle paddlepaddle-gpu -y
pip install paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
# 3. Transformers (son sürüm)
pip install git+https://github.com/huggingface/transformers.git
pip install accelerate
python main.py
Backend http://127.0.0.1:8899 adresinde çalışmaya başlar.
chrome://extensions/ adresine gidinextension/ klasörünü seçin# Backend çalışıyorken:
Masaustu_App.bat
# veya
python desktop_app.py
start_backend.bat ile backend'i başlatınMasaustu_App.bat ile uygulamayı açınMasaüstü/Manhwa_Ceviri_Ciktilari/ klasörüne kaydedilir| Bayrak | Dil | Kod |
|---|---|---|
| 🇹🇷 | Türkçe (varsayılan) | tr |
| 🇬🇧 | English | en |
| 🇩🇪 | Deutsch | de |
| 🇫🇷 | Français | fr |
| 🇪🇸 | Español | es |
| 🇯🇵 | 日本語 | ja |
| 🇰🇷 | 한국어 | ko |
| 🇨🇳 | 中文 | zh-cn |
| 🇸🇦 | العربية | ar |
| 🇷🇺 | Русский | ru |
backend/config.py)HOST = "127.0.0.1" # Sunucu adresi
PORT = 8899 # Sunucu portu
OCR_ENGINE = "paddle" # Varsayılan OCR motoru: "paddle" veya "glm-ocr"
OCR_LANG = "en" # Kaynak dil (PaddleOCR)
OCR_USE_GPU = False # PaddleOCR GPU kullanımı
GLM_OCR_MODEL = "zai-org/GLM-OCR" # GLM-OCR model adı
GLM_OCR_DEVICE = "cuda" # GLM-OCR cihazı: "cuda" veya "cpu"
DEFAULT_TARGET_LANG = "tr" # Varsayılan hedef dil
Backend http://127.0.0.1:8899 adresinde çalışır:
| Endpoint | Yöntem | Açıklama |
|---|---|---|
/api/health | GET | Sağlık kontrolü |
/api/languages | GET | Desteklenen dilleri listeler |
/api/ocr-engine | GET | Aktif OCR motorunu döner |
/api/ocr-engine | POST | OCR motorunu değiştirir (engine: paddle / glm-ocr) |
/api/translate | POST | Görsel yükle → OCR → Çeviri → JSON sonuç |
/api/translate)İstek:
Content-Type: multipart/form-data
- image: Görsel dosyası (PNG, JPG, WEBP)
- target_lang: Hedef dil kodu (varsayılan: "tr")
Yanıt:
{
"success": true,
"image_width": 800,
"image_height": 1200,
"ocr_engine": "paddle",
"translations": [
{
"bbox": [[x1,y1], [x2,y2], [x3,y3], [x4,y4]],
"original_text": "Hello",
"translated_text": "Merhaba",
"confidence": 0.95,
"source_lang": "auto",
"target_lang": "tr"
}
],
"processing_time_ms": 1234
}
Kullanıcı Tıklaması
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Görsel İndir │────▶│ OCR Metin │────▶│ Metinleri Grupla │
│ (CORS bypass) │ │ Tespiti │ │ (Balon birleştir) │
└─────────────────┘ └──────────────────┘ └────────────────────┘
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Overlay / Panel│◀────│ JSON Yanıt │◀────│ Gemma-3-27b ile │
│ Oluştur │ │ Hazırla │ │ Bağlamsal Çeviri │
└─────────────────┘ └──────────────────┘ └────────────────────┘
start_backend.bat dosyasının çalıştığından emin olun.pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126 komutunu çalıştırın.git checkout -b feature/yeni-ozellik)git commit -m 'Yeni özellik eklendi')git push origin feature/yeni-ozellik)Bu proje MIT Lisansı altında lisanslanmıştır.
Manhwa Çeviri ile keyifli okumalar! 📚🌐
Webtoon'ları kendi dilinizde okuyun.
3 commits
Python
49.4%
JavaScript
28.5%
HTML
12.9%
CSS
8.3%
Webtoon / Manhwa sayfalarındaki İngilizce metinleri yapay zeka ile otomatik olarak Türkçe'ye (veya 10+ dile) çeviren tam yığın çeviri sistemi.
Chrome Uzantısı · Python Backend · Masaüstü Uygulaması
Manhwa Çeviri, webtoon okurken dil bariyerini tamamen ortadan kaldırmak için geliştirilmiş uçtan uca bir çeviri sistemidir. Proje üç ana bileşenden oluşur:
| Motor | Açıklama | Hız | Doğruluk |
|---|---|---|---|
| ⚡ PaddleOCR | Hafif, CPU tabanlı metin tespiti. Uzun görselleri otomatik dilimleme ile işler. | Hızlı | İyi |
| 🧠 GLM-OCR + YOLOv8 | YOLOv8 ile konuşma balonu tespiti + GLM-OCR ile balon içi metin okuma. GPU (CUDA) gerektirir. | Orta | Yüksek |
declarativeNetRequest (DNR) ile Referer/Origin header'ları spoof'lanır; webtoons.com gibi korumalı sitelerden görsel indirilir.*_tr.png olarak kaydedilir.┌──────────────────────────────────────────────────────────────────┐
│ KULLANICI │
│ │
│ ┌─────────────────────┐ ┌─────────────────────────┐ │
│ │ Chrome Uzantısı │ │ Masaüstü Uygulaması │ │
│ │ (Manifest V3) │ │ (CustomTkinter) │ │
│ │ │ │ │ │
│ │ • content.js │ │ • desktop_app.py │ │
│ │ • popup.html/js │ │ • Toplu sayfa çevirisi │ │
│ │ • background.js │ │ • Font/renk yönetimi │ │
│ └────────┬────────────┘ └────────┬────────────────┘ │
│ │ HTTP POST │ HTTP POST │
│ └──────────┬─────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ FastAPI Backend (port 8899) │ │
│ │ │ │
│ │ POST /api/translate → Görsel yükle, OCR + Çevir │ │
│ │ GET /api/health → Sağlık kontrolü │ │
│ │ GET /api/languages → Desteklenen diller │ │
│ │ GET /api/ocr-engine → Aktif OCR motoru │ │
│ │ POST /api/ocr-engine → OCR motoru değiştir │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────────────┐ │ │
│ │ │ PaddleOCR (CPU) │ │ YOLOv8 + GLM-OCR (GPU) │ │ │
│ │ │ ocr_engine.py │ │ glm_ocr_engine.py │ │ │
│ │ └──────────────────┘ └──────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Gemma-3-27b-it via Gemini API (translator.py) │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
manhwaCeviri/
├── backend/
│ ├── main.py # FastAPI ana uygulama, endpoint'ler ve yaşam döngüsü
│ ├── config.py # Konfigürasyon (sunucu, OCR, dil, CORS ayarları)
│ ├── ocr_engine.py # PaddleOCR metin tespiti (dilimleme + gruplama)
│ ├── glm_ocr_engine.py # YOLOv8 balon tespiti + GLM-OCR metin okuma
│ ├── translator.py # Gemma-3-27b-it ile bağlamsal çeviri (Gemini API)
│ ├── requirements.txt # Python bağımlılıkları
│ ├── debug_images/ # OCR debug görselleri (otomatik oluşur)
│ └── venv/ # Python sanal ortamı
├── extension/
│ ├── manifest.json # Chrome Extension Manifest V3
│ ├── content.js # Content script (görsel tarama, overlay, toplu çeviri)
│ ├── content.css # Stil dosyası (butonlar, overlay, toast, panel)
│ ├── background.js # Service worker (CORS bypass, DNR, mesaj yönetimi)
│ ├── popup.html # Popup arayüzü (premium dark UI)
│ ├── popup.js # Popup mantığı (motor/dil/mod seçimi)
│ └── icons/ # Extension ikonları (16, 48, 128px)
├── desktop_app.py # Masaüstü çeviri asistanı (CustomTkinter)
├── start_backend.bat # Backend otomatik kurulum ve başlatma
├── Masaustu_App.bat # Masaüstü uygulaması başlatma
├── .gitignore
└── README.md
| Bileşen | Gereksinim |
|---|---|
| İşletim Sistemi | Windows 10/11 |
| Python | 3.10+ |
| GPU (isteğe bağlı) | NVIDIA GPU + CUDA 12.6 (GLM-OCR modu için) |
| Tarayıcı | Google Chrome / Chromium tabanlı tarayıcılar |
| İnternet | Gemini API çağrıları için gerekli |
fastapi, uvicorn — Web sunucusupaddleocr, paddlepaddle — PaddleOCR motorutorch, transformers, accelerate — GLM-OCR motoru (GPU)ultralytics, huggingface-hub — YOLOv8 balon tespitigoogle-genai — Gemini API (Gemma-3 çeviri)Pillow, numpy, opencv-python-headless — Görsel işlemecustomtkinter — Masaüstü uygulaması# Çift tıkla veya terminalde çalıştır:
start_backend.bat
Bu script otomatik olarak:
venv) oluşturur (yoksa)http://127.0.0.1:8899 adresinde başlatırcd backend
# Sanal ortam oluştur ve aktif et
python -m venv venv
venv\Scripts\activate
# Temel bağımlılıkları yükle
pip install -r requirements.txt
# 1. PyTorch + CUDA 12.6
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
# 2. PaddlePaddle GPU (isteğe bağlı)
pip uninstall paddlepaddle paddlepaddle-gpu -y
pip install paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
# 3. Transformers (son sürüm)
pip install git+https://github.com/huggingface/transformers.git
pip install accelerate
python main.py
Backend http://127.0.0.1:8899 adresinde çalışmaya başlar.
chrome://extensions/ adresine gidinextension/ klasörünü seçin# Backend çalışıyorken:
Masaustu_App.bat
# veya
python desktop_app.py
start_backend.bat ile backend'i başlatınMasaustu_App.bat ile uygulamayı açınMasaüstü/Manhwa_Ceviri_Ciktilari/ klasörüne kaydedilir| Bayrak | Dil | Kod |
|---|---|---|
| 🇹🇷 | Türkçe (varsayılan) | tr |
| 🇬🇧 | English | en |
| 🇩🇪 | Deutsch | de |
| 🇫🇷 | Français | fr |
| 🇪🇸 | Español | es |
| 🇯🇵 | 日本語 | ja |
| 🇰🇷 | 한국어 | ko |
| 🇨🇳 | 中文 | zh-cn |
| 🇸🇦 | العربية | ar |
| 🇷🇺 | Русский | ru |
backend/config.py)HOST = "127.0.0.1" # Sunucu adresi
PORT = 8899 # Sunucu portu
OCR_ENGINE = "paddle" # Varsayılan OCR motoru: "paddle" veya "glm-ocr"
OCR_LANG = "en" # Kaynak dil (PaddleOCR)
OCR_USE_GPU = False # PaddleOCR GPU kullanımı
GLM_OCR_MODEL = "zai-org/GLM-OCR" # GLM-OCR model adı
GLM_OCR_DEVICE = "cuda" # GLM-OCR cihazı: "cuda" veya "cpu"
DEFAULT_TARGET_LANG = "tr" # Varsayılan hedef dil
Backend http://127.0.0.1:8899 adresinde çalışır:
| Endpoint | Yöntem | Açıklama |
|---|---|---|
/api/health | GET | Sağlık kontrolü |
/api/languages | GET | Desteklenen dilleri listeler |
/api/ocr-engine | GET | Aktif OCR motorunu döner |
/api/ocr-engine | POST | OCR motorunu değiştirir (engine: paddle / glm-ocr) |
/api/translate | POST | Görsel yükle → OCR → Çeviri → JSON sonuç |
/api/translate)İstek:
Content-Type: multipart/form-data
- image: Görsel dosyası (PNG, JPG, WEBP)
- target_lang: Hedef dil kodu (varsayılan: "tr")
Yanıt:
{
"success": true,
"image_width": 800,
"image_height": 1200,
"ocr_engine": "paddle",
"translations": [
{
"bbox": [[x1,y1], [x2,y2], [x3,y3], [x4,y4]],
"original_text": "Hello",
"translated_text": "Merhaba",
"confidence": 0.95,
"source_lang": "auto",
"target_lang": "tr"
}
],
"processing_time_ms": 1234
}
Kullanıcı Tıklaması
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Görsel İndir │────▶│ OCR Metin │────▶│ Metinleri Grupla │
│ (CORS bypass) │ │ Tespiti │ │ (Balon birleştir) │
└─────────────────┘ └──────────────────┘ └────────────────────┘
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Overlay / Panel│◀────│ JSON Yanıt │◀────│ Gemma-3-27b ile │
│ Oluştur │ │ Hazırla │ │ Bağlamsal Çeviri │
└─────────────────┘ └──────────────────┘ └────────────────────┘
start_backend.bat dosyasının çalıştığından emin olun.pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126 komutunu çalıştırın.git checkout -b feature/yeni-ozellik)git commit -m 'Yeni özellik eklendi')git push origin feature/yeni-ozellik)Bu proje MIT Lisansı altında lisanslanmıştır.
Manhwa Çeviri ile keyifli okumalar! 📚🌐
Webtoon'ları kendi dilinizde okuyun.
3 commits
Python
49.4%
JavaScript
28.5%
HTML
12.9%
CSS
8.3%