Quay lại blog

Dịch thuật Django cho Lập trình viên Độc lập: Từ Vài Tuần xuống Vài Phút

2026-02-11 Đọc 9 phút
Dịch thuật Django cho Lập trình viên Độc lập: Từ Vài Tuần xuống Vài Phút

Ban da xay dung mot ung dung Django. No hoat dong tot, nguoi dung dang dang ky, va bay gio ban muon tiep can nhung nguoi khong noi tieng Anh. Van de hien ra ro rang ngay khi ban nhin vao no: framework quoc te hoa cua Django rat xuat sac trong viec trich xuat cac chuoi co the dich, nhung no khong lam gi de dien vao cac ban dich. Phan do la cua ban.

Neu ban la mot lap trinh vien doc lap hoac doi hai nguoi, khoang cach giua makemessages va mot ung dung duoc dich day du co the cam thay rat lon. Toi se di qua cac lua chon thuc te, giai thich tai sao hau het chung khong phu hop voi cac doi nho, va chi ra mot quy trinh lam viec bien viec dich tu mot cong viec mat nhieu tuan thanh mot lenh hai phut.

Cac Lua Chon Truyen Thong (va Tai Sao Chung Gay Kho Khan)

Lua chon 1: Sao chep-Dan tu Google Translate

Lan thu dau tien pho bien nhat. Ban mo file .po, sao chep tung msgid vao Google Translate, dan ket qua vao msgstr, va lap lai. Cho moi chuoi. Trong moi ngon ngu.

Mot ung dung Django dien hinh co 200-500 chuoi co the dich. Neu ban dich sang nam ngon ngu, do la 1.000-2.500 chu ky sao chep-dan. Ngay ca khi moi lan chi mat 30 giay, ban dang nhin vao 8-20 gio lam viec nham chan. Va do la truoc khi ban sua cac loi dinh dang, placeholder bi hong, va thuat ngu khong nhat quan chac chan se xuat hien.

Toi te hon, ban phai lam lai o sprint tiep theo khi them cac chuoi moi.

Lua chon 2: Dich gia Chuyen nghiep

Dich thuat chuyen nghiep thuong co gia $0,10 den $0,25 moi tu. Mot ung dung Django voi 500 chuoi trung binh 8 tu moi chuoi la khoang 4.000 tu. Voi $0,15/tu, do la $600 moi ngon ngu, hoac $3.000 cho nam ngon ngu.

Doi voi mot startup duoc dau tu boi VC, do chi la con so lam tron. Doi voi mot lap trinh vien doc lap thu $9/thang moi nguoi dung, no co the an het toan bo doanh thu ca quy cua ban.

Lua chon 3: Fiverr va Cac San Freelance

Ban co the tim dich gia tren Fiverr voi gia $20-50 moi ngon ngu. Mot so nguoi thuc su co ky nang. Nhieu nguoi chi don gian dan van ban cua ban vao Google Translate va thu phi ban. Ban nhan duoc chat luong tuong tu nhu Lua chon 1, cong them mot vong giao tiep va mot tuan cho doi.

Lua chon 4: Crowdin, Transifex, hoac Weblate

Cac nen tang nay manh me, nhung chung duoc thiet ke cho cac du an co doi dich thuat chuyen dung. Chi phi thiet lap (dong bo kho luu tru, cau hinh bo nho dich, quan ly quyen truy cap cua nguoi dong gop) la qua muc khi ban la nguoi duy nhat trong du an. Dang ky hang thang bat dau tu $30-150/thang cho cac goi tra phi, va ngay ca goi mien phi cung yeu cau ban duy tri them mot tich hop ben thu ba.

Lua chon 5: Dan Tat Ca vao ChatGPT

Dieu nay thuc su hoat dong tot dang ngac nhien ve chat luong. Ban dan noi dung file .po vao ChatGPT hoac Claude, yeu cau dich, va nhan duoc ket qua hop ly. Van de la no khong mo rong duoc. Ban phai trich xuat thu cong cac chuoi chua dich, dinh dang prompt, phan tich phan hoi tro lai dinh dang .po, va xu ly phan lo khi vuot qua gioi han ngu canh. No hoat dong mot lan. No hong nhu mot quy trinh lam viec co the lap lai.

Phuong Phap Tu Dong Hoa

Neu toan bo buoc dich la mot lenh duy nhat thi sao? Do la y tuong dang sau TranslateBot, mot lenh quan ly Django ma nguon mo doc cac file .po cua ban, gui cac chuoi chua dich den nha cung cap AI, va ghi lai ban dich theo dung dinh dang.

Day la cach thiet lap.

Buoc 1: Cai dat TranslateBot

uv add --dev translatebot-django

Hoac voi pip:

pip install translatebot-django

Them vao cac ung dung da cai dat:

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

Buoc 2: Cau Hinh Nha Cung Cap AI

Them hai thiet lap:

# settings.py
import os

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

TranslateBot hoat dong voi OpenAI, Anthropic Claude, Google Gemini, va hon 100 mo hinh khac thong qua LiteLLM. No cung ho tro DeepL nhu mot backend dich thuat chuyen dung.

Buoc 3: Tao TRANSLATING.md (Tuy Chon nhung Nen Dung)

File TRANSLATING.md o thu muc goc du an cung cap cho AI ngu canh ve ung dung cua ban. Day la dieu tach biet dich may thong thuong voi cac ban dich thuc su phu hop voi san pham cua ban:

# 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

File nay duoc gui cung voi moi yeu cau dich, vi vay AI su dung nhat quan giong dieu va thuat ngu dung.

Buoc 4: Dich

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

Ba lenh. The la xong. TranslateBot tim tat ca cac chuoi chua dich trong tat ca file .po, dich chung theo lo, va ghi ket qua lai. Mac dinh chi cac muc trong duoc dich, vi vay chay lai lenh sau khi them chuoi moi chi dich nhung chuoi moi.

Dieu Nay Trong Nhu The Nao Trong Thuc Te

Day la quy trinh sprint thuc te cho mot lap trinh vien doc lap ho tro nam ngon ngu:

Thu Hai: Ban xay dung mot tinh nang moi. Ban them mot vai chuoi co the dich moi su dung gettext() va {% trans %} trong qua trinh phat trien.

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."))

Truoc khi commit: Ban chay ba lenh:

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

Lenh translate phat hien cac muc chua dich moi va chi dich nhung muc do. Neu ban them 5 chuoi moi va ho tro 5 ngon ngu, no thuc hien 25 ban dich trong mot cuoc goi API duy nhat. Toan bo qua trinh mat duoi mot phut.

Ban commit ma nguon, template, va cac file .po/.mo da cap nhat cung nhau. Dich thuat la mot phan cua quy trinh phat trien binh thuong, khong phai mot du an rieng biet.

Xem Truoc Truoc Khi Commit

Neu ban muon xem ban dich truoc khi chung duoc ghi vao dia, su dung che do dry-run:

python manage.py translate --dry-run

Dieu nay in moi ban dich ra terminal ma khong thay doi bat ky file nao.

So Sanh Chi Phi

Day la noi tu dong hoa tro nen kho phan bac.

Phuong phap 500 chuoi, 5 ngon ngu Thoi gian Chi phi dinh ky
Sao chep-dan thu cong Mien phi ~40 gio ~8 gio/sprint
Dich gia chuyen nghiep ~$3.000 1-2 tuan ~$600/sprint
Dich gia Fiverr ~$100-250 3-7 ngay ~$50/sprint
Crowdin/Transifex $30-150/thang Thiet lap: gio Lien tuc
TranslateBot + GPT-4o-mini ~$0,05 ~2 phut ~$0,01/sprint
TranslateBot + DeepL Free $0 ~2 phut $0

Mot ung dung Django nho den trung binh voi khoang 500 chuoi co the dich thuong co chi phi duoi $0,01 moi ngon ngu voi gpt-4o-mini. Doi voi hau het cac du an ca nhan, goi mien phi cua DeepL (500.000 ky tu/thang) bao phu moi thu voi chi phi bang khong.

Noi ro: ban dich AI khong hoan hao. Ban dich cua nguoi voi ngan sach thap cung khong hoan hao. Su khac biet la ban dich AI gan nhu khong ton chi phi, co ngay lap tuc, va co the chay lai bat cu khi nao ban muon.

Tich Hop CI: Khong Bao Gio Xuat Ban Chuoi Chua Dich

Mot trong nhung kieu mau huu ich nhat ma toi tim thay voi tu cach la lap trinh vien doc lap la them kiem tra dich thuat vao CI. TranslateBot bao gom lenh check_translations se that bai neu bat ky file .po nao co cac muc chua dich hoac mo:

# .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

Neu ban them the {% trans %} moi trong template va quen chay translate, CI se bat duoc:

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

Dieu nay bien dich thuat tu dieu ban phai nho lam thanh dieu ban khong the quen.

Meo Thuc Te

Bat dau voi hai hoac ba ngon ngu. Ban khong can ra mat bang 15 ngon ngu ngay tu ngay dau. Chon nhung ngon ngu ma ban co nhieu nguoi dung nhat hoac thi truong lon nhat. Tieng Duc, tieng Phap, va tieng Tay Ban Nha bao phu nhieu thi truong Chau Au.

Nho nguoi ban ngu xem xet cac chuoi quan trong. Ban dich AI du tot cho hau het van ban UI, nhung tieu de trang dich va quy trinh huong dan su dung xung dang duoc nguoi that xem xet. Nho ban be, nguoi dung, hoac ai do trong dien dan cong dong danh 10 phut xem xet cac chuoi de nhin thay nhat.

Su dung dry-run truoc khi ghi de. Neu ban can dich lai moi thu (vi du, sau khi cap nhat TRANSLATING.md voi huong dan thuat ngu tot hon), xem truoc cac thay doi truoc:

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

Giu TRANSLATING.md trong kiem soat phien ban. No la mot phan cau hinh dich thuat cua du an. Khi ban cap nhat huong dan thuat ngu hoac giong dieu, lan chay translate tiep theo se phan anh nhung thay doi do cho bat ky chuoi moi nao.

Dich theo ung dung khi can. Neu ban chi thay doi chuoi trong mot ung dung, ban co the gioi han pham vi dich:

python manage.py translate --app billing

Tu Nhieu Tuan Den Vai Phut

Framework quoc te hoa cua Django la mot trong nhung framework tot nhat trong bat ky framework web nao. Cong cu cho makemessages, thu muc locale, va compilemessages da truong thanh va dang tin cay. Phan duy nhat con thieu la buoc dich thuat. Do la phan ton kem va cham.

Voi TranslateBot, quy trinh lam viec tro thanh:

  1. Viet ma voi gettext() va {% trans %} nhu binh thuong
  2. Chay makemessages de trich xuat chuoi
  3. Chay translate de dien ban dich
  4. Chay compilemessages de bien dich
  5. Commit moi thu cung nhau

Doi voi lap trinh vien doc lap, dieu nay co nghia la ban dia hoa khong con la du an ban len ke hoach cho "mot ngay nao do." No la dieu ban co the lam hom nay, trong thoi gian pha mot tach ca phe.

TranslateBot la ma nguon mo va co san tren PyPI va GitHub. Cai dat no, chay lenh, va xem ung dung cua ban bang ngon ngu moi trong vai phut.

Ngừng chỉnh sửa file .po thủ công

TranslateBot tự động hóa bản dịch Django bằng AI. Một lệnh, tất cả ngôn ngữ, chi phí cực thấp mỗi bản dịch.