Portál AbcLinuxu, 12. května 2025 05:36
Zdravím,
mám následující problém. Ve svém programu používám pro překlad gettext. Ale samozřejmě při překladu do češtiny nastane problém se skloňováním a dvojsmysly, kdy je třeba jednu a tutéž věc přeložit jinak. Jak se s tím dá vypořádat?
V manuálu ke gettextu píší, abych to nějak obešel, ale to není možné, protože ty řetězce jsou proložené proměnnými, takže někdy mi jako řetězec k přeložení zbyde jenom předložka "to". To ale potřebuji přeložit jednou jako "k" a podruhé jako "do".
Co s tím? Díky.
P.S. Používám Python, ale to asi není podstatné. Rád bych překlad dělal v Poeditu.
Za prvé je dobré nechat překládat celé věty (tj. nechat postavit větu gettextem a ne explicitním kódem, např. printf(_("converting %s to %s"), src, dst);
namísto verb="converting"; printf(_("%s "%s to %s"), verb, src, dst);
Za druhé to, co potřebujete, se nazývá kontext a v gettextu je na to to funkce pgettext(). Např. printf(pgettext("conversion"), "%s to %s"), src, dst); printf(pgettext("save"), "%s to %s"), src, dst);
vytvoří v katalogu dva záznamy se stejným msgid, ale rozlišené kontextem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.