--- license: mit sdk: docker colorTo: blue --- # 🌍 سرویس ترجمه چندزبانه M2M100 سرویس ترجمه پیشرفته مبتنی بر FastAPI که از مدل M2M100 فیسبوک برای ترجمه بین بیش از 100 زبان مختلف استفاده می‌کند. ## ✨ ویژگی‌ها - **ترجمه چندزبانه**: پشتیبانی از بیش از 100 زبان - **کش هوشمند**: ذخیره نتایج ترجمه برای بهبود سرعت - **تقسیم متن**: پردازش خودکار متون طولانی - **پردازش پس‌زمینه**: ترجمه متون سنگین در پس‌زمینه - **پیگیری پیشرفت**: مشاهده وضعیت ترجمه به صورت real-time - **یکپارچگی WordPress**: سازگار با سیستم‌های مدیریت محتوا - **GPU/CPU**: پشتیبانی از هر دو حالت ## 🚀 راه‌اندازی سریع ### روش 1: Hugging Face Spaces 1. فایل‌ها را در یک Space جدید قرار دهید 2. Space به صورت خودکار راه‌اندازی می‌شود ### روش 2: محلی ```bash # کلون کردن پروژه git clone [repository-url] cd multilingual-translator # نصب وابستگی‌ها pip install -r requirements.txt # اجرای سرویس python app.py ``` ### روش 3: Docker ```bash docker build -t multilingual-translator . docker run -p 7860:7860 multilingual-translator ``` ## 📋 API Endpoints ### 🏠 اصلی - `GET /` - صفحه اصلی و راهنما - `GET /api/health` - وضعیت سلامت سرویس - `GET /api/server-status` - وضعیت کلی سرور ### 🔄 ترجمه - `POST /api/translate` - ترجمه همزمان - `POST /api/translate/form` - ترجمه از فرم - `POST /api/translate/heavy` - ترجمه سنگین در پس‌زمینه - `POST /api/translate/session` - ترجمه با session ### 📊 پیگیری وضعیت - `GET /api/progress/{session_id}` - پیشرفت ترجمه - `GET /api/status/{session_id}` - وضعیت session - `POST /api/check-completion` - بررسی تکمیل - `POST /api/check-translation-status` - وضعیت ترجمه ### 🌐 زبان‌ها و آمار - `GET /api/languages` - لیست زبان‌های پشتیبانی شده - `GET /api/stats` - آمار کلی - `GET /api/cache/stats` - آمار کش ### ⚙️ مدیریت - `POST /api/cache/clear` - پاک کردن کش - `POST /api/webhook/wordpress` - Webhook وردپرس - `POST /api/check-auto-charge-status` - وضعیت کسر اعتبار ## 📝 نحوه استفاده ### ترجمه ساده ```python import requests url = "https://your-space-url/api/translate" data = { "text": "Hello, how are you?", "source_lang": "English", "target_lang": "Persian" } response = requests.post(url, json=data) result = response.json() print(result["translated_text"]) ``` ### ترجمه با پیگیری پیشرفت ```python # شروع ترجمه با session response = requests.post("https://your-space-url/api/translate/session", json={ "text": "متن طولانی برای ترجمه...", "source_lang": "Persian", "target_lang": "English" }) session_id = response.json()["session_id"] # پیگیری پیشرفت progress_response = requests.get(f"https://your-space-url/api/progress/{session_id}") progress = progress_response.json() print(f"پیشرفت: {progress['progress']}%") ``` ### ترجمه پس‌زمینه ```python # شروع ترجمه سنگین response = requests.post("https://your-space-url/api/translate/heavy", json={ "text": "متن بسیار طولانی...", "source_lang": "English", "target_lang": "Persian", "auto_charge": True }) request_id = response.json()["request_id"] # بررسی وضعیت status_response = requests.post("https://your-space-url/api/check-translation-status", json={ "request_id": request_id }) ``` ## 🌍 زبان‌های پشتیبانی شده سرویس از بیش از 100 زبان پشتیبانی می‌کند از جمله: **اروپایی**: انگلیسی، اسپانیایی، فرانسوی، آلمانی، ایتالیایی، پرتغالی، روسی، لهستانی، چکی، مجارستانی، رومانیایی، یونانی، هلندی، سوئدی، نروژی، دانمارکی، فنلاندی **آسیایی**: فارسی، عربی، چینی، ژاپنی، کره‌ای، هندی، تایلندی، ویتنامی، اندونزیایی، مالایی، تامیل، بنگالی، اردو **آفریقایی**: سواحیلی، امهری، یوروبا، ایگبو، هوسا، سومالی، آفریکانس، زولو، خوسا و بسیاری زبان‌های دیگر... ## ⚡ عملکرد - **سرعت**: ترجمه متون کوتاه در کمتر از 2 ثانیه - **کش**: استفاده مجدد از ترجمه‌های قبلی - **موازی‌سازی**: پردازش همزمان چندین درخواست - **GPU**: استفاده خودکار از GPU در صورت وجود ## 🔧 پیکربندی ### متغیرهای محیطی ```bash PORT=7860 # پورت سرویس WORDPRESS_NOTIFICATION_URL=... # URL اطلاع‌رسانی WordPress MODEL_CACHE_DIR=./models # مسیر ذخیره مدل ``` ### تنظیمات داخلی ```python MODEL_NAME = "facebook/m2m100_418M" # مدل M2M100 CACHE_EXPIRY = 3600 # مدت انقضا کش (ثانیه) MAX_CHUNK_SIZE = 350 # حداکثر اندازه بخش MAX_WORKERS = 3 # تعداد worker ``` ## 🛠️ توسعه ### ساختار پروژه ``` ├── app.py # فایل اصلی ├── requirements.txt # وابستگی‌ها ├── Dockerfile # تنظیمات Docker ├── README.md # مستندات └── models/ # مدل‌های ذخیره شده ``` ### کلاس‌های اصلی - `MultilingualTranslator`: مدیریت ترجمه - `TranslationCache`: کش نتایج - `TextChunker`: تقسیم متن - `TranslationQueue`: صف وظایف ## 🤝 مشارکت 1. Fork کنید 2. شاخه جدید بسازید (`git checkout -b feature/amazing-feature`) 3. تغییرات را commit کنید (`git commit -m 'Add amazing feature'`) 4. Push کنید (`git push origin feature/amazing-feature`) 5. Pull Request بسازید ## 📄 لایسنس این پروژه تحت لایسنس MIT منتشر شده است. ## 🙏 تشکر - [Facebook M2M100](https://github.com/pytorch/fairseq/tree/master/examples/m2m_100) برای مدل ترجمه - [Hugging Face Transformers](https://huggingface.co/transformers/) برای کتابخانه - [FastAPI](https://fastapi.tiangolo.com/) برای فریمورک وب ## 📞 پشتیبانی برای گزارش مشکلات یا درخواست ویژگی جدید، لطفاً یک Issue ایجاد کنید. --- **ساخته شده با ❤️ برای جامعه متن‌باز**