• 1404/02/26

ترجمه خودکار توسط ماشین ها :

سلام خدمت شما استاد اردوخانی
استاد میخواستم ببینم راهکاری وجود داره تا خودمون یکی یکی ترجمه برای لغات ننویسیم از پکیج های مثل گوگل ترنسلیت استفاده کنیم تا انجام بده 

  • 1404/02/27
  • ساعت 08:43

سلام خدمت شما دوست عزیز

میتونین از api های سرویسهایی مثل گوگل استفاده کنین 

این پکیج بهتون کمک میکنه

https://pypi.org/project/django-autotranslate/


  • 1404/03/01
  • ساعت 15:51

خیلی ممنون از راهنمایی استاد ولی استاد استفاده از این پکیج نیاز به API گوگل ترنسلیت داره که گوگل ایرانو تحریم کرده به مشکلاتی برخورد میکنیم من با اجازه شما اسکریپتی قرار میدم برا ترجمه که فقط کافیه اونو در ریشه اصلی پروژه قرار بدیم و بعد اجراش کنیم یه چند تا سوال میپرسه و ترجمه انجام میشه 

 

import os
import polib
import shutil
from datetime import datetime
from googletrans import Translator

BASE_LOCALE_PATH = 'locale'
AVAILABLE_LANGUAGES = {
    'en': 'English',
    'ar': 'Arabic'
}

print("Select the target language:")
for code, name in AVAILABLE_LANGUAGES.items():
    print(f"- {code}: {name}")
target_lang = input("Enter the language code: ").strip().lower()

if target_lang not in AVAILABLE_LANGUAGES:
    print("❌ Invalid language code. Exiting.")
    exit(1)

po_file_path = os.path.join(BASE_LOCALE_PATH, target_lang, 'LC_MESSAGES', 'django.po')

if not os.path.exists(po_file_path):
    print(f"❌ PO file not found at: {po_file_path}")
    exit(1)

backup_dir = 'locale_backups'
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
os.makedirs(backup_dir, exist_ok=True)
backup_path = os.path.join(backup_dir, f'django_{target_lang}_{timestamp}.po')
shutil.copyfile(po_file_path, backup_path)

print("Enter file types to include in translation (e.g., html, py, txt)")
selected_types_input = input("Separate by comma (leave empty for all): ").strip()
selected_types = [s.strip() for s in selected_types_input.split(',') if s.strip()]
translate_all_types = not selected_types

po = polib.pofile(po_file_path)
translator = Translator()

translated_count = 0
skipped_count = 0
error_count = 0

def is_entry_from_selected_file_type(entry):
    if translate_all_types:
        return True
    for comment in entry.occurrences:
        for file_type in selected_types:
            if comment[0].endswith(f".{file_type}"):
                return True
    return False

for entry in po:
    if entry.msgstr.strip() == "" and is_entry_from_selected_file_type(entry):
        try:
            translated = translator.translate(entry.msgid, src='fa', dest=target_lang).text
            entry.msgstr = translated
            translated_count += 1
        except Exception as e:
            error_count += 1
            entry.comment = f"Translation error: {e}"
    else:
        skipped_count += 1

po.save()

print("\nTranslation finished:")
print(f"- Language: {AVAILABLE_LANGUAGES[target_lang]} ({target_lang})")
print(f"- Translated entries: {translated_count}")
print(f"- Skipped entries: {skipped_count}")
print(f"- Errors: {error_count}")
print(f"- Backup created at: {backup_path}")

compile_decision = input("\nRun `compilemessages`? (y/n): ").strip().lower()
if compile_decision == 'y':
    os.system('python manage.py compilemessages')
    print("`compilemessages` executed.")
else:
    print("`compilemessages` was not executed.")

  • 1404/03/01
  • ساعت 15:59

سلام مجدد خدمت شما

با استفاده از proxy میشه از این قابلیت استفاده کرد دوست من

معمولا روی سرورها از تنظیمات proxy آی پی برای استفاده از این امکانات استفاده میشه. دقیقا مثل کاری که برای پیاده سازی ربات تلگرام انجام میدیم

در کل خوشحالم تونستین روشی رو که عمومی تر هستش پیاده سازی کنین

موفق باشین :)


  • 1404/03/02
  • ساعت 09:36

خیلی ممنون از توضیحات شما استاد 
استاد این خیلی برام بهم بود که از خدمات گوگل استفاده کنیم مثلا خود سایت تاپ لرن از reCAPCHA استفاده میکنه درحالی که در تحریم هستیم ولی چجوری بدون استفاده از پروکسی برای ما قابل نمایشه 
 


  • 1404/03/02
  • ساعت 11:56

ببینین تمامی امکانات گوگل که تحریم نیستن. صرفا یک سری امکانات خاص هستن که نمیتونیم ازشون استفاده کنیم

بحث captcha هم جزو مواردی هستش که نیاز به proxy یا vpn نداره و میتونین به راحتی استفاده کنین


logo-enamadlogo-samandehi