Portál AbcLinuxu, 9. května 2025 23:43
Zdravim,
rad bych se poptal jak spravovat/pouzivat resourcy v c/c++ projektech. Jedine co me napadlo je pri prekladu nakopirovat tyto resourcy do ciloveho mista prekladu a pak je loadovat zadanim relativni cesty. Je to tak spravne?
Druha cast dotazu je souvisejici, jaky pouzit framework pro spravu lokalizacnich resourcu, abych znovu nevynalezal kolo.
Diky bardolf
Ukázka l10n1-program.c
:
#include <locale.h>
#include <libintl.h>
#define PACKAGE "l10n1-program"
#define LOCALEDIR "/usr/share/locale"
#define _(str) gettext(str)
int main(void) {
setlocale(LC_ALL,"");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
printf(_("Hello World.\n"));
printf(_("Dir: %s\n"), LOCALEDIR);
exit(0);
}
U céčkových programů hledá implicitně xgettext ve zdrojovém kódu klíčové slovo gettext
, ale my používáme kratší _
.
$ xgettext --keyword=_ l10n1-program.c -o l10n1-program.po
$ vim l10n1-program.po
$ msgfmt l10n1-program.po -o l10n1-program.mo
# cp ./l10n1-program.mo /usr/share/locale/cs/LC_MESSAGES/l10n1-program.mo
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.