Jun15th

valós cimke alapú gettext

by  connor

Egy ideje már gondolkodom, hogyan lehetne 0 erőforrástöbblettel megoldani azt, hogy ténylegesen címkék kerüljenek a msgid-k helyére. Erre egyébként azért van szükség, hogy feloldható legyen a szavak más kontextusban való másként fordítása, pl: Search Keresés Kereső (amire a domain tökéletes lenne, csak hát ahhoz többet kéne programozni…).
Ha a problémát onnan közelítjük meg, hogy a gettext-be kéne beépíteni egy nyelvi fallback mechanizmust akkor szerintem soha nem lenne meg, viszont ha a po fájlok generálásakor és a sablongeneráláskor változtatunk az eddig bevett szokáson akkor talán szélesebb körben is nagyobb elfogadásra találna a megoldás. (működő kódok, minták és promó tömkelegével)
Az ötlet a következő:

  • msgidben csak A-Z\_\- karakterek szerepelhetnének
  • a programban meg kéne adni az initltools számára egy fallback nyelvet (pl en_US). Esetleg a fejlécben egy plusz mező.
  • sablon generálásakor létrejön az üres fájl amit a fejlesztő feltölt a felületen megjelenő nyelvi szövegekkel
  • Új nyelv hozzáadásakor a fallback nyelv msgid-k alapján a fallback nyelvből feltölti az új nyelv msgstr-jeit, hogy a felületen a fordítatlan szövegek helyén angol szöveg jelenjen meg.

Ehhez a megoldáshoz még a felületet fordító programokat se kéne módosítani. (persze pár funkciót be kéne építeni)
Megoldatlan probléma a fallback nyelvben a msgstr módosításakor hogyan vezetjük át a többi nyelvbe, hogy módosult a szöveg (msgid elévülés). Esetleg a megjegyzésben el lehetne helyezni egy időbélyeget, melyeket összevetve lehetne kilistázni azokat amik módosultak.

Működő kódok, shell scriptek hamarosan…

 

7 Responses to valós cimke alapú gettext

  1. 10 years ago by Sianis

    Hali!

    msgctxt nem azért van, hogy megoldja az azonos msgid, de eltérő kontextus problémát?

    Vagy félreértem azt, amit akarsz?


  2. 10 years ago by connor

    Program oldalról hogyan adsz meg kontextust?



  3. 10 years ago by kelemeng

    Né, eltűnt a kommentem, pedig…
    És valóban, a pgettext után nem látom ennek szükségességét.


  4. 10 years ago by connor

    Én csak azt nem értem hogy miért nem használják akkor?

    Mondjuk talán ezért:
    http://www.gnu.org/software/autoconf/manual/gettext/xgettext-Invocation.html

    “The default keyword specifications…” alatti felsorolás. Gyak. c és java a kettő nyelv ahol implementálva van.


  5. 10 years ago by connor

    Másik érdekesség:
    ./NEWS: – The (non-public) include file gettext.h defines macros pgettext, dpgettext

    Szóval azért elég sok kérdést támaszt ez a pgettext.
    De jónak tűnik.


  6. 10 years ago by maat

    Azért lenne jó ez a módszer, hogy ne kelljen már újrafordítani/átnézni a szöveget, ha a fejlesztő javít egy vesszőhibát.


 

Leave a Reply

Your email address will not be published. Required fields are marked *