Portál AbcLinuxu, 18. července 2025 06:59
#ifdef HAVE_LOCALE_H gchar sep = locale_information->thousands_sep[0]; out[j] = sep!='\0' ? sep : ','; #else out[j] = ','; #endifCo presne znamena ten radek nad #else ? Pri nastaveni locale na cestinu se totiz misto mezery jako oddelovace tisicu ukazuje otaznik. Dale v debug vystupu v terminalu se ukazuje:
Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()Pritom vypis locale -k LC_NUMERIC pro cestinu je:
decimal_point="," thousands_sep=" " grouping=3;3 numeric-decimal-point-wc=44 numeric-thousands-sep-wc=160 numeric-codeset="UTF-8"Pro ostatni jazyky zmena oddelovace funguje v poradku (nemcina - tecka, anglictina - carka). Diky za pomoc
Co presne znamena ten radek nad #else ?Pokud je v locale definován oddělovač, tak ho použij, jinak použij ','.
LC_NUMERIC decimal_point "<U002C>" thousands_sep "<U00A0>" grouping 3;3 END LC_NUMERIC
/usr/share/i18n/locales/cs_CZzmenit radky:
thousands_sep "<U00A0>"na
thousands_sep "<U0020>"A pote spustit:
localedef -i cs_CZ -f "UTF-8" 'cs_CZ.UTF-8'Plati pro FC6.
echo -e "12\xC2\xA0345" | pango-view /dev/stdin echo -e "12\xC2345" | pango-view /dev/stdin
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.