வலைப்பதிவுக்கு திரும்பு

AI மூலம் Django தரவுத்தள உள்ளடக்கத்தை மொழிபெயர்ப்பது எப்படி

2026-02-18 7 நிமிட வாசிப்பு
AI மூலம் Django தரவுத்தள உள்ளடக்கத்தை மொழிபெயர்ப்பது எப்படி

Django இன் உள்ளமைக்கப்பட்ட சர்வதேசமயமாக்கல் (i18n) கட்டமைப்பில் நீங்கள் வேலை செய்திருந்தால், அது நிலையான சரங்களை நன்றாகக் கையாளும் என்பது உங்களுக்குத் தெரியும். உரையை gettext() இல் போர்த்துவது அல்லது {% trans %} டெம்ப்ளேட் குறிச்சொல்லைப் பயன்படுத்துவது சரங்களை .po கோப்புகளில் பிரித்தெடுக்கிறது, அவற்றை மொழிபெயர்ப்பாளர்கள் நிரப்புகிறார்கள். இந்த அமைப்பு போர்-சோதிக்கப்பட்டது மற்றும் குறியீடு மற்றும் டெம்ப்ளேட்களுக்கு சிறப்பாக வேலை செய்கிறது.

ஆனால் உங்கள் தரவுத்தளத்தில் சேமிக்கப்பட்ட உள்ளடக்கம் பற்றி என்ன?

தயாரிப்பு பெயர்கள், கட்டுரை தலைப்புகள், வகை விவரணைகள், FAQ பதில்கள், பயனர்-உருவாக்கிய உள்ளடக்கம். இவை எதுவும் உங்கள் மூலக் குறியீட்டில் இல்லை. Django இன் makemessages கட்டளை இவற்றை ஒருபோதும் கண்டுபிடிக்காது, .po கோப்புகள் இங்கு உங்களுக்கு உதவ முடியாது. உங்கள் பயன்பாடு பல மொழிகளில் பயனர்களுக்கு மாறும் உள்ளடக்கத்தை வழங்கினால், வேறு உத்தி தேவை.

இதை எப்படி செய்வது: உங்கள் மாதிரிகளுக்கு மொழிபெயர்க்கக்கூடிய புலங்களைச் சேர்க்க django-modeltranslation பயன்படுத்துங்கள், பின்னர் TranslateBot பயன்படுத்தி AI மூலம் மொழிபெயர்ப்பை தானியக்கமாக்குங்கள்.

Django தரவுத்தள மொழிபெயர்ப்பு தொகுப்புகள்

பல மூன்றாம் தரப்பு தொகுப்புகள் தரவுத்தள மொழிபெயர்ப்பு சிக்கலைத் தீர்க்கின்றன, ஒவ்வொன்றும் வெவ்வேறு கட்டமைப்புடன்.

django-modeltranslation

உங்கள் ஏற்கனவே உள்ள அட்டவணைகளில் நேரடியாக மொழி-குறிப்பிட்ட நெடுவரிசைகளைச் சேர்க்கிறது. title புலம் title_en, title_de, title_fr என மாறுகிறது. எல்லாம் ஒரே அட்டவணையில் இருப்பதால் வினவல்கள் வேகமாக இருக்கும். நிர்வாகி இடைமுகம் எல்லா மொழிகளையும் பக்கவாட்டில் காட்டுகிறது.

django-parler

ஒவ்வொரு மாதிரிக்கும் தனி மொழிபெயர்ப்பு அட்டவணையை உருவாக்குகிறது. அசல் அட்டவணை சுத்தமாக இருக்கும், மொழிபெயர்ப்புகள் வெளிநாட்டு விசை வழியாக இணைக்கப்பட்ட தொடர்புடைய அட்டவணையில் சேமிக்கப்படுகின்றன.

django-translations

எந்த மாதிரியையும் சுட்டிக்காட்டும் பொது வெளிநாட்டு விசையுடன் ஒற்றை மொழிபெயர்ப்பு அட்டவணையைப் பயன்படுத்துகிறது. எல்லா மாதிரிகளின் எல்லா மொழிபெயர்ப்புகளும் ஒரு அட்டவணையில் செல்கின்றன.

கைமுறை JSON புலம்

JSONField இல் மொழிபெயர்ப்புகளைச் சேமிக்கலாம்:

class Product(models.Model):
    name_translations = models.JSONField(default=dict)
    # {"en": "Running Shoes", "de": "Laufschuhe", "fr": "Chaussures de course"}

எதைப் பயன்படுத்த வேண்டும்?

பெரும்பாலான திட்டங்களுக்கு, django-modeltranslation சிறந்த தேர்வு. இது மிகவும் முதிர்ந்த தொகுப்பு, சிறந்த Django நிர்வாகி ஒருங்கிணைப்பைக் கொண்டுள்ளது, வேகமான வினவல்களுக்காக எல்லா தரவையும் ஒரே அட்டவணையில் வைத்திருக்கிறது. சமரசம் (அகலமான அட்டவணைகள் மற்றும் ஒவ்வொரு புதிய மொழிக்கும் ஒரு இடம்பெயர்வு) பெரும்பாலான பயன்பாடுகளுக்கு நிர்வகிக்கக்கூடியது. இந்த வழிகாட்டியின் மீதமுள்ள பகுதி django-modeltranslation பயன்படுத்துகிறது.

django-modeltranslation படிப்படியாக அமைத்தல்

படி 1: தொகுப்பை நிறுவுங்கள்

TranslateBot django-modeltranslation ஐ விருப்ப சார்பாக தொகுக்கிறது. இரண்டையும் ஒரே நேரத்தில் நிறுவுங்கள்:

pip install translatebot-django[modeltranslation]

அல்லது uv பயன்படுத்தினால்:

uv add --dev translatebot-django[modeltranslation]

படி 2: Django அமைப்புகளை உள்ளமைக்கவும்

settings.py இல் இரண்டு விஷயங்கள் முக்கியம்: பயன்பாட்டு வரிசை மற்றும் மொழி பட்டியல்.

# settings.py

INSTALLED_APPS = [
    'modeltranslation',          # Must be BEFORE django.contrib.admin
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Your apps
    'shop',
    'translatebot_django',
]

LANGUAGE_CODE = 'en'

LANGUAGES = [
    ('en', 'English'),
    ('de', 'German'),
    ('fr', 'French'),
    ('nl', 'Dutch'),
]

modeltranslation பயன்பாடு django.contrib.admin க்கு முன் இருக்க வேண்டும், அதனால் மொழிபெயர்ப்பு புலங்களைக் காட்ட நிர்வாகி வகுப்புகளை இணைக்க முடியும்.

படி 3: மொழிபெயர்ப்புக்கு மாதிரிகளைப் பதிவு செய்யுங்கள்

மொழிபெயர்க்கக்கூடிய மாதிரிகளைக் கொண்ட ஒவ்வொரு பயன்பாட்டிலும் translation.py கோப்பை உருவாக்குங்கள். ஒரு மின்-வணிக கடை பயன்பாட்டிற்கு:

# shop/translation.py

from modeltranslation.translator import register, TranslationOptions
from .models import Product, Category


@register(Product)
class ProductTranslationOptions(TranslationOptions):
    fields = ('name', 'description', 'short_description')


@register(Category)
class CategoryTranslationOptions(TranslationOptions):
    fields = ('name', 'description')

மனிதர்கள் படிக்கக்கூடிய உரையைக் கொண்ட புலங்களை மட்டும் சேர்க்கவும். slug, price, அல்லது sku போன்ற புலங்களைப் பதிவு செய்யாதீர்கள்.

படி 4: இடம்பெயர்வுகளை உருவாக்கி இயக்குங்கள்

python manage.py makemigrations
python manage.py migrate

இதற்குப் பிறகு, உங்கள் shop_product அட்டவணையில் புதிய நெடுவரிசைகள் இருக்கும்:

நெடுவரிசை வகை
name varchar(200)
name_en varchar(200)
name_de varchar(200)
name_fr varchar(200)
name_nl varchar(200)
description text
description_en text
description_de text
description_fr text
description_nl text
short_description text
short_description_en text
short_description_de text
short_description_fr text
short_description_nl text

LANGUAGES இல் நீங்கள் வரையறுத்த ஒவ்வொரு மொழியும் பதிவுசெய்யப்பட்ட ஒவ்வொரு புலத்திற்கும் அதன் சொந்த நெடுவரிசையைப் பெறுகிறது.

சிக்கல்: காலியான மொழிபெயர்ப்பு புலங்கள்

இப்போது உங்களிடம் திட்டம் உள்ளது, ஆனால் ஒவ்வொரு _de, _fr, _nl நெடுவரிசையும் காலியாக உள்ளது. 3 மொழிபெயர்க்கக்கூடிய புலங்கள் மற்றும் 3 இலக்கு மொழிகளுடன் 500 தயாரிப்புகள் இருந்தால், நிரப்பப்பட வேண்டிய 4,500 காலியான புலங்கள் உள்ளன.

அந்த உள்ளடக்கத்தை கைமுறையாக மொழிபெயர்ப்பது நடைமுறையில் சாத்தியமில்லை. தொழில்முறை மொழிபெயர்ப்பு சேவையுடன் கூட, தரவை ஏற்றுமதி செய்ய வேண்டும், அனுப்ப வேண்டும், விநியோகத்திற்காக காத்திருக்க வேண்டும், முடிவுகளை மீண்டும் இறக்குமதி செய்ய வேண்டும். சிறிய குழு அல்லது தனி டெவலப்பருக்கு, இது வழக்கமாக அம்சம் ஒருபோதும் வெளியிடப்படாது என்று பொருள்.

இங்கே TranslateBot பயன்படுகிறது.

TranslateBot மூலம் மொழிபெயர்ப்புகளை தானியக்கமாக்குதல்

TranslateBot இன் translate மேலாண்மை கட்டளை AI பயன்படுத்தி அந்த காலியான புலங்களை நிரப்ப முடியும். முதலில் உங்கள் API விசையை உள்ளமைக்கவும்:

# settings.py

TRANSLATEBOT_API_KEY = os.getenv("OPENAI_API_KEY")
TRANSLATEBOT_MODEL = "gpt-4o-mini"  # Fast and cost-effective

பின்னர் பதிவுசெய்யப்பட்ட எல்லா மாதிரிகளையும் இலக்கு மொழிக்கு மொழிபெயர்க்கவும்:

python manage.py translate --target-lang de --models

அந்த ஒற்றை கட்டளை django-modeltranslation உடன் பதிவுசெய்யப்பட்ட ஒவ்வொரு மாதிரியையும் கண்டுபிடிக்கிறது, இலக்கு மொழிக்கு காலியான புலங்களை அடையாளம் காணுகிறது, AI-உருவாக்கிய மொழிபெயர்ப்புகளால் நிரப்புகிறது.

குறிப்பிட்ட மாதிரிகளை மொழிபெயர்க்கவும்

தயாரிப்புகளை மட்டும் மொழிபெயர்க்க விரும்பினால், வகைகளை அல்ல:

python manage.py translate --target-lang de --models Product

அல்லது பல குறிப்பிட்ட மாதிரிகள்:

python manage.py translate --target-lang de --models Product Category

Dry Run மூலம் முன்னோட்டம்

தரவுத்தளத்தில் எழுதுவதற்கு முன் எப்போதும் முன்னோட்டம் பாருங்கள்:

python manage.py translate --target-lang de --models --dry-run

எந்த பதிவுகளையும் மாற்றாமல் என்ன மொழிபெயர்க்கப்படும் என்பதை இது சரியாகக் காட்டுகிறது.

ஏற்கனவே உள்ள உள்ளடக்கத்தை மீண்டும் மொழிபெயர்க்கவும்

இயல்பாக, TranslateBot ஏற்கனவே மொழிபெயர்ப்பு உள்ள புலங்களைத் தவிர்க்கிறது. ஏற்கனவே உள்ள மொழிபெயர்ப்புகளை மேலெழுத (உதாரணமாக, AI மாதிரியை மேம்படுத்திய பிறகு அல்லது சூழலைச் சேர்த்த பிறகு):

python manage.py translate --target-lang de --models --overwrite

எல்லா மொழிகளையும் ஒரே நேரத்தில் மொழிபெயர்க்கவும்

--target-lang விடுபட்டு உங்கள் அமைப்புகளில் LANGUAGES வரையறுக்கப்பட்டிருந்தால், TranslateBot உள்ளமைக்கப்பட்ட எல்லா மொழிகளுக்கும் மொழிபெயர்க்கிறது:

python manage.py translate --models

மொழிபெயர்ப்பு குழாய்வழி எப்படி வேலை செய்கிறது

மொழிபெயர்ப்பு கட்டளையை இயக்கும்போது என்ன நடக்கிறது என்பது இங்கே.

  1. கண்டுபிடிப்பு. TranslateBot எல்லா பதிவுசெய்யப்பட்ட மாதிரிகளையும் அவற்றின் மொழிபெயர்க்கக்கூடிய புலங்களையும் கண்டுபிடிக்க django-modeltranslation பதிவேட்டை வினவுகிறது.

  2. மூல கண்டறிதல். ஒவ்வொரு பதிவுக்கும், மூல உள்ளடக்கத்தைப் படிக்கிறது. முதலில் அடிப்படை புலத்தைச் சரிபார்க்கிறது (எ.கா., name), பின்னர் நிரப்பப்பட்ட முதல் மொழி-குறிப்பிட்ட புலத்திற்கு திரும்புகிறது (எ.கா., name_en). மூல உள்ளடக்கம் இல்லாத பதிவுகள் தவிர்க்கப்படுகின்றன.

  3. தொகுப்பாக்கம். பதிவுகள் தொகுதிகளாக குழுவாக்கப்பட்டு AI வழங்குநருக்கு அனுப்பப்படுகின்றன. இது API அழைப்புகளை திறமையாக வைத்திருக்கிறது மற்றும் வீத வரம்புகளை அடைவதைத் தவிர்க்கிறது.

  4. மொழிபெயர்ப்பு. ஒவ்வொரு தொகுதியும் உள்ளமைக்கப்பட்ட AI மாதிரியைப் பயன்படுத்தி மொழிபெயர்க்கப்படுகிறது. LiteLLM ஆதரிக்கும் எந்த LLM வழங்குநரையும் (OpenAI, Anthropic, Google, Azure, மற்றும் பல) அல்லது DeepL பயன்படுத்தலாம்.

  5. அணு எழுத்துகள். ஒரு மொழிபெயர்ப்பு இயக்கத்தின் எல்லா தரவுத்தள புதுப்பிப்புகளும் ஒற்றை பரிவர்த்தனையில் மூடப்படுகின்றன. API பிழை அல்லது தரவுத்தள கட்டுப்பாட்டு மீறல் போன்ற ஏதாவது தவறு நடந்தால், பகுதி தரவு எதுவும் சேமிக்கப்படாது. எல்லாம் அல்லது ஒன்றும் இல்லை.

முழுமையான பணிப்பாய்வு எடுத்துக்காட்டு

மின்-வணிக Product மாதிரியைப் பயன்படுத்தி, மாதிரி வரையறையிலிருந்து மொழிபெயர்க்கப்பட்ட உள்ளடக்கம் வரை முழு எடுத்துக்காட்டு இங்கே.

மாதிரியை வரையறுக்கவும்

# shop/models.py

from django.db import models


class Product(models.Model):
    name = models.CharField(max_length=200)
    description = models.TextField()
    short_description = models.CharField(max_length=500, blank=True)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    sku = models.CharField(max_length=50, unique=True)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name

மொழிபெயர்ப்புக்குப் பதிவு செய்யுங்கள்

# shop/translation.py

from modeltranslation.translator import register, TranslationOptions
from .models import Product


@register(Product)
class ProductTranslationOptions(TranslationOptions):
    fields = ('name', 'description', 'short_description')

இடம்பெயர்வுகளை இயக்குங்கள்

python manage.py makemigrations shop
python manage.py migrate

மொழிபெயர்ப்பு சூழலைச் சேர்க்கவும் (விருப்பம்)

உங்கள் தயாரிப்பு களம் பற்றி AI க்கு சூழலை வழங்க உங்கள் திட்ட ரூட்டில் TRANSLATING.md கோப்பை உருவாக்குங்கள்:

# Translation Context

## About This Project
E-commerce store for outdoor sports equipment.

## Terminology
- "trail runners" refers to trail running shoes, not people
- Keep brand names (Nike, Salomon, Arc'teryx) untranslated
- "Gore-Tex" is a brand name, do not translate

## Tone
- Use informal "du" form in German
- Product descriptions should sound enthusiastic but not exaggerated

மொழிபெயர்க்கவும்

# Preview first
python manage.py translate --target-lang de --models Product --dry-run

# Apply translations
python manage.py translate --target-lang de --models Product

வெளியீடு:

Translating Product model fields to German (de)...
Found 142 products with untranslated fields
Translating batch 1/15...
Translating batch 2/15...
...
Translating batch 15/15...
Successfully translated 142 products

நிர்வாகியில் சரிபார்க்கவும்

Django நிர்வாகியைத் திறந்து எந்த தயாரிப்புக்கும் செல்லுங்கள். மொழிபெயர்ப்பு புலங்கள் நிரப்பப்பட்டிருப்பதைக் காண்பீர்கள்:

ஒவ்வொரு இலக்கு மொழிக்கும் மீண்டும் செய்யுங்கள்:

python manage.py translate --target-lang fr --models Product
python manage.py translate --target-lang nl --models Product

அல்லது எல்லா மொழிகளையும் ஒரே நேரத்தில் மொழிபெயர்க்கவும்:

python manage.py translate --models Product

சிறந்த நடைமுறைகள்

உற்பத்தியில் மொத்த மொழிபெயர்ப்புகளை இயக்குவதற்கு முன் உங்கள் தரவுத்தளத்தை காப்புப்பிரதி எடுக்கவும். TranslateBot அணு பரிவர்த்தனைகளைப் பயன்படுத்துகிறது, எனவே தோல்வியுற்ற இயக்கம் பகுதி தரவை விட்டுவிடாது. ஆனால் காப்புப்பிரதி வைத்திருப்பது மொழிபெயர்ப்பு தரம் எதிர்பார்த்தபடி இல்லாவிட்டால் திரும்பிச் செல்ல வழி தருகிறது.

# PostgreSQL example
pg_dump mydb > backup_before_translation.sql

முதலில் dry run பயன்படுத்துங்கள். புதிய மாதிரி அல்லது மொழிக்கு மொழிபெயர்ப்புகளைப் பயன்படுத்துவதற்கு முன் எப்போதும் --dry-run உடன் இயக்குங்கள். மூல உள்ளடக்கம் சரியாகக் கண்டறியப்பட்டுள்ளதா என்பதையும் மொழிபெயர்ப்புகள் நியாயமானதாகத் தெரிகிறதா என்பதையும் உறுதிப்படுத்த வெளியீட்டை மதிப்பாய்வு செய்யுங்கள்.

பெரிய தரவுத்தளங்களுக்கு ஒரு நேரத்தில் ஒரு மாதிரியை மொழிபெயர்க்கவும். முடிவுகளை மதிப்பாய்வு செய்வதை எளிதாக்குகிறது மற்றும் தேவைப்பட்டால் குறிப்பிட்ட மாதிரிகளை மீண்டும் இயக்குகிறது.

python manage.py translate --target-lang de --models Product
python manage.py translate --target-lang de --models Category
python manage.py translate --target-lang de --models Article

மொழிபெயர்ப்பு சூழலைச் சேர்க்கவும். களம்-குறிப்பிட்ட சொற்களஞ்சியம் மற்றும் தொனி வழிகாட்டுதல்களுடன் TRANSLATING.md கோப்பு மொழிபெயர்ப்பு தரத்தை கணிசமாக மேம்படுத்துகிறது. மருத்துவம், சட்டம் அல்லது தொழில்நுட்ப தயாரிப்புகள் போன்ற சிறப்புத் துறைகளுக்கு இது குறிப்பாக முக்கியமானது.

உங்கள் மூல மொழியை நிரப்பியே வைக்கவும். TranslateBot அடிப்படை புலத்திலிருந்து அல்லது மூல மொழி புலத்திலிருந்து படிக்கிறது. உங்கள் தரவு உள்ளீட்டு பணிப்பாய்வு எப்போதும் மூல மொழியை நிரப்புவதை உறுதிப்படுத்துங்கள். காலியான மூல புலங்கள் என்றால் காலியான மொழிபெயர்ப்புகள்.

முழு கவரேஜுக்கு PO கோப்பு மொழிபெயர்ப்புடன் இணைக்கவும். உங்கள் குறியீடு சரங்கள் மற்றும் தரவுத்தள உள்ளடக்கம் இரண்டையும் மொழிபெயர்க்கவும்:

# Static strings in code and templates
python manage.py makemessages -l de -l fr -l nl
python manage.py translate
python manage.py compilemessages

# Dynamic content in the database
python manage.py translate --models

இவ்வாறு உங்கள் பயனர்கள் பார்க்கும் ஒவ்வொரு சரமும், அது டெம்ப்ளேட்டிலிருந்து வந்தாலும் தரவுத்தளத்திலிருந்து வந்தாலும், மொழிபெயர்க்கப்படுகிறது.

அடுத்த படிகள்

.po கோப்புகளை கைமுறையாக திருத்துவதை நிறுத்துங்கள்

TranslateBot, AI மூலம் Django மொழிபெயர்ப்புகளை தானியங்கிசெய்கிறது. ஒரே கட்டளையில், அனைத்து மொழிகளும், மிகக் குறைந்த செலவில்.