valós cimke alapú gettext

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 thoughts on “valós cimke alapú gettext

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

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.