Téigh go dtí an t-ábhar

Aistrigh teachtaireachtaí iomlána
le t-strings Python

Ceanglaíonn gettext-tstrings t-strings Python 3.14+ le catalóga caighdeánacha gettext agus le huirlisí Babel. Fanann na luachanna agus an formáidiú i gcód an fheidhmchláir; oibríonn na haistritheoirí le teachtaireachtaí iomlána agus le sealbhóirí ionaid shimplí {name}:

import gettext

from gettext_tstrings import Translator

_ = Translator(gettext.translation("messages", localedir="locales"))
name = "Ada"
print(_(t"Hello {name}"))  # with a Japanese catalog: こんにちは Ada

Hello {name} sa chatalóg. Tá cead ag aistriúchán {name} a bhogadh nó a athdhéanamh. Má bhaineann sé an sealbhóir ionaid, má athainmníonn sé é nó má athfhormáidíonn sé é, tuairiscíonn bailíochtú na catalóige an earráid. Má shroicheann iontráil neamhbhailí an táirgeadh mar sin féin, logálann an leabharlann rabhadh agus rindreálann sí an teachtaireacht fhoinseach seachas tuairteáil.

Tosaigh an rang teagaisc cúig nóiméad Déan comparáid leis na roghanna eile

Alfa · Python 3.14+ · catalóga caighdeánacha PO/MO · gan spleáchais tríú páirtí ag am rite

Cleachtann an suíomh seo an rud a dhoiciméadaíonn sé: rindreáiltear gach eagrán teanga — an nascleanúint, na lipéid agus an tuairisc tógála a thuigeann an t-iolra — ó chatalóga PO le gettext-tstrings féin.

An bhfuil sé seo duitse?

Feileann sé inniu nuair a ritheann d'fheidhmchlár ar Python 3.14 nó níos nuaí; nuair a úsáideann tú gettext agus Babel cheana, nó nuair is mian leat glacadh lena sreabhadh oibre PO/MO; agus nuair atá comhréir t-string uait le sealbhóirí ionaid ainmnithe a sheiceáiltear sula rindreáiltear iad.

Ní fheileann sé fós nuair a theastaíonn Python 3.13 nó níos sine uait; nuair a theastaíonn API cobhsaí Python uait — is alfa é seo, agus is í an tsonraíocht an chuid de atá socraithe; nó nuair a bhíonn beagnach gach téacs inaistrithe agat i dteanga teimpléid seachas i bhfoinse Python.

Catalóga agat cheana? Leanann siad ag obair. Táirgeann _("Hello {name}").format(name=name) agus tr(t"Hello {name}") an msgid céanna, mar sin maireann na haistriúcháin atá ann tríd an athrú — siúlann Aistriú anonn an bogadh iomlán.

A bhfuil cead ag an gcatalóg a rá

Ní féidir le haistriúchán struchtúr na teachtaireachta a aistríonn sé a athrú. Sin an gealltanas ar fad, agus leanann an chuid eile den suíomh seo as. Tá cead ag aistriúchán {name} a athordú nó a athdhéanamh, agus gach focal eile timpeall air a athscríobh. Níl cead aige an sealbhóir ionaid a fhágáil ar lár, ceann nua a chumadh, síneadh tríd isteach i do chuid oibiachtaí, ná formáidiú dá chuid féin a cheangal leis.

Seiceálann an leabharlann é sin ar an mbealach isteach — nuair a thiomsaítear na catalóga — agus arís ag am rindreála, agus sin an difríocht idir botún a aimsítear i léirmheas agus botún a aimsíonn úsáideoir.

gettext nua duit? An sreabhadh oibre iomlán i gceithre abairt

Is é gettext an bealach caighdeánach a aistrítear bogearraí, i bPython agus i bhfad níos faide anonn. Marcálann do chód na teachtaireachtaí is féidir a aistriú; bailíonn eastóscóir iad i gcomhad teimpléid (.pot); líonann aistritheoir — nach programmer é de ghnáth — comhad catalóige (.po) amháin in aghaidh na teanga, agus tiomsaítear é sin ina .mo dénártha a luchtaíonn d'fheidhmchlár ag am rite. Is é _ an t-ainm traidisiúnta ar an bhfeidhm aistriúcháin, agus mar sin léitear _(t"Hello {name}") mar "aistrigh an teachtaireacht seo". Siúlann an rang teagaisc an cosán ar fad — marcáil, eastóscadh, aistriú, tiomsú, rith — i thart ar chúig nóiméad.

An fhadhb a réitíonn sé

Bíonn f-string idirshuite cheana féin faoin am a fheiceann leabharlann ar bith é — tá f"Hello {name}" ina "Hello Ada" faoin bpointe sin, agus briseann aistriú na mblúirí timpeall ar luach gramadach fhormhór na dteangacha. Coinníonn t-string (PEP 750) an téacs statach, na luachanna measúnaithe, na sloinn fhoinseacha, na tiontuithe agus na sonruithe formáide scartha óna chéile — agus sin díreach an deighilt a theastaíonn ó chatalóg teachtaireachtaí. Cad a athraíonn sé sin, i gcomparáid le %(name)s, .format() agus $-strings.

Níl aon rud i gettext ná i mBabel a deir conas a éiríonn teachtaireacht as t-string, áfach. Déanann an leabharlann seo an rogha sin, scríobhann síos í mar shonraíocht le leagan uirthi, agus seolann sí an tsraith comhréireachta chun í a sheiceáil.

Na rialacha deartha

  • Aistrigh teachtaireachtaí iomlána, riamh blúirí abairte.
  • Ná glac ach le hainmneacha simplí athróg ar nós {name}.
  • Coinnigh !r agus :.2f faoi smacht an fheidhmchláir, amuigh as an gcatalóg.
  • Ceadaigh d'aistriúcháin sealbhóirí ionaid aitheanta a athordú agus a athdhéanamh, agus cosc a chur orthu ag an am céanna síneadh chuig tréithe nó formáidiú a chur leis.
  • Athúsáid gnáthchomhaid POT, PO agus MO, agus na huirlisí a léann cheana iad.

Agus an liosta comhoiriúnach den rud a fhágann sé faoi d'aon ghnó: ní logánaíonn sé uimhreacha, airgeadraí ná dátaí — formáidigh iad sin ar dtús, le Babel; ní éalaíonn sé an t-aschur rindreáilte le haghaidh HTML, blaoisce ná teirminéil; agus ní féidir leis a mheas an bhfuil aistriúchán ceart, gan ach an bhfuil a chuid sealbhóirí ionaid slán.

Suiteáil

python -m pip install gettext-tstrings

Python 3.14 nó níos nuaí. Níl aon spleáchas ag an rindreáil — ní úsáideann sí ach gettext na leabharlainne caighdeánaí agus faic eile.

Ritheann an t-eastóscadh agus bailíochtú na gcatalóg trí Babel, mar sin suiteáil an breiseán sin cibé áit a ritheann pybabel, rud is gnách a bheith i dtimpeallacht forbartha nó CI seachas in íomhá tháirgthe:

python -m pip install "gettext-tstrings[babel]"

Cá háit le dul ar aghaidh

Tosaigh anseo — ní ghlactar le haon taithí ar gettext:

  • Rang teagaisc — ó chomhadlann fholamh go haistriúchán Seapáinise atá ag rith, i gcúig chéim, gach ordú á thaispeáint lena aschur.
  • Cén fáth t-strings — an teachtaireacht chéanna scríofa ar cheithre bhealach, agus an rud a shíneann %(name)s, .format() agus $-strings chuig an gcatalóg.

Bain úsáid as — na tagairtí oibre:

  • Treoir — an API ag am rite: cén pointe iontrála le húsáid, iolraí, teangacha in aghaidh an iarratais, teaghráin iarchurtha, agus a tharlaíonn nuair a bhíonn catalóg mícheart.
  • Eastóscadh — an tagairt do pybabel: cumraíocht, ainmneacha feidhme saincheaptha, agus an chaoi a mbailíochtaíonn uirlisí atá ann cheana na catalóga seo saor in aisce.
  • I dtáirgeadh — an lúb mar a ritheann foireann í: an timthriall nuashonraithe, iontrálacha fuzzy, geataí CI, ardáin aistriúcháin, agus an seoladh.
  • Aistriú anonn — é seo a ghlacadh chugat i dtionscadal a bhfuil catalóga aige cheana, láithreán glaonna amháin sa turas.
  • D'aistritheoirí — leathanach amháin le tabhairt do cibé duine a chuireann na comhaid .po in eagar.

Tuig é — ón stair go dtí an cur i bhfeidhm:

  • Cúlra — cén fáth a bhfuil an leabharlann seo ann: tríocha bliain de gettext, dhá PEP, agus an plé sa leabharlann chaighdeánach a dúnadh gan freagra.
  • Gaistí — an rud a bhris aistriú an tsuímh seo go cúig theanga is tríocha i ndáiríre, agus cé acu leath is féidir le huirlis a cheapadh.
  • Conas a oibríonn sé — ó oibiacht teimpléid PEP 750 go dtí an teaghrán rindreáilte, agus na taiscí a fhágann go bhfuil an tseiceáil saor.

Tagairt — na conarthaí:

  • API — gach rud a easpórtálann an pacáiste, ar leathanach amháin.
  • Sonraíocht — an coinbhinsiún t-string ↔ msgid mar chonradh cobhsaí le leagan air, agus sraith comhréireachta inléite ag meaisín leis.

Stádas

Leagan an phacáiste 0.1.0a8
Cobhsaíocht an API alfa — d'fhéadfadh an API Python athrú fós
Sonraíocht v1, le sraith comhréireachta
Python 3.14 agus níos nuaí; tástáilte ar 3.14, 3.14t (saorshnáithithe), agus 3.15
Babel 2.18 nó níos nuaí, agus ach amháin san áit a ritheann pybabel
Spleáchais ama rite ceann ar bith — gettext na leabharlainne caighdeánaí
Formáid na catalóige POT, PO agus MO gnáth
Athruithe CHANGELOG

Alfa atá ann. Tá an conradh beag d'aon ghnó, agus is í an tsonraíocht an chuid chobhsaí de; d'fhéadfadh an API Python bogadh fós. Roimh eisiúint chobhsaí teastaíonn feisteáin teanga níos leithne, rianú feidhmíochta leanúnach, athbhreithniú API ó dhaoine a úsáideann gettext agus Babel i ndáiríre, agus tástáil chomhoiriúnachta ar gach eisiúint Python agus Babel a dtacaítear léi.

Tá fáilte roimh shaincheisteanna agus iarratais tarraingthe — is í an alfa díreach an tráth is fiú fós argóint a dhéanamh faoin gcomhéadan.

Bí páirteach sa phobal