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…
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?
Program oldalról hogyan adsz meg kontextust?
http://gnuweb.kookel.org/software/autoconf/manual/gettext/Contexts.html
Né, eltűnt a kommentem, pedig…
És valóban, a pgettext után nem látom ennek szükségességét.
É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.
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.
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.