Python
Meili
Meili (美丽) هو برنامج يتيح لك ترجمة اللغة الصينية مباشرةً، مع طبقة شفافة تعرض البينيين والمعنى.
美丽 (Meili) تعني "جميل".

واجهة دراسة الماندرين • ترجمة محلية • تحويل النص إلى كلام
ما هذا؟
Meili (美丽) هو برنامج يتيح لك ترجمة الصينية مباشرة، مع طبقة تراكب شفافة تعرض البينيين والمعنى.
الميزات
1. منطقة المشاهدة
- عند بدء التشغيل، تختار النافذة المراد مشاركتها في مربع حوار النظام.
- انقر على طبقة التراكب لفتح إطار مجمّد من البث، ثم ارسم مربعًا فوقه لتحديد المنطقة المراقبة (النقر بزر الفأرة الأيمن أو Esc يلغي).
- يستمر التطبيق في مراقبة تلك المنطقة من النافذة المشتركة: كل 3 ثوانٍ يقرأ الصينية هناك ويترجمها فقط عند ظهور سطر جديد.
- انقر بزر الفأرة الأيمن على طبقة التراكب لمسح المنطقة.
2. بطاقة الدراسة
- كل نتيجة تعرض الهانزي، والبينيين (
pypinyin)، وتفصيل الكلمات من CC-CEDICT، والترجمة (MarianMT محلي،Helsinki-NLP/opus-mt-zh-en). - تجلس البطاقة أفقيًا في المنتصف أسفل طبقة التراكب. يرسم التطبيق النص بحدود خارجية ليبقى مقروءًا فوق الفيديو.
3. ترجمة التحديد
- حدد نصًا صينيًا في أي مكان على سطح المكتب وسيمرره التطبيق عبر نفس المسار: مرشح CJK ← البطاقة ← الترجمة.
4. مفتاح الاختصار
- اضغط
Ctrl+Alt+Sلالتقاط الشاشة. يقوم التطبيق بتشغيل OCR عليها ويترجم أي صينية يجدها.
5. تحويل النص إلى كلام
- NeuTTS (تحويل نص إلى كلام عصبي محلي، اختياري، يُفعّل في الإعدادات).
- gTTS كبديل احتياطي.
- ينطق التطبيق الهانزي أو الترجمة، بالصينية أو الإنجليزية وفقًا لذلك.
6. إضافة المتصفح (Chromium)
- حدد نصًا صينيًا على صفحة وستعرض الإضافة تلميحًا للترجمة داخل الصفحة.
- تتواصل الإضافة مع الخادم الخلفي المحلي على
127.0.0.1:8263. - تحتفظ الإضافة بسياق الصفحة في الذاكرة فقط. لا تكتب شيئًا على القرص.
التثبيت
المتطلبات الأساسية
- Python 3.12+
- Node.js (أحدث إصدار LTS، لإضافة المتصفح)
- Tesseract OCR مع بيانات
chi_simوengالمدرّبة (مضمّنة فيdata/tessdata/) - PyGObject + GStreamer + إضافة PipeWire GStreamer (لمشاركة البوابة على Wayland)
- متصفح قائم على Chromium (للإضافة)
الإعداد
# System dependencies (Arch Linux)
./scripts/install_dependencies.sh
# Python dependencies
make install-pip
# Optional: NeuTTS
make vendor
# Browser extension
make build-extension
# Configuration
cp config/example_config.yaml config/config.yaml
الإعدادات
حرّر config/config.yaml:
ocr:
engine: "pytesseract"
languages: ["en", "zh"] # chi_sim does the hanzi work
translation:
service: "helsinki-nlp"
model: "Helsinki-NLP/opus-mt-zh-en" # Chinese -> English
target_language: "en"
performance:
use_gpu: false
neutts_enabled: false # needs vendor/neutts and src/assets/voice_ref.wav
use_gpu: false يشغّل نموذج الترجمة على المعالج.
التشغيل
make run
تحميل الإضافة
- ابنِها:
make build-extension - افتح
chrome://extensions، وفعّل وضع المطور - "Load unpacked" واختر مخرجات بناء الإضافة (
src/extension/dist)
هيكل المشروع
Meili/
├── src/
│ ├── mesly/ # Python application
│ │ ├── capture/ # Portal/PipeWire window streaming, screen capture
│ │ ├── config/ # Settings and system specs
│ │ ├── dictionary/ # CC-CEDICT lookup, pinyin, segmentation
│ │ ├── ocr/ # Tesseract OCR + CJK-only filtering
│ │ ├── server/ # FastAPI backend (extension endpoint)
│ │ ├── translation/ # Local MarianMT (opus-mt-zh-en) service
│ │ ├── tts/ # NeuTTS / gTTS speech synthesis
│ │ ├── utils/ # Logging, hotkeys
│ │ └── window/ # PyQt5 HUD overlay
│ └── extension/ # Chromium extension (select-to-translate)
├── data/ # Vendored tessdata + CC-CEDICT
├── config/ # Runtime config
├── vendor/ # NeuTTS (optional)
├── scripts/ # Install scripts
└── main.py # Entry point
المساهمة
المساهمات مرحّب بها. راجع AGENTS.md لإرشادات التطوير:
- الاستيراد على المستوى الأعلى
- فصل الوحدات إلى مجلدات
- استخدام الفئات في الإضافات