Magyar betűk

Kezdőlap Fórumok Vegyes gondok Magyar betűk

10 bejegyzés megtekintése - 31-40 / 69
  • Szerző
    Bejegyzés
  • #2151473
    uzsolt
    Felhasználó

      Mármint nem az awesome fordítására, hanem a freetype, fontconfig, stb.-re gondoltam.

      #2151474
      uzsolt
      Felhasználó

        Mármint nem az awesome fordítására, hanem a freetype, fontconfig, stb.-re gondoltam.

        #2151475
        pointux
        Felhasználó

          Vagy 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 magyar

          De 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.

          #2151476
          pointux
          Felhasználó

            Vagy 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 magyar

            De 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.

            #2151477
            uzsolt
            Felhasználó

              Ha 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?

              #2151478
              uzsolt
              Felhasználó

                Ha 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?

                #2151479
                pointux
                Felhasználó
                  Code:
                  $ 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.

                  #2151480
                  pointux
                  Felhasználó
                    Code:
                    $ 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.

                    #2151481
                    uzsolt
                    Felhasználó

                      Na, 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
                      álom

                      Tehá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…

                      #2151482
                      uzsolt
                      Felhasználó

                        Na, 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
                        álom

                        Tehá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…

                      10 bejegyzés megtekintése - 31-40 / 69
                      • Be kell jelentkezni a hozzászóláshoz.