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. 9 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. 9 years ago by connor

    Program oldalról hogyan adsz meg kontextust?



  3. 9 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. 9 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. 9 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. 9 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 *