Umejenga programu ya Django. Inafanya kazi, watumiaji wanajisajili, na sasa unataka kuwafikia watu wasiozungumza Kiingereza. Tatizo ni dhahiri mara tu unapoliangalia: mfumo wa Django wa kimataifa ni bora katika kuchimba maneno yanayoweza kutafsiriwa, lakini haufanyi lolote kujaza tafsiri. Sehemu hiyo ni juu yako.
Ikiwa wewe ni msanidi programu peke yako au timu ya watu wawili, pengo kati ya makemessages na programu iliyotafsiriwa kikamilifu linaweza kuonekana kubwa sana. Nitapitia chaguo za kweli, kueleza kwa nini nyingi kati yake hazifanyi kazi kwa timu ndogo, na kuonyesha mtiririko wa kazi ambao unabadilisha utafsiri kutoka kazi ya wiki kadhaa hadi amri ya dakika mbili.
Chaguo za Jadi (na Kwa Nini Zinaumiza)
Chaguo la 1: Nakili-Bandika kutoka Google Translate
Jaribio la kwanza la kawaida zaidi. Unafungua faili yako ya .po, unakili kila msgid kwenye Google Translate, unabandika matokeo kama msgstr, na kurudia. Kwa kila neno. Katika kila lugha.
Programu ya kawaida ya Django ina maneno 200-500 yanayoweza kutafsiriwa. Ukitafsiri kwa lugha tano, hizo ni mizunguko 1,000-2,500 ya kunakili na kubandika. Hata kama kila moja inachukua sekunde 30 tu, unazungumza kuhusu masaa 8-20 ya kazi ya kuchosha. Na hiyo ni kabla ya kurekebisha makosa ya muundo, vishikilio vilivyovunjika, na istilahi zisizo thabiti ambazo huingia bila shaka.
Mbaya zaidi, unapaswa kufanya tena sprint ijayo unapoongeza maneno mapya.
Chaguo la 2: Watafsiri Wataalamu
Utafsiri wa kitaalamu kwa kawaida hugharimu $0.10 hadi $0.25 kwa neno. Programu ya Django yenye maneno 500 yenye wastani wa maneno 8 kila moja ni takriban maneno 4,000. Kwa $0.15/neno, hiyo ni $600 kwa lugha moja, au $3,000 kwa lugha tano.
Kwa kampuni ya kuanzisha inayofadhiliwa na VC, hiyo ni kiasi kidogo. Kwa msanidi peke yake anayetoza $9/mwezi kwa mtumiaji, inaweza kula mapato yako yote ya robo mwaka.
Chaguo la 3: Fiverr na Masoko ya Kazi Huru
Unaweza kupata watafsiri kwenye Fiverr kwa $20-50 kwa lugha. Wengine ni wenye ujuzi kweli. Wengi wanabandika tu maandishi yako kwenye Google Translate na kukutoza kwa hilo. Unaishia na ubora sawa na Chaguo la 1, pamoja na duru ya ziada ya mawasiliano na wiki ya kusubiri.
Chaguo la 4: Crowdin, Transifex, au Weblate
Majukwaa haya ni yenye nguvu, lakini yamebuniwa kwa miradi yenye timu za utafsiri maalum. Mzigo wa kusanidi (kusawazisha hazina, kusanidi kumbukumbu ya utafsiri, kusimamia ufikiaji wa wachangiaji) ni kupita kiasi unapokuwa mtu pekee kwenye mradi. Usajili wa kila mwezi huanza kwa $30-150/mwezi kwa ngazi za kulipa, na hata ngazi za bure zinakuhitaji kudumisha muunganisho mwingine wa wahusika wengine.
Chaguo la 5: Bandika Kila Kitu kwenye ChatGPT
Hii kwa kweli inafanya kazi vizuri kwa ubora. Unabandika yaliyomo ya faili yako ya .po kwenye ChatGPT au Claude, unaomba tafsiri, na kupata matokeo ya kuridhisha. Tatizo ni kwamba haiwezi kupanuka. Unapaswa kutoa maneno yasiyotafsiriwa kwa mikono, kupanga muundo wa maagizo, kuchambua jibu kurudi kwenye muundo wa .po, na kushughulikia makundi unapozidi mipaka ya muktadha. Inafanya kazi mara moja. Inavunjika kama mtiririko wa kazi unaorudiwa.
Njia ya Otomatiki
Je, ikiwa hatua nzima ya utafsiri ingekuwa amri moja? Hiyo ndiyo wazo nyuma ya TranslateBot, amri ya usimamizi ya Django ya chanzo huria ambayo inasoma faili zako za .po, inatuma maneno yasiyotafsiriwa kwa mtoa huduma wa AI, na kuandika tafsiri katika muundo sahihi.
Hivi ndivyo unavyoisanidi.
Hatua ya 1: Sakinisha TranslateBot
uv add --dev translatebot-django
Au kwa pip:
pip install translatebot-django
Ongeza kwenye programu zako zilizosakinishwa:
# settings.py
INSTALLED_APPS = [
# ...
'translatebot_django',
]
Hatua ya 2: Sanidi Mtoa Huduma Wako wa AI
Ongeza mipangilio miwili:
# settings.py
import os
TRANSLATEBOT_API_KEY = os.getenv("OPENAI_API_KEY")
TRANSLATEBOT_MODEL = "gpt-4o-mini"
TranslateBot inafanya kazi na OpenAI, Anthropic Claude, Google Gemini, na modeli 100+ nyingine kupitia LiteLLM. Pia inasaidia DeepL kama seva maalum ya utafsiri.
Hatua ya 3: Tengeneza TRANSLATING.md (Si Lazima lakini Inapendekezwa)
Faili ya TRANSLATING.md katika mzizi wa mradi wako inampa AI muktadha kuhusu programu yako. Hii ndiyo inayotenganisha utafsiri wa mashine wa kawaida na tafsiri zinazofaa kweli kweli bidhaa yako:
# 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
Faili hii inatumwa pamoja na kila ombi la utafsiri, kwa hivyo AI hutumia kwa uthabiti sauti na istilahi sahihi.
Hatua ya 4: Tafsiri
python manage.py makemessages -l de -l fr -l nl -l es -l ja
python manage.py translate
python manage.py compilemessages
Amri tatu. Hiyo ndiyo yote. TranslateBot inapata maneno yote yasiyotafsiriwa katika faili zako zote za .po, inayatafsiri kwa makundi, na kuandika matokeo. Kwa chaguo-msingi, maingizo tupu pekee yanatafsiriwa, kwa hivyo kuendesha amri tena baada ya kuongeza maneno mapya kunatafsiri tu mapya.
Inavyoonekana Katika Mazoezi
Hapa kuna mtiririko wa kazi wa sprint wa kweli kwa msanidi peke yake anayesaidia lugha tano:
Jumatatu: Unajenga kipengele kipya. Unaongeza maneno machache mapya yanayoweza kutafsiriwa kwa kutumia gettext() na {% trans %} unapoendelea.
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."))
Kabla ya kufanya commit: Unaendesha amri tatu:
python manage.py makemessages -a --no-obsolete
python manage.py translate
python manage.py compilemessages
Amri ya translate inagundua maingizo mapya yasiyotafsiriwa na kutafsiri hayo pekee. Ukiongeza maneno 5 mapya na kusaidia lugha 5, inafanya tafsiri 25 katika simu moja ya API. Mchakato mzima unachukua chini ya dakika moja.
Unafanya commit msimbo wako, violezo, na faili za .po/.mo zilizosasishwa pamoja. Tafsiri ni sehemu ya mtiririko wako wa kawaida wa maendeleo, si mradi tofauti.
Hakiki Kabla ya Kufanya Commit
Ikiwa unataka kuona tafsiri kabla ya kuandikwa kwenye diski, tumia hali ya dry-run:
python manage.py translate --dry-run
Hii inachapisha kila tafsiri kwenye terminal bila kubadilisha faili yoyote.
Ulinganisho wa Gharama
Hapa ndipo otomatiki inakuwa ngumu kupinga.
| Njia | Maneno 500, lugha 5 | Muda | Gharama ya kurudia |
|---|---|---|---|
| Nakili-bandika kwa mkono | Bure | ~masaa 40 | ~masaa 8/sprint |
| Watafsiri wataalamu | ~$3,000 | wiki 1-2 | ~$600/sprint |
| Watafsiri wa Fiverr | ~$100-250 | siku 3-7 | ~$50/sprint |
| Crowdin/Transifex | $30-150/mwezi | Usanidi: masaa | Inayoendelea |
| TranslateBot + GPT-4o-mini | ~$0.05 | ~dakika 2 | ~$0.01/sprint |
| TranslateBot + DeepL Free | $0 | ~dakika 2 | $0 |
Programu ya Django ndogo hadi ya kati yenye takriban maneno 500 yanayoweza kutafsiriwa kwa kawaida hugharimu chini ya $0.01 kwa lugha na gpt-4o-mini. Kwa miradi mingi ya mtu mmoja, ngazi ya bure ya DeepL (herufi 500,000/mwezi) inashughulikia kila kitu bila gharama.
Kuwa wazi: tafsiri za AI si kamilifu. Tafsiri za binadamu za bajeti pia si kamilifu. Tofauti ni kwamba tafsiri za AI hazigharimu karibu chochote, zinapatikana mara moja, na zinaweza kuendeshwa tena wakati wowote utakapo.
Muunganisho wa CI: Usisafalishe Maneno Yasiyotafsiriwa Kamwe
Mojawapo ya mifumo muhimu zaidi niliyoipata kama msanidi peke yangu ni kuongeza ukaguzi wa utafsiri kwenye CI. TranslateBot inajumuisha amri ya check_translations ambayo inashindwa ikiwa faili yoyote ya .po ina maingizo yasiyotafsiriwa au yenye utata:
# .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
Ukiongeza lebo mpya ya {% trans %} kwenye kiolezo na kusahau kuendesha translate, CI itaigundua:
locale/de/LC_MESSAGES/django.po: 1 untranslated, 0 fuzzy
locale/fr/LC_MESSAGES/django.po: 1 untranslated, 0 fuzzy
CommandError: Translation check failed
Hii inabadilisha tafsiri kutoka kitu unachopaswa kukumbuka kufanya kuwa kitu usichoweza kusahau.
Vidokezo vya Vitendo
Anza na lugha mbili au tatu. Huhitaji kuzindua katika lugha 15 siku ya kwanza. Chagua zile ambapo una watumiaji wengi zaidi au soko kubwa zaidi linaloweza kufikiwa. Kijerumani, Kifaransa, na Kihispania zinashughulikia eneo kubwa kwa masoko ya Ulaya.
Wapate wazungumzaji asili kukagua maneno muhimu. Tafsiri za AI ni nzuri vya kutosha kwa maandishi mengi ya UI, lakini kichwa cha ukurasa wako wa kutua na mtiririko wa kuwaingiza watumiaji unastahili jicho la binadamu. Mwombe rafiki, mtumiaji, au mtu katika jukwaa la jamii kutumia dakika 10 kukagua maneno yanayoonekana zaidi.
Tumia dry-run kabla ya kuandika upya. Ikiwa utahitaji kutafsiri upya kila kitu (kwa mfano, baada ya kusasisha TRANSLATING.md yako na miongozo bora ya istilahi), hakiki mabadiliko kwanza:
python manage.py translate --overwrite --dry-run
Weka TRANSLATING.md katika udhibiti wa matoleo. Ni sehemu ya usanidi wa utafsiri wa mradi wako. Unaposasisha miongozo ya istilahi au sauti, uendeshaji ujao wa translate utaonyesha mabadiliko hayo kwa maneno yoyote mapya.
Tafsiri kwa programu inapohitajika. Ukibadilisha maneno katika programu moja tu, unaweza kupunguza upeo wa utafsiri:
python manage.py translate --app billing
Kutoka Wiki hadi Dakika
Mfumo wa Django wa kimataifa ni mojawapo ya bora katika mfumo wowote wa wavuti. Zana za makemessages, saraka za locale, na compilemessages ni za kukomaa na za kutegemewa. Kipande pekee kilichokuwa kikipotea kilikuwa hatua ya utafsiri yenyewe. Hiyo ilikuwa sehemu ya gharama kubwa na polepole.
Na TranslateBot, mtiririko wa kazi unakuwa:
- Andika msimbo na
gettext()na{% trans %}kama kawaida - Endesha
makemessagesili kutoa maneno - Endesha
translateili kujaza tafsiri - Endesha
compilemessagesili kukusanya - Fanya commit kila kitu pamoja
Kwa msanidi peke yake, hii inamaanisha ujanibishaji si tena mradi unaoupanga kwa "siku moja." Ni kitu unachoweza kufanya leo, katika muda unaochukua kutengeneza kikombe cha kahawa.
TranslateBot ni chanzo huria na inapatikana kwenye PyPI na GitHub. Isakinishe, endesha amri, na uone programu yako katika lugha mpya kwa dakika.