Koma zuwa blog

Fassarar Django don Masu Haɓaka Kadai: Daga Makonni zuwa Mintoci

2026-02-11 Karanta cikin 9 minti
Fassarar Django don Masu Haɓaka Kadai: Daga Makonni zuwa Mintoci

Ka gina wata app ta Django. Tana aiki, masu amfani suna yin rajista, kuma yanzu kana son isa ga mutanen da ba sa magana da Turanci. Matsalar ta bayyana a lokacin da ka dube ta: tsarin kasa da kasa na Django yana da kyau wajen fitar da kalmomi masu iya fassara, amma bai yi wani abu ba wajen cike fassarorin. Wannan bangaren ya rataya a wuyanka.

Idan kai mai haɓaka shi kaɗai ne ko ƙungiya ta mutum biyu, tazara tsakanin makemessages da cikakken app da aka fassara na iya zama kamar babbar matsala. Zan bi ta zaɓuɓɓuka masu gaskiya, in bayyana dalilin da yasa yawancinsu basu yi aiki ba ga ƙananan ƙungiyoyi, in kuma nuna tsarin aiki da ke canza fassara daga aikin makonni da yawa zuwa umarni na mintuna biyu.

Zaɓuɓɓukan Gargajiya (da Dalilin da Yasa Suke Wahala)

Zaɓi na 1: Kwafi da Manna daga Google Translate

Yunƙurin farko da ya fi yawa. Ka buɗe fayil ɗin .po, ka kwafa kowane msgid zuwa Google Translate, ka manna sakamakon a matsayin msgstr, ka maimaita. Ga kowane kalma. A kowane harshe.

Yawancin app na Django yana da kalmomi 200-500 da za a iya fassara. Idan kana fassara zuwa harsuna biyar, hakan yana nufin zagaye 1,000-2,500 na kwafin da mannawa. Ko da kowanne yana ɗaukar daƙiƙa 30 kaɗai, kana duban awanni 8-20 na aikin da ke gundura. Kuma hakan kafin ka gyara kuskuren tsarawa, placeholder ɗin da suka lalace, da kalmomi marasa daidaituwa waɗanda ba za su rasa shiga ba.

Mafi muni, dole ne ka sake yin hakan a cikin sprint na gaba lokacin da ka ƙara sabbin kalmomi.

Zaɓi na 2: Masu Fassara Kwararru

Fassarar kwararru yakan yi kuɗin $0.10 zuwa $0.25 ga kowane kalma. App na Django mai kalmomi 500 da matsakaicin kalmomi 8 ga kowanne yana da kimanin kalmomi 4,000. A $0.15 ga kowane kalma, wannan $600 ne ga kowane harshe, ko $3,000 ga harsuna biyar.

Ga kamfanin farawa da ke da kuɗin VC, wannan kuskure ne na zagaye kawai. Ga mai haɓaka shi kaɗai da ke ɗaukar $9 a wata ga kowane mai amfani, yana iya cinye dukan kudin shigarka na kwata guda.

Zaɓi na 3: Fiverr da Kasuwannin Freelance

Za ka iya samun masu fassara a Fiverr da $20-50 ga kowane harshe. Wasu sun fi ƙwarewa da gaske. Da yawa suna kawai manne rubutunka cikin Google Translate suna sa ka biya don wannan gata. Za ka sami ingancin iri ɗaya da Zaɓi na 1, tare da ƙarin zagayen sadarwa da makon jira.

Zaɓi na 4: Crowdin, Transifex, ko Weblate

Waɗannan dandamali suna da ƙarfi, amma an tsara su ne don ayyuka da ke da ƙungiyar fassara na musamman. Nauyin saiti (daidaita ma'ajiyar bayanai, saita ƙwaƙwalwar fassara, sarrafa damar masu ba da gudummawa) ya yi yawa idan kai ne kaɗai a cikin aikin. Biyan kuɗi na wata yana farawa daga $30-150 a wata don matakan da ake biya, har ma matakan kyauta suna buƙatar ka kula da wata haɗin gwiwa ta ɓangare na uku.

Zaɓi na 5: Manne Komai cikin ChatGPT

Wannan a gaskiya yana aiki da kyau game da inganci. Ka manne abubuwan da ke cikin fayil ɗin .po zuwa ChatGPT ko Claude, ka nemi fassarori, ka sami sakamako mai ma'ana. Matsalar ita ce ba ta iya girma ba. Dole ne ka fitar da kalmomi marasa fassara da hannu, ka tsara prompt, ka sake warware amsar zuwa tsarin .po, ka kuma sarrafa batching lokacin da ka wuce iyakokin context. Yana aiki sau ɗaya. Ya lalace a matsayin tsarin aiki da za a iya maimaitawa.

Hanyar Sarrafa Kai

Me zai faru idan dukan matakin fassara umarni ɗaya ne? Wannan shi ne ra'ayin da ke bayan TranslateBot, umarni na gudanarwa na Django na buɗaɗɗen tushe wanda ke karanta fayilolin .po, yana aika kalmomi marasa fassara zuwa ga mai samar da AI, kuma yana rubuta fassarorin a cikin daidaitaccen tsari.

Ga yadda za a saita shi.

Mataki na 1: Shigar da TranslateBot

uv add --dev translatebot-django

Ko da pip:

pip install translatebot-django

Ƙara shi zuwa apps ɗin da aka shigar:

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

Mataki na 2: Saita Mai Samar da AI

Ƙara saituna biyu:

# settings.py
import os

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

TranslateBot yana aiki da OpenAI, Anthropic Claude, Google Gemini, da fiye da samfuran 100 ta hanyar LiteLLM. Yana kuma tallafawa DeepL a matsayin ɓangaren fassara na musamman.

Mataki na 3: Ƙirƙiri TRANSLATING.md (Na Zaɓi amma Ana Ba da Shawara)

Fayil ɗin TRANSLATING.md a tushen aikinku yana ba AI bayani game da appinku. Wannan shi ne abin da ya raba fassarar injin na yau da kullum da fassarorin da suka dace da kayayyakinku:

# 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

Ana aika wannan fayil tare da kowace buƙatar fassara, don haka AI yana amfani da sautin da kalmomi daidai a koyaushe.

Mataki na 4: Fassara

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

Umarnai uku. Haka kawai. TranslateBot yana samun dukan kalmomi marasa fassara a cikin dukan fayilolin .po, yana fassara su a cikin gungu, kuma yana rubuta sakamakon baya. Shigarwar wofi ne kawai ake fassara ta asali, don haka gudanar da umarni bayan ƙara sabbin kalmomi yana fassara sababbin kaɗai.

Yaya Yake a Aikace

Ga tsarin aiki na sprint mai gaskiya ga mai haɓaka shi kaɗai da ke tallafawa harsuna biyar:

Litinin: Kana gina sabon fasali. Kana ƙara wasu sabbin kalmomi masu iya fassara ta amfani da gettext() da {% trans %} yayin aiki.

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

Kafin commit: Ka gudanar da umarnai uku:

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

Umarni na translate yana gano sabbin shigarwa marasa fassara kuma yana fassara waɗannan kaɗai. Idan ka ƙara kalmomi 5 sababbi kuma kana tallafawa harsuna 5, yana yin fassarori 25 a kira ɗaya na API. Dukan aikin yana ɗaukar ƙasa da minti ɗaya.

Ka yi commit na code, template, da fayilolin .po/.mo da aka sabunta tare. Fassarori sun zama wani ɓangare na tsarin haɓakawarka na yau da kullum, ba aikin da ya keɓe ba.

Duba Kafin Ka Yi Commit

Idan kana son ganin fassarori kafin a rubuta su zuwa faifai, yi amfani da yanayin dry-run:

python manage.py translate --dry-run

Wannan yana buga kowace fassara a terminal ba tare da canza kowane fayil ba.

Kwatancen Farashin

A nan ne sarrafa kai ya zama da wahalar yin gardama da shi.

Hanya Kalmomi 500, harsuna 5 Lokaci Farashi mai dawowa
Kwafin-mannawa da hannu Kyauta ~awanni 40 ~awanni 8/sprint
Masu fassara kwararru ~$3,000 mako 1-2 ~$600/sprint
Masu fassara na Fiverr ~$100-250 kwanaki 3-7 ~$50/sprint
Crowdin/Transifex $30-150/wata Saiti: awanni Na ci gaba
TranslateBot + GPT-4o-mini ~$0.05 ~mintuna 2 ~$0.01/sprint
TranslateBot + DeepL Free $0 ~mintuna 2 $0

Ƙaramin app na Django zuwa matsakaici mai kimanin kalmomi 500 masu iya fassara yakan yi kuɗin ƙasa da $0.01 ga kowane harshe tare da gpt-4o-mini. Ga yawancin ayyukan mutum ɗaya, matakin kyauta na DeepL (haruffa 500,000 a wata) yana rufe komai ba tare da kuɗi ba.

Don a gane: fassarorin AI ba cikakkun ba ne. Haka ma fassarorin ɗan adam masu rahusa. Bambancin shi ne cewa fassarorin AI kusan ba su da kuɗi, suna zuwa nan take, kuma za a iya sake gudanar da su duk lokacin da kake so.

Haɗin CI: Kar Ka Taɓa Aika Kalmomi Marasa Fassara

Ɗaya daga cikin tsare-tsare masu amfani da na samu a matsayin mai haɓaka shi kaɗai shine ƙara binciken fassara zuwa CI. TranslateBot ya haɗa da umarni na check_translations wanda zai fadi idan kowane fayil na .po yana da shigarwa marasa fassara ko masu ruɗani:

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

Idan ka ƙara sabon tag na {% trans %} a cikin template ka manta gudanar da translate, CI zai kama shi:

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

Wannan yana canza fassarori daga abin da kake buƙatar tunawa zuwa abin da ba za ka iya mantawa ba.

Shawarwari Masu Amfani

Fara da harsuna biyu ko uku. Ba ka buƙatar ƙaddamarwa a harsuna 15 a rana ta farko ba. Zaɓi waɗanda kake da mafi yawan masu amfani ko mafi girman kasuwar da za a isa. Jamusanci, Faransanci, da Sifen suna rufe fili mai yawa ga kasuwannin Turai.

Ka sami masu magana na asali su bita kalmomi masu muhimmanci. Fassarorin AI sun isa ga yawancin rubutun UI, amma taken shafin saukowa da tsarin farawa sun cancanci idon ɗan adam. Ka tambayi abokin ka, mai amfani, ko wani a dandalin al'umma ya ɗauki mintuna 10 don bita kalmomi mafi bayyane.

Yi amfani da dry-run kafin rubuta a kai. Idan kana buƙatar sake fassara komai (misali, bayan sabunta TRANSLATING.md tare da jagororin kalmomi mafi kyau), ka fara duba canje-canje:

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

Ajiye TRANSLATING.md a cikin sarrafa sigar. Wani ɓangare ne na tsarin fassara na aikinku. Lokacin da ka sabunta kalmomi ko jagororin sauti, gudanar da translate na gaba zai nuna waɗannan canje-canje ga dukan sabbin kalmomi.

Fassara a kowanne app idan ana buƙata. Idan ka canza kalmomi a cikin app ɗaya kaɗai, za ka iya ƙuntata iyakar fassara:

python manage.py translate --app billing

Daga Makonni zuwa Mintuna

Tsarin kasa da kasa na Django yana ɗaya daga cikin mafi kyau a kowane tsarin gidan yanar gizo. Kayan aikin makemessages, kundin locale, da compilemessages sun balaga kuma abin dogaro ne. Kawai ɓangaren da ya ɓace shi ne matakin fassara da kansa. Wannan ya kasance ɓangaren mai tsada kuma mai jinkiri.

Da TranslateBot, tsarin aiki ya zama:

  1. Rubuta code da gettext() da {% trans %} kamar yadda aka saba
  2. Gudanar da makemessages don fitar da kalmomi
  3. Gudanar da translate don cike fassarori
  4. Gudanar da compilemessages don haɗawa
  5. Yi commit na komai tare

Ga mai haɓaka shi kaɗai, wannan yana nufin ƙauyanci ba aikin da kake shirya don "wata rana" ba ne kuma. Abu ne da za ka iya yi a yau, a cikin lokacin da ake ɗauka don dafa kofi.

TranslateBot buɗaɗɗen tushe ne kuma yana samuwa a PyPI da GitHub. Ka shigar da shi, ka gudanar da umarni, ka ga app ɗinka a sabon harshe cikin mintuna.

Daina gyara fayilolin .po da hannu

TranslateBot yana sarrafa fassarar Django ta hanyar AI. Umarni ɗaya, duk harshenanka, ƴan kuɗi kowane fassara.