ब्लॉगवर परत जा

एकट्या विकसकांसाठी Django भाषांतर: आठवड्यांपासून मिनिटांपर्यंत

2026-02-11 7 मिनिट वाचन
एकट्या विकसकांसाठी Django भाषांतर: आठवड्यांपासून मिनिटांपर्यंत

तुम्ही एक Django अॅप तयार केले. ते काम करतंय, वापरकर्ते साइन अप करत आहेत, आणि आता तुम्हाला इंग्रजी न बोलणाऱ्या लोकांपर्यंत पोहोचायचं आहे. समस्या पाहताक्षणी स्पष्ट होते: Django चे आंतरराष्ट्रीयीकरण फ्रेमवर्क भाषांतरयोग्य स्ट्रिंग्स काढण्यात उत्कृष्ट आहे, पण भाषांतरे भरण्यासाठी ते काहीच करत नाही. तो भाग तुम्हाला स्वतः करायचा आहे.

जर तुम्ही एकटे डेव्हलपर आहात किंवा दोन जणांची टीम आहात, तर makemessages आणि पूर्णपणे भाषांतरित अॅप यांतील अंतर प्रचंड वाटू शकते. मी वास्तववादी पर्यायांवर चर्चा करेन, त्यातील बहुतेक लहान टीमसाठी का काम करत नाहीत हे समजावून सांगेन, आणि भाषांतर अनेक आठवड्यांच्या कामातून दोन मिनिटांच्या कमांडमध्ये बदलणारा वर्कफ्लो दाखवेन.

पारंपारिक पर्याय (आणि ते का त्रासदायक आहेत)

पर्याय 1: Google Translate मधून कॉपी-पेस्ट

सर्वात सामान्य पहिला प्रयत्न. तुम्ही तुमची .po फाइल उघडता, प्रत्येक msgid Google Translate मध्ये कॉपी करता, निकाल msgstr म्हणून परत पेस्ट करता, आणि पुन्हा करता. प्रत्येक स्ट्रिंगसाठी. प्रत्येक भाषेत.

एका सामान्य Django अॅपमध्ये 200-500 भाषांतरयोग्य स्ट्रिंग्स असतात. तुम्ही पाच भाषांमध्ये भाषांतर करत असाल, तर ते 1,000-2,500 कॉपी-पेस्ट चक्रे आहेत. प्रत्येकाला फक्त 30 सेकंद लागले तरी, तुम्ही 8-20 तासांच्या कंटाळवाण्या कामाबद्दल बोलत आहात. आणि हे फॉरमॅटिंग त्रुटी, तुटलेले प्लेसहोल्डर्स, आणि अपरिहार्यपणे येणारी असंगत शब्दावली दुरुस्त करण्यापूर्वीचे आहे.

आणखी वाईट म्हणजे, पुढच्या स्प्रिंटमध्ये नवीन स्ट्रिंग्स जोडल्यावर हे सगळं पुन्हा करायला लागतं.

पर्याय 2: व्यावसायिक भाषांतरकार

व्यावसायिक भाषांतराची किंमत साधारणपणे $0.10 ते $0.25 प्रति शब्द असते. 500 स्ट्रिंग्स असलेले Django अॅप ज्यात सरासरी 8 शब्द प्रत्येकी आहेत, म्हणजे सुमारे 4,000 शब्द. $0.15/शब्दाने, प्रति भाषा $600, किंवा पाच भाषांसाठी $3,000.

VC-फंडेड स्टार्टअपसाठी ही रक्कम नगण्य आहे. पण प्रति वापरकर्ता $9/महिना आकारणाऱ्या एकट्या डेव्हलपरसाठी, ती तुमची संपूर्ण तिमाही उत्पन्न खाऊ शकते.

पर्याय 3: Fiverr आणि फ्रीलान्स मार्केटप्लेस

Fiverr वर $20-50 प्रति भाषेत भाषांतरकार शोधता येतात. काही खरोखरच कुशल असतात. बरेच जण फक्त तुमचा मजकूर Google Translate मध्ये पेस्ट करून तुम्हाला शुल्क आकारतात. तुम्हाला पर्याय 1 सारखीच गुणवत्ता मिळते, शिवाय संवादाचा अतिरिक्त फेरा आणि एक आठवडा प्रतीक्षा.

पर्याय 4: Crowdin, Transifex, किंवा Weblate

ही प्लॅटफॉर्म्स शक्तिशाली आहेत, पण ती समर्पित भाषांतर टीम असलेल्या प्रोजेक्ट्ससाठी तयार केली आहेत. सेटअप ओव्हरहेड (रिपॉझिटरी सिंक करणे, ट्रान्सलेशन मेमरी कॉन्फिगर करणे, कंट्रिब्युटर ऍक्सेस व्यवस्थापित करणे) प्रोजेक्टवर तुम्ही एकटेच असताना अतिरिक्त आहे. पेड टायर्ससाठी मासिक सदस्यता $30-150/महिन्यापासून सुरू होते, आणि फ्री टायर्समध्येही आणखी एक थर्ड-पार्टी इंटिग्रेशन ठेवावे लागते.

पर्याय 5: सगळं ChatGPT मध्ये पेस्ट करा

गुणवत्तेच्या बाबतीत हे आश्चर्यकारकपणे चांगलं काम करतं. तुम्ही .po फाइलचा मजकूर ChatGPT किंवा Claude मध्ये पेस्ट करता, भाषांतर मागता, आणि वाजवी निकाल मिळतात. समस्या ही आहे की हे स्केल होत नाही. तुम्हाला अभाषांतरित स्ट्रिंग्स मॅन्युअली काढाव्या लागतात, प्रॉम्प्ट फॉरमॅट करावा लागतो, रिस्पॉन्स .po फॉरमॅटमध्ये पार्स करावा लागतो, आणि कॉन्टेक्स्ट लिमिट ओलांडल्यावर बॅचिंग हाताळावी लागते. हे एकदा काम करतं. पुनरावृत्ती करण्यायोग्य वर्कफ्लो म्हणून ते बिघडतं.

ऑटोमेशन दृष्टिकोन

जर संपूर्ण भाषांतर चरण एकच कमांड असला तर? TranslateBot मागची हीच कल्पना आहे — एक ओपन-सोर्स Django मॅनेजमेंट कमांड जे तुमच्या .po फाइल्स वाचतं, अभाषांतरित स्ट्रिंग्स AI प्रोव्हायडरला पाठवतं, आणि योग्य फॉरमॅटमध्ये भाषांतरे लिहून देतं.

सेट अप कसं करायचं ते पाहा.

चरण 1: TranslateBot इन्स्टॉल करा

uv add --dev translatebot-django

किंवा pip सह:

pip install translatebot-django

तुमच्या installed apps मध्ये जोडा:

# settings.py
INSTALLED_APPS = [
    # ...
    'translatebot_django',
]

चरण 2: तुमचा AI प्रोव्हायडर कॉन्फिगर करा

दोन सेटिंग्ज जोडा:

# settings.py
import os

TRANSLATEBOT_API_KEY = os.getenv("OPENAI_API_KEY")
TRANSLATEBOT_MODEL = "gpt-4o-mini"

TranslateBot OpenAI, Anthropic Claude, Google Gemini, आणि LiteLLM द्वारे 100+ इतर मॉडेल्स सह काम करतं. समर्पित भाषांतर बॅकएंड म्हणून DeepL ला देखील सपोर्ट करतं.

चरण 3: TRANSLATING.md तयार करा (ऐच्छिक पण शिफारस केलेले)

तुमच्या प्रोजेक्ट रूटमधील TRANSLATING.md फाइल AI ला तुमच्या अॅप्लिकेशनबद्दल संदर्भ देते. सामान्य मशीन भाषांतर आणि तुमच्या उत्पादनाशी खरोखर जुळणारे भाषांतर यातील हाच फरक आहे:

# Translation Context

## About This Project
A personal finance tracker for freelancers. Users track invoices,
expenses, and tax obligations.

## Tone
- Friendly and informal
- Use "du" in German, "tu" in French
- Keep financial terms precise

## Terminology
- "invoice" = "Rechnung" (German), "facture" (French)
- "dashboard" = keep as English loanword in all languages
- "freelancer" = keep as English loanword in German

ही फाइल प्रत्येक भाषांतर विनंतीसह पाठवली जाते, त्यामुळे AI सातत्याने योग्य टोन आणि शब्दावली वापरतं.

चरण 4: भाषांतर करा

python manage.py makemessages -l de -l fr -l nl -l es -l ja
python manage.py translate
python manage.py compilemessages

तीन कमांड. एवढंच. TranslateBot तुमच्या सर्व .po फाइल्समधील सर्व अभाषांतरित स्ट्रिंग्स शोधतं, बॅचमध्ये भाषांतर करतं, आणि निकाल लिहून देतं. डीफॉल्टनुसार फक्त रिकाम्या एंट्रीजचं भाषांतर होतं, त्यामुळे नवीन स्ट्रिंग्स जोडल्यानंतर कमांड पुन्हा चालवल्यास फक्त नवीनच भाषांतरित होतात.

प्रत्यक्षात हे कसे दिसते

पाच भाषांना सपोर्ट करणाऱ्या एकट्या डेव्हलपरसाठी वास्तववादी स्प्रिंट वर्कफ्लो:

सोमवार: तुम्ही नवीन फीचर बनवता. डेव्हलपमेंट दरम्यान gettext() आणि {% trans %} वापरून काही नवीन भाषांतरयोग्य स्ट्रिंग्स जोडता.

from django.utils.translation import gettext_lazy as _

class InvoiceView(View):
    def post(self, request):
        # New string added during development
        messages.success(request, _("Invoice sent successfully."))

कमिट करण्यापूर्वी: तीन कमांड चालवा:

python manage.py makemessages -a --no-obsolete
python manage.py translate
python manage.py compilemessages

translate कमांड नवीन अभाषांतरित एंट्रीज शोधतं आणि फक्त त्यांचं भाषांतर करतं. तुम्ही 5 नवीन स्ट्रिंग्स जोडल्या आणि 5 भाषा सपोर्ट करता, तर एका API कॉलमध्ये 25 भाषांतरे होतात. संपूर्ण प्रक्रिया एक मिनिटापेक्षा कमी वेळात होते.

तुम्ही कमिट करता तुमचा कोड, टेम्प्लेट्स, आणि अपडेटेड .po/.mo फाइल्स एकत्र. भाषांतर हे तुमच्या सामान्य डेव्हलपमेंट फ्लोचा भाग आहे, वेगळा प्रोजेक्ट नाही.

कमिट करण्यापूर्वी प्रिव्ह्यू

भाषांतरे डिस्कवर लिहिण्यापूर्वी पाहायची असतील, तर dry-run मोड वापरा:

python manage.py translate --dry-run

कोणतीही फाइल बदलल्याशिवाय प्रत्येक भाषांतर टर्मिनलवर प्रिंट होतं.

खर्चाची तुलना

इथे ऑटोमेशनविरुद्ध वाद करणं कठीण होतं.

दृष्टिकोन 500 स्ट्रिंग्स, 5 भाषा वेळ आवर्ती खर्च
मॅन्युअल कॉपी-पेस्ट मोफत ~40 तास ~8 तास/स्प्रिंट
व्यावसायिक भाषांतरकार ~$3,000 1-2 आठवडे ~$600/स्प्रिंट
Fiverr भाषांतरकार ~$100-250 3-7 दिवस ~$50/स्प्रिंट
Crowdin/Transifex $30-150/महिना सेटअप: तास सुरू
TranslateBot + GPT-4o-mini ~$0.05 ~2 मिनिटे ~$0.01/स्प्रिंट
TranslateBot + DeepL Free $0 ~2 मिनिटे $0

सुमारे 500 भाषांतरयोग्य स्ट्रिंग्स असलेल्या लहान ते मध्यम Django अॅपचा खर्च gpt-4o-mini सह साधारणपणे प्रति भाषा $0.01 पेक्षा कमी असतो. बहुतेक सोलो प्रोजेक्ट्ससाठी, DeepL चा फ्री टायर (500,000 अक्षरे/महिना) शून्य खर्चात सगळं कव्हर करतो.

स्पष्टपणे सांगायचं तर: AI भाषांतरे परिपूर्ण नाहीत. स्वस्त मानवी भाषांतरेही परिपूर्ण नाहीत. फरक हा आहे की AI भाषांतरांचा खर्च जवळजवळ शून्य आहे, तत्काळ मिळतात, आणि हवं तेव्हा पुन्हा चालवता येतात.

CI इंटिग्रेशन: अभाषांतरित स्ट्रिंग्स कधीही शिप करू नका

एकट्या डेव्हलपर म्हणून मला सापडलेला सर्वात उपयुक्त पॅटर्न म्हणजे CI मध्ये भाषांतर तपासणी जोडणे. TranslateBot मध्ये check_translations कमांड समाविष्ट आहे जे कोणत्याही .po फाइलमध्ये अभाषांतरित किंवा fuzzy एंट्रीज असल्यास अयशस्वी होतं:

# .github/workflows/ci.yml
jobs:
  translations:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: astral-sh/setup-uv@v4
        with:
          enable-cache: true
      - run: uv python install
      - run: uv sync --frozen
      - name: Install gettext
        run: sudo apt-get update && sudo apt-get install -y --no-install-recommends gettext
      - name: Check translations
        run: uv run python manage.py check_translations --makemessages

तुम्ही टेम्प्लेटमध्ये नवीन {% trans %} टॅग जोडला आणि translate चालवायला विसरलात, तर CI ते पकडेल:

locale/de/LC_MESSAGES/django.po: 1 untranslated, 0 fuzzy
locale/fr/LC_MESSAGES/django.po: 1 untranslated, 0 fuzzy
CommandError: Translation check failed

हे भाषांतराला लक्षात ठेवायच्या गोष्टीतून विसरता न येणाऱ्या गोष्टीत बदलतं.

व्यावहारिक टिप्स

दोन किंवा तीन भाषांपासून सुरू करा. पहिल्या दिवशी 15 भाषांमध्ये लॉन्च करण्याची गरज नाही. ज्या भाषांमध्ये तुमचे सर्वाधिक वापरकर्ते आहेत किंवा सर्वात मोठी बाजारपेठ आहे त्या निवडा. जर्मन, फ्रेंच आणि स्पॅनिश युरोपीय बाजारपेठांसाठी बराच भाग कव्हर करतात.

मूळ भाषिकांकडून महत्त्वाच्या स्ट्रिंग्सचं पुनरावलोकन करून घ्या. बहुतेक UI मजकुरासाठी AI भाषांतरे पुरेशी चांगली आहेत, पण तुमच्या लँडिंग पेजची हेडलाइन आणि ऑनबोर्डिंग फ्लो मानवी नजर लायक आहेत. मित्र, वापरकर्ता, किंवा कम्युनिटी फोरममधील कोणालातरी सर्वात दृश्यमान स्ट्रिंग्सचं 10 मिनिटे पुनरावलोकन करायला सांगा.

ओव्हरराइट करण्यापूर्वी dry-run वापरा. सगळं पुन्हा भाषांतर करायचं असल्यास (उदाहरणार्थ, TRANSLATING.md मध्ये चांगल्या शब्दावली मार्गदर्शक तत्त्वे अपडेट केल्यानंतर), आधी बदल प्रिव्ह्यू करा:

python manage.py translate --overwrite --dry-run

TRANSLATING.md व्हर्जन कंट्रोलमध्ये ठेवा. हे तुमच्या प्रोजेक्टच्या भाषांतर कॉन्फिगरेशनचा भाग आहे. शब्दावली किंवा टोन मार्गदर्शक तत्त्वे अपडेट केल्यावर, पुढचा translate रन कोणत्याही नवीन स्ट्रिंग्ससाठी ते बदल प्रतिबिंबित करेल.

गरज असेल तेव्हा अॅपनुसार भाषांतर करा. फक्त एका अॅपमधील स्ट्रिंग्स बदलल्या असतील, तर भाषांतराची व्याप्ती मर्यादित करता येते:

python manage.py translate --app billing

आठवड्यांपासून मिनिटांपर्यंत

Django चं आंतरराष्ट्रीयीकरण फ्रेमवर्क कोणत्याही वेब फ्रेमवर्कमधील सर्वोत्तमांपैकी एक आहे. makemessages, locale डिरेक्टरीज, आणि compilemessages चे टूलिंग परिपक्व आणि विश्वसनीय आहे. फक्त एक भाग गहाळ होता — भाषांतर चरण स्वतः. तो महाग आणि मंद भाग होता.

TranslateBot सह, वर्कफ्लो असं होतं:

  1. नेहमीप्रमाणे gettext() आणि {% trans %} सह कोड लिहा
  2. स्ट्रिंग्स काढण्यासाठी makemessages चालवा
  3. भाषांतरे भरण्यासाठी translate चालवा
  4. कंपाइल करण्यासाठी compilemessages चालवा
  5. सगळं एकत्र कमिट करा

एकट्या डेव्हलपरसाठी, याचा अर्थ लोकलायझेशन आता "कधीतरी" साठी नियोजित प्रोजेक्ट नाही. हे आज करता येण्यासारखं आहे, एक कप कॉफी बनवण्याइतक्या वेळात.

TranslateBot ओपन सोर्स आहे आणि PyPI आणि GitHub वर उपलब्ध आहे. इन्स्टॉल करा, कमांड चालवा, आणि मिनिटांत तुमचं अॅप नवीन भाषेत पहा.

.po फाइल्स मॅन्युअली संपादित करणे थांबवा

TranslateBot AI च्या सहाय्याने Django भाषांतर स्वयंचलित करते. एक कमांड, सर्व भाषा, प्रति भाषांतर नाममात्र खर्च.