Meili
Python

Meili

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

GitHub|

美丽 (Meili) تعني "جميل".


image

واجهة دراسة الماندرين • ترجمة محلية • تحويل النص إلى كلام


ما هذا؟

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

تحميل الإضافة

  1. ابنِها: make build-extension
  2. افتح chrome://extensions، وفعّل وضع المطور
  3. "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 لإرشادات التطوير:

  • الاستيراد على المستوى الأعلى
  • فصل الوحدات إلى مجلدات
  • استخدام الفئات في الإضافات