Kezdőlap › Fórumok › Vegyes gondok › Magyar betűk
- This topic has 68 hozzászólás, 5 résztvevő, and was last updated 17 years, 5 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2008-01-25-15:25 #2151473
Mármint nem az awesome fordítására, hanem a freetype, fontconfig, stb.-re gondoltam.
2008-01-25-15:25 #2151474Mármint nem az awesome fordítására, hanem a freetype, fontconfig, stb.-re gondoltam.
2008-01-25-15:27 #2151475Vagy valami olyan hülye módon fordítottam valamit, hogy nem érti?
1) glibc-nek támogatnia kell (ez nálad megvan, hisz a többi sem menne)
2) a felhasznált függvénykönyvtáraknak is tudnia kell (pl. pango, vagy nem tudom, mit használ – itt már elképzelhető nálad a hiba… esetleg a konzolra ki is ír valamit)
3) a programnak, nem feltétlenül kell tudnia; ha ő kezeli a betűket (ekkor a (2) kieshet), akkor mindenképp; ha nem ő kezeli, akkor szerintem csak a „saját nyelve” nem lesz magyarDe legjobb, ha mindegyik szint támogatja… (a fordítás idején, nem utána*)
Hogy melyik programnál hogy kell ezt elérni – az különböző – az utasítás megmondja.
(Azt elfelejtettem hozzátenni, hogy vagy a programod nem támogatja, vagy a csak általa használt függőség… ill. a fordítás idején nem támogatta.)* tehát pl. leforgatod a glibc-t támogatás nélkül, majd a programot, majd a glibc-t támogatással, akkor sem fog menni.
2008-01-25-15:27 #2151476Vagy valami olyan hülye módon fordítottam valamit, hogy nem érti?
1) glibc-nek támogatnia kell (ez nálad megvan, hisz a többi sem menne)
2) a felhasznált függvénykönyvtáraknak is tudnia kell (pl. pango, vagy nem tudom, mit használ – itt már elképzelhető nálad a hiba… esetleg a konzolra ki is ír valamit)
3) a programnak, nem feltétlenül kell tudnia; ha ő kezeli a betűket (ekkor a (2) kieshet), akkor mindenképp; ha nem ő kezeli, akkor szerintem csak a „saját nyelve” nem lesz magyarDe legjobb, ha mindegyik szint támogatja… (a fordítás idején, nem utána*)
Hogy melyik programnál hogy kell ezt elérni – az különböző – az utasítás megmondja.
(Azt elfelejtettem hozzátenni, hogy vagy a programod nem támogatja, vagy a csak általa használt függőség… ill. a fordítás idején nem támogatta.)* tehát pl. leforgatod a glibc-t támogatás nélkül, majd a programot, majd a glibc-t támogatással, akkor sem fog menni.
2008-01-25-16:18 #2151477Ha minden igaz, akkor csak a cairo, fontconfig, freetype2, glibc, xorg-libs és zlib van használatban. Legalábbis a readelf szerint:
Code:$ readelf -d /bin/awesome | grep Shared
0x00000001 (NEEDED) Shared library: [libXft.so.2]
0x00000001 (NEEDED) Shared library: [libXrender.so.1]
0x00000001 (NEEDED) Shared library: [libfontconfig.so.1]
0x00000001 (NEEDED) Shared library: [libfreetype.so.6]
0x00000001 (NEEDED) Shared library: [libz.so.1]
0x00000001 (NEEDED) Shared library: [libX11.so.6]
0x00000001 (NEEDED) Shared library: [libcairo.so.2]
0x00000001 (NEEDED) Shared library: [libXrandr.so.2]
0x00000001 (NEEDED) Shared library: [libXinerama.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [libXext.so.6]Ezekből gondolom csak az xorg-libs-nek ill. a freetype2-nek lehet köze a fontokhoz. Őket viszont sok más, (e szempontból) jól működő progi használja. Vagy tévedek valahol?
2008-01-25-16:18 #2151478Ha minden igaz, akkor csak a cairo, fontconfig, freetype2, glibc, xorg-libs és zlib van használatban. Legalábbis a readelf szerint:
Code:$ readelf -d /bin/awesome | grep Shared
0x00000001 (NEEDED) Shared library: [libXft.so.2]
0x00000001 (NEEDED) Shared library: [libXrender.so.1]
0x00000001 (NEEDED) Shared library: [libfontconfig.so.1]
0x00000001 (NEEDED) Shared library: [libfreetype.so.6]
0x00000001 (NEEDED) Shared library: [libz.so.1]
0x00000001 (NEEDED) Shared library: [libX11.so.6]
0x00000001 (NEEDED) Shared library: [libcairo.so.2]
0x00000001 (NEEDED) Shared library: [libXrandr.so.2]
0x00000001 (NEEDED) Shared library: [libXinerama.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [libXext.so.6]Ezekből gondolom csak az xorg-libs-nek ill. a freetype2-nek lehet köze a fontokhoz. Őket viszont sok más, (e szempontból) jól működő progi használja. Vagy tévedek valahol?
2008-01-25-17:03 #2151479Code:$ readelf -d /bin/awesome | grep Shared
0x00000001 (NEEDED) Shared library: [libXft.so.2] – x freetype interface lib. (valószínű kell)
0x00000001 (NEEDED) Shared library: [libXrender.so.1] – talán ennek nem
0x00000001 (NEEDED) Shared library: [libfontconfig.so.1] – (talán nem)
0x00000001 (NEEDED) Shared library: [libfreetype.so.6] – (valószínű igen)
0x00000001 (NEEDED) Shared library: [libz.so.1] – tömörítés
0x00000001 (NEEDED) Shared library: [libX11.so.6] – x11 (gondolom ennek kell támogatnia)
0x00000001 (NEEDED) Shared library: [libcairo.so.2] – cairo graph. (ez éppen tud textet)
0x00000001 (NEEDED) Shared library: [libXrandr.so.2] – resize & rotate (biztos, hogy nem)
0x00000001 (NEEDED) Shared library: [libXinerama.so.1] – kiterjesztés több képernyőre (ez sem)
0x00000001 (NEEDED) Shared library: [libc.so.6] – c (ez nagyon kell)
0x00000001 (NEEDED) Shared library: [libXext.so.6] x ext. lib. (talán ez sem, de ez is az x11/xserver része)A caironak, persze megint vannak függőségei.
2008-01-25-17:03 #2151480Code:$ readelf -d /bin/awesome | grep Shared
0x00000001 (NEEDED) Shared library: [libXft.so.2] – x freetype interface lib. (valószínű kell)
0x00000001 (NEEDED) Shared library: [libXrender.so.1] – talán ennek nem
0x00000001 (NEEDED) Shared library: [libfontconfig.so.1] – (talán nem)
0x00000001 (NEEDED) Shared library: [libfreetype.so.6] – (valószínű igen)
0x00000001 (NEEDED) Shared library: [libz.so.1] – tömörítés
0x00000001 (NEEDED) Shared library: [libX11.so.6] – x11 (gondolom ennek kell támogatnia)
0x00000001 (NEEDED) Shared library: [libcairo.so.2] – cairo graph. (ez éppen tud textet)
0x00000001 (NEEDED) Shared library: [libXrandr.so.2] – resize & rotate (biztos, hogy nem)
0x00000001 (NEEDED) Shared library: [libXinerama.so.1] – kiterjesztés több képernyőre (ez sem)
0x00000001 (NEEDED) Shared library: [libc.so.6] – c (ez nagyon kell)
0x00000001 (NEEDED) Shared library: [libXext.so.6] x ext. lib. (talán ez sem, de ez is az x11/xserver része)A caironak, persze megint vannak függőségei.
2008-01-25-18:04 #2151481Na, szóval azt csináltam, hogy a widgets/textbox.c fájlt egy kicsit módosítottam.
Van ott még a legelején egy függvény, aminek textbox_draw a neve.
Kezdetben:Code:typedef struct
{
char *text;
int width;
Alignment align;
XColor fg;
XColor bg;
} Data;static int
textbox_draw(Widget *widget, DrawCtx *ctx, int offset,
int used __attribute__ ((unused)))
{
Data *d = widget->data;if(d->width)
widget->area.width = d->width;
else
widget->area.width = draw_textwidth(widget->font, d->text);widget->area.height = widget->statusbar->height;
if(!widget->user_supplied_x)
widget->area.x = widget_calculate_offset(widget->statusbar->width,
widget->area.width,
offset,
widget->alignment);
if(!widget->user_supplied_y)
widget->area.y = 0;if (d->text != NULL) {printf(„%sn”,d->text);}
draw_text(ctx, widget->area.x, widget->area.y, widget->area.width,
widget->statusbar->height, d->align, 0, widget->font,
d->text, d->fg, d->bg);return widget->area.width;
}Az „új”:
Code:typedef struct
{
char *text;
int width;
Alignment align;
XColor fg;
XColor bg;
} Data;static int
textbox_draw(Widget *widget, DrawCtx *ctx, int offset,
int used __attribute__ ((unused)))
{
Data *d = widget->data;if(d->width)
widget->area.width = d->width;
else
widget->area.width = draw_textwidth(widget->font, d->text);widget->area.height = widget->statusbar->height;
if(!widget->user_supplied_x)
widget->area.x = widget_calculate_offset(widget->statusbar->width,
widget->area.width,
offset,
widget->alignment);
if(!widget->user_supplied_y)
widget->area.y = 0;——>>>>> if (d->text != NULL) {printf(„%sn”,d->text);} <<<<<area.x, widget->area.y, widget->area.width,
widget->statusbar->height, d->align, 0, widget->font,
d->text, d->fg, d->bg);return widget->area.width;
}Tehát lényegében a d->text értékét (ami a szöveget hordozza) kinyomom az sdtout-ra. Lefordítom, startx &>X.log módon indítom.
Kiadom az echo … álom | awesome-client parancsot. Majd terminálon:Code:$ grep lom X.log
álom
álom
álom
álomTehát a tanulság: ő még jól megkapja.
Nem vagyok egy nagy C-programozó (de azért az elhatározás megvan, hogy egyszer jobb leszek), de ha jól sejtem, akkor most a draw_text-et kellene szemügyre venni…2008-01-25-18:04 #2151482Na, szóval azt csináltam, hogy a widgets/textbox.c fájlt egy kicsit módosítottam.
Van ott még a legelején egy függvény, aminek textbox_draw a neve.
Kezdetben:Code:typedef struct
{
char *text;
int width;
Alignment align;
XColor fg;
XColor bg;
} Data;static int
textbox_draw(Widget *widget, DrawCtx *ctx, int offset,
int used __attribute__ ((unused)))
{
Data *d = widget->data;if(d->width)
widget->area.width = d->width;
else
widget->area.width = draw_textwidth(widget->font, d->text);widget->area.height = widget->statusbar->height;
if(!widget->user_supplied_x)
widget->area.x = widget_calculate_offset(widget->statusbar->width,
widget->area.width,
offset,
widget->alignment);
if(!widget->user_supplied_y)
widget->area.y = 0;if (d->text != NULL) {printf(„%sn”,d->text);}
draw_text(ctx, widget->area.x, widget->area.y, widget->area.width,
widget->statusbar->height, d->align, 0, widget->font,
d->text, d->fg, d->bg);return widget->area.width;
}Az „új”:
Code:typedef struct
{
char *text;
int width;
Alignment align;
XColor fg;
XColor bg;
} Data;static int
textbox_draw(Widget *widget, DrawCtx *ctx, int offset,
int used __attribute__ ((unused)))
{
Data *d = widget->data;if(d->width)
widget->area.width = d->width;
else
widget->area.width = draw_textwidth(widget->font, d->text);widget->area.height = widget->statusbar->height;
if(!widget->user_supplied_x)
widget->area.x = widget_calculate_offset(widget->statusbar->width,
widget->area.width,
offset,
widget->alignment);
if(!widget->user_supplied_y)
widget->area.y = 0;——>>>>> if (d->text != NULL) {printf(„%sn”,d->text);} <<<<<area.x, widget->area.y, widget->area.width,
widget->statusbar->height, d->align, 0, widget->font,
d->text, d->fg, d->bg);return widget->area.width;
}Tehát lényegében a d->text értékét (ami a szöveget hordozza) kinyomom az sdtout-ra. Lefordítom, startx &>X.log módon indítom.
Kiadom az echo … álom | awesome-client parancsot. Majd terminálon:Code:$ grep lom X.log
álom
álom
álom
álomTehát a tanulság: ő még jól megkapja.
Nem vagyok egy nagy C-programozó (de azért az elhatározás megvan, hogy egyszer jobb leszek), de ha jól sejtem, akkor most a draw_text-et kellene szemügyre venni… -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz