Sampeyan wis gawe app Django. Bisa mlaku, pangguna padha ndaftar, lan saiki sampeyan pengin nggayuh wong-wong sing ora ngomong basa Inggris. Masalahe jelas nalika sampeyan ndeleng: framework internasionalisasi Django pancen apik banget kanggo ngekstrak string sing bisa diterjemahake, nanging ora nindakake apa-apa kanggo ngisi terjemahane. Bagian kuwi tanggung jawab sampeyan.
Yen sampeyan developer tunggal utawa tim loro wong, jarak antarane makemessages lan app sing wis diterjemahake kanthi lengkap bisa krasa gedhe banget. Aku bakal njelasake pilihan-pilihan sing realistis, nerangake kenapa akeh-akehe ora cocok kanggo tim cilik, lan nuduhake alur kerja sing ngowahi terjemahan saka tugas pirang-pirang minggu dadi perintah rong menit.
Pilihan Tradisional (lan Kenapa Nyusahake)
Pilihan 1: Copy-Paste saka Google Translate
Usaha pertama sing paling umum. Sampeyan mbukak file .po, nyalin saben msgid menyang Google Translate, nempel asile minangka msgstr, lan mbaleni. Kanggo saben string. Ing saben basa.
App Django sing biasa duwe 200-500 string sing bisa diterjemahake. Yen sampeyan nerjemahake menyang limang basa, kuwi 1.000-2.500 siklus copy-paste. Sanajan saben siji mung butuh 30 detik, sampeyan ndeleng 8-20 jam kerja sing mboseni. Lan kuwi sadurunge sampeyan ndandani kesalahan format, placeholder sing rusak, lan terminologi sing ora konsisten sing mesthi mlebu.
Luwih elek maneh, sampeyan kudu nindakake maneh ing sprint sabanjure nalika nambah string anyar.
Pilihan 2: Penerjemah Profesional
Terjemahan profesional biasane regane $0.10 nganti $0.25 saben tembung. App Django kanthi 500 string rata-rata 8 tembung saben siji kira-kira 4.000 tembung. Kanthi $0.15/tembung, kuwi $600 saben basa, utawa $3.000 kanggo limang basa.
Kanggo startup sing didanai VC, kuwi mung buledan angka. Kanggo developer tunggal sing ngecas $9/sasi saben pangguna, bisa ngentekake kabeh pendapatan sampeyan sajrone seprapat taun.
Pilihan 3: Fiverr lan Marketplace Freelance
Sampeyan bisa nemokake penerjemah ing Fiverr kanthi rega $20-50 saben basa. Sawetara pancen trampil. Akeh sing mung nempel teks sampeyan ing Google Translate lan ngecas sampeyan kanggo hak istimewa kuwi. Sampeyan entuk kualitas sing padha karo Pilihan 1, ditambah komunikasi bolak-balik tambahan lan seminggu nunggu.
Pilihan 4: Crowdin, Transifex, utawa Weblate
Platform-platform iki kuat, nanging dirancang kanggo proyek kanthi tim terjemahan khusus. Overhead setup (sinkronisasi repositori, konfigurasi memori terjemahan, ngatur akses kontributor) keliwatan nalika sampeyan siji-sijine wong ing proyek. Langganan bulanan diwiwiti saka $30-150/sasi kanggo tingkat berbayar, lan sanajan tingkat gratis mbutuhake sampeyan njaga integrasi pihak ketiga liyane.
Pilihan 5: Tempel Kabeh ing ChatGPT
Iki sejatine bisa mlaku kanthi apik banget kanggo kualitas. Sampeyan nempel isi file .po sampeyan ing ChatGPT utawa Claude, njaluk terjemahan, lan entuk asil sing cukup apik. Masalahe yaiku ora bisa diskala. Sampeyan kudu ngekstrak string sing durung diterjemahake kanthi manual, ngformat prompt, ngurai respon bali menyang format .po, lan nangani batching nalika ngluwihi watesan konteks. Bisa mlaku sepisan. Rusak minangka alur kerja sing bisa dibaleni.
Pendekatan Otomasi
Kepiye yen kabeh langkah terjemahan mung siji perintah? Kuwi ide ing mburi TranslateBot, perintah manajemen Django open-source sing maca file .po sampeyan, ngirim string sing durung diterjemahake menyang penyedia AI, lan nulis terjemahane bali ing format sing bener.
Mangkene carane nyetel.
Langkah 1: Instal TranslateBot
uv add --dev translatebot-django
Utawa nganggo pip:
pip install translatebot-django
Tambahake menyang installed apps sampeyan:
# settings.py
INSTALLED_APPS = [
# ...
'translatebot_django',
]
Langkah 2: Konfigurasi Penyedia AI Sampeyan
Tambahake rong setelan:
# settings.py
import os
TRANSLATEBOT_API_KEY = os.getenv("OPENAI_API_KEY")
TRANSLATEBOT_MODEL = "gpt-4o-mini"
TranslateBot bisa mlaku karo OpenAI, Anthropic Claude, Google Gemini, lan 100+ model liyane liwat LiteLLM. Uga ndhukung DeepL minangka backend terjemahan khusus.
Langkah 3: Gawe TRANSLATING.md (Opsional nanging Dianjurake)
File TRANSLATING.md ing root proyek sampeyan menehi konteks marang AI babagan aplikasi sampeyan. Iki sing mbedakake terjemahan mesin umum saka terjemahan sing bener-bener cocog karo produk sampeyan:
# 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 iki dikirim bebarengan karo saben permintaan terjemahan, dadi AI konsisten nggunakake nada lan terminologi sing bener.
Langkah 4: Terjemahake
python manage.py makemessages -l de -l fr -l nl -l es -l ja
python manage.py translate
python manage.py compilemessages
Telung perintah. Kuwi wae. TranslateBot nemokake kabeh string sing durung diterjemahake ing kabeh file .po sampeyan, nerjemahake kanthi batch, lan nulis asile bali. Mung entri sing kosong sing diterjemahake minangka default, dadi mbukak perintah maneh sawise nambah string anyar mung nerjemahake sing anyar.
Kaya Apa ing Praktik
Iki alur kerja sprint sing realistis kanggo developer tunggal sing ndhukung limang basa:
Senin: Sampeyan gawe fitur anyar. Sampeyan nambah sawetara string sing bisa diterjemahake nggunakake gettext() lan {% trans %} nalika kerja.
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."))
Sadurunge commit: Sampeyan mbukak telung perintah:
python manage.py makemessages -a --no-obsolete
python manage.py translate
python manage.py compilemessages
Perintah translate ndeteksi entri anyar sing durung diterjemahake lan mung nerjemahake entri kuwi. Yen sampeyan nambah 5 string anyar lan ndhukung 5 basa, nggawe 25 terjemahan ing siji panggilan API. Kabeh proses butuh kurang saka semenit.
Sampeyan commit kode, template, lan file .po/.mo sing wis dianyari bebarengan. Terjemahan dadi bagian saka alur pengembangan normal sampeyan, dudu proyek terpisah.
Pratinjau Sadurunge Commit
Yen sampeyan pengin ndeleng terjemahan sadurunge ditulis ing disk, gunakake mode dry-run:
python manage.py translate --dry-run
Iki nyetak saben terjemahan ing terminal tanpa ngowahi file apa wae.
Perbandingan Biaya
Ing kene otomasi dadi angel dibantah.
| Pendekatan | 500 string, 5 basa | Wektu | Biaya berulang |
|---|---|---|---|
| Copy-paste manual | Gratis | ~40 jam | ~8 jam/sprint |
| Penerjemah profesional | ~$3.000 | 1-2 minggu | ~$600/sprint |
| Penerjemah Fiverr | ~$100-250 | 3-7 dina | ~$50/sprint |
| Crowdin/Transifex | $30-150/sasi | Setup: jam-jaman | Terus-terusan |
| TranslateBot + GPT-4o-mini | ~$0.05 | ~2 menit | ~$0.01/sprint |
| TranslateBot + DeepL Free | $0 | ~2 menit | $0 |
App Django cilik nganti sedeng kanthi kira-kira 500 string sing bisa diterjemahake biasane regane kurang saka $0.01 saben basa nganggo gpt-4o-mini. Kanggo akeh proyek tunggal, tingkat gratis DeepL (500.000 karakter/sasi) nyakup kabeh tanpa biaya.
Kanggo jelase: terjemahan AI ora sempurna. Terjemahan manusia sing murah uga ora. Bedane yaiku terjemahan AI meh tanpa biaya, teka langsung, lan bisa dibaleni kapan wae sampeyan pengin.
Integrasi CI: Aja Tau Ngirim String sing Durung Diterjemahake
Salah siji pola sing paling migunani sing dak temokake minangka developer tunggal yaiku nambah pemeriksaan terjemahan ing CI. TranslateBot kalebu perintah check_translations sing gagal yen ana file .po sing duwe entri sing durung diterjemahake utawa 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
Yen sampeyan nambah tag {% trans %} anyar ing template lan lali mbukak translate, CI bakal nangkep:
locale/de/LC_MESSAGES/django.po: 1 untranslated, 0 fuzzy
locale/fr/LC_MESSAGES/django.po: 1 untranslated, 0 fuzzy
CommandError: Translation check failed
Iki ngowahi terjemahan saka bab sing kudu sampeyan eling dadi bab sing ora bisa sampeyan lali.
Tips Praktis
Mulai karo loro utawa telung basa. Sampeyan ora perlu diluncurake ing 15 basa ing dina pertama. Pilih basa sing duwe pangguna paling akeh utawa pasar sing paling gedhe. Jerman, Prancis, lan Spanyol nyakup akeh wilayah kanggo pasar Eropa.
Jaluk penutur asli mriksa string sing kritis. Terjemahan AI cukup apik kanggo akeh teks UI, nanging judul landing page lan alur onboarding sampeyan layak dideleng dening mata manusia. Jaluk kanca, pangguna, utawa wong ing forum komunitas ngenteni 10 menit mriksa string sing paling katon.
Gunakake dry-run sadurunge nimpa. Yen sampeyan perlu nerjemahake kabeh maneh (contone, sawise nganyari TRANSLATING.md kanthi pedoman terminologi sing luwih apik), pratinjau owahan dhisik:
python manage.py translate --overwrite --dry-run
Simpen TRANSLATING.md ing version control. Iki bagian saka konfigurasi terjemahan proyek sampeyan. Nalika sampeyan nganyari terminologi utawa pedoman nada, proses translate sabanjure bakal nggambarake owahan kuwi kanggo string anyar apa wae.
Terjemahake saben app nalika dibutuhake. Yen sampeyan mung ngowahi string ing siji app, sampeyan bisa ngatasi ruang lingkup terjemahane:
python manage.py translate --app billing
Saka Minggu-mingguan Dadi Menit-menitan
Framework internasionalisasi Django minangka salah siji sing paling apik ing framework web apa wae. Perkakas kanggo makemessages, direktori locale, lan compilemessages wis mateng lan bisa dipercaya. Siji-sijine bagian sing ilang yaiku langkah terjemahan dhewe. Kuwi biyen bagian sing larang lan alon.
Kanthi TranslateBot, alur kerjane dadi:
- Nulis kode nganggo
gettext()lan{% trans %}kaya biasa - Mbukak
makemessageskanggo ngekstrak string - Mbukak
translatekanggo ngisi terjemahan - Mbukak
compilemessageskanggo ngompilasi - Commit kabeh bebarengan
Kanggo developer tunggal, iki tegese lokalisasi ora maneh dadi proyek sing sampeyan rencanakake kanggo "kapan-kapan." Iki bab sing bisa sampeyan lakoni dina iki, ing wektu sing dibutuhake kanggo gawe secangkir kopi.
TranslateBot iku open source lan kasedhiya ing PyPI lan GitHub. Instal, mbukak perintahe, lan deleng app sampeyan ing basa anyar sajrone sawetara menit.