# Krzaczki w polskich manualach

## grzeslaw

Witam

Na początku jak zainstalowałem gentoo pokusiłem się na ujednolicenie uniwersalnego kodowania w systemie jakim jest UTF-8. Niestety nie zakończyło się to tak jak chciałem, tj. nie działały PL manuale - wyskakiwały krzaczki. Googlałem i googlałem cóż to może być, jednak bezskutecznie. W końcu ruszyłem na polski kanal gentoo  :Wink:  -tam pewne osoby poinformowały mnie, iz nie ma możliwości korzystania z UTF'a oraz pl - manuali jednocześnie: w zw. z tym zapragnałem powrócić do poprzedniego kodowania (jak przypuszczam iso8859-2). W zw. z tym dokonałem modyfikacji powrotnych, kierując sie wityrną: http://www.gentoo.org/doc/pl/utf-8.xml Niestety po wykonaniu tych czynności, cały czas fonty są zakrzaczone ;(

Oto pliki koniguracyjne, które myślę mogą miec na to wpływ:

```

homelinux ~ # cat /etc/man.conf |grep NROFF |grep -v '^#'

NROFF           /usr/bin/nroff -Tascii -c -mandoc

JNROFF          /usr/bin/groff -Tnippon -mandocj

homelinux ~ #   

homelinux ~ # cat /etc/make.conf |grep -i linguas

LINGUAS="pl"

homelinux ~ # cat /etc/rc.conf  |grep -i unicode |grep -v "^#"

UNICODE="no"

homelinux ~ # cat /etc/locale.gen|grep -v '^#'

en_US ISO-8859-1

pl_PL ISO-8859-2

homelinux ~ # cat /etc/conf.d/keymaps|grep -i keymap|grep -v '^#'

KEYMAP="pl"

EXTENDED_KEYMAPS=""

homelinux ~ #  

homelinux ~ # cat /etc/conf.d/consolefont |grep -v '^#'

CONSOLEFONT="lat2-16"

homelinux ~ #

homelinux ~ # locale

LANG=pl_PL

LC_CTYPE="pl_PL"

LC_NUMERIC="pl_PL"

LC_TIME="pl_PL"

LC_COLLATE="pl_PL"

LC_MONETARY="pl_PL"

LC_MESSAGES="pl_PL"

LC_PAPER="pl_PL"

LC_NAME="pl_PL"

LC_ADDRESS="pl_PL"

LC_TELEPHONE="pl_PL"

LC_MEASUREMENT="pl_PL"

LC_IDENTIFICATION="pl_PL"

LC_ALL=pl_PL

homelinux ~ #

homelinux ~ # env-update

>>> Regenerating /etc/ld.so.cache...

homelinux ~ #    

```

Czy może o czymś zapomniałem ? (system restartowałem)

----------

## przemos

 *grzeslaw wrote:*   

> ...tam pewne osoby poinformowały mnie, iz nie ma możliwości korzystania z UTF'a oraz pl - manuali jednocześnie...

 

A który to taki mądry, że podzielił się z tobą takim stwierdzeniem?

Da się.

http://www.haible.de/bruno/packages-groff-utf8.html

Poszukaj na forum, jakiś czas temu było to już. Jakbym znalazł dam znać.

A tak wogóle postaram się po powrocie z pracy wrzucić instrukcje co i jak, chyba że ktoś mnie uprzedzi.

----------

## lsdudi

poszukaj tej sekcji w /etc/man.con

```
TROFF           /usr/bin/groff -Tps -mandoc

NROFF           /usr/bin/nroff -Tlatin1 -c -mandoc

JNROFF          /usr/bin/groff -Tnippon -mandocj

EQN             /usr/bin/geqn -Tps

NEQN            /usr/bin/geqn -Tlatin1

JNEQN           /usr/bin/geqn -Tnippon

TBL             /usr/bin/gtbl

```

u ciebie zamist -Tlaltin1 powiiny być -Tascii

zmień tak jak widzisz u mnie i powinny byc polskie literki w manualach

[dotyczy iso-8859-2]

----------

## przemos

Polskie ogonki w manualach w systemie z UTF-8:

Ebuild groff-utf8-1.0.ebuild

```

# Copyright 1999-2006 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: $

inherit eutils

DESCRIPTION="Groff workaround to get utf manpages working"

HOMEPAGE="http://www.haible.de/bruno/packages-groff-utf8.html"

SRC_URI="http://www.haible.de/bruno/gnu/groff-utf8.tar.gz"

LICENSE="GPL-2"

SLOT="0"

KEYWORDS="~x86 ~amd64"

IUSE=""

RDEPEND=">=sys-apps/groff-1.18.1"

src_unpack() {

   unpack ${A}

}

src_compile() {

   cd $WORKDIR/groff-utf8

   make || die

}

src_install() {

   cd $WORKDIR/groff-utf8

   make PREFIX=${D}/usr/ install || die 

}

pkg_postinst() {

   echo

   einfo "To get utf-8 encoded manuals working, change those lines in /etc/man.conf"

   einfo "TROFF      /usr/bin/groff -Tps -mandoc"

   einfo "NROFF      /usr/bin/nroff -Tascii -c -mandoc"

   einfo "to:"

   einfo "TROFF      /usr/bin/groff-utf8"

   einfo "NROFF      /usr/bin/groff-utf8 -Tutf8 -c -mandoc"

   echo

   einfo "Also put LESSCHARSET="utf-8" in /etc/env.d/70less"

   einfo "Don't forget to run env-update && source /etc/profile"

   echo

}

```

Po skompilowaniu należy podążać za instrukcjami:

```

 * To get utf-8 encoded manuals working, change those lines in /etc/man.conf

 * TROFF      /usr/bin/groff -Tps -mandoc

 * NROFF      /usr/bin/nroff -Tascii -c -mandoc

 * to:

 * TROFF      /usr/bin/groff-utf8

 * NROFF      /usr/bin/groff-utf8 -Tutf8 -c -mandoc

 * Also put LESSCHARSET=utf-8 in /etc/env.d/70less

 * Don't forget to run env-update && source /etc/profile

```

----------

## unK

A żeby mieć wszystkie manuale w utf-8, trzeba sobie zemergować man-pages-pl używając tego ebuildu:

man-pages-pl-20070126-r1.ebuild

```
# Copyright 1999-2007 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/app-i18n/man-pages-pl/man-pages-pl-20070126.ebuild,v 1.2 2007/06/21 19:05:50 spock Exp $

DESCRIPTION="A collection of Polish translations of Linux manual pages."

HOMEPAGE="http://ptm.linux.pl/"

SRC_URI="http://ptm.linux.pl/man-PL${PV:6:2}-${PV:4:2}-${PV:0:4}.tar.gz"

LICENSE="GPL-2"

SLOT="0"

KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"

IUSE="unicode"

RDEPEND=""

DEPEND=""

S=${WORKDIR}/pl_PL

src_unpack() {

   unpack ${A}

   cd ${S}

   # missing manpages

   sed -i -e '/\tpasswd.1/ d' man1/Makefile.am

   # manpages provided by other packages

   mans="gendiff.1 groups.1 apropos.1 man.1 su.1 newgrp.1 whatis.1 gpasswd.1 chsh.1 \

         chfn.1 limits.5 login.1 expiry.1 porttime.5 lastlog.8 faillog.8 logoutd.8 \

         rpm.8 rpmdeps.8 rpmbuild.8 rpmcache.8 rpmgraph.8 rpm2cpio.8 evim.1 vim.1 \

         vimdiff.1 vimtutor.1 ex.1 rview.1 rvim.1 view.1 suauth.5 mc.1"

   for page in ${mans} ; do

      sed -i -e "/\\t${page}/ d" man${page: -1}/Makefile.am

   done

}

src_compile() {

   mkdir latin2

   for i in man*; do

      cd $i

      for j in *; do cp $j ../latin2; done

      cd ..

   done &>/dev/null

   rm latin2/Makefile.am* latin2/scp.1.com

   if use unicode ; then

      mkdir utf8

      cd latin2

      for i in *; do

         cat $i | iconv -f iso-8859-2 -t utf8 > ../utf8/$i

      done

   fi

}

src_install() {

   if use unicode ; then 

      doman -i18n=pl_PL.UTF-8 utf8/*

   else

      doman -i18n=pl latin2/*

   fi

   dodoc AUTHORS ChangeLog FAQ NEWS README TODO

}

```

----------

## przemos

 *unK wrote:*   

> A żeby mieć wszystkie manuale w utf-8, trzeba sobie zemergować man-pages-pl używając tego ebuildu:
> 
> man-pages-pl-20070126-r1.ebuild
> 
> ...
> ...

 

???

Dlaczego uważasz, że trzeba akurat tego ebuildu użyć? Przecież w portage jest oficjalny pakiet app-i18n/man-pages-pl, który działa bezproblemowo.

..::Milu: ort!!!

----------

## arek.k

 *przemos wrote:*   

> A który to taki mądry, że podzielił się z tobą takim stwierdzeniem?

 

No tak szczerze mówiąc, to na oficjalnych ebuildach chyba rzeczywiście nie jest to możliwe.

 *przemos wrote:*   

>  *unK wrote:*   A żeby mieć wszystkie manuale w utf-8, trzeba sobie zemergować man-pages-pl używając tego ebuildu:
> 
> man-pages-pl-20070126-r1.ebuild
> 
> ...
> ...

 

Z tego co widzę, to jest to (w miarę) normalny ebuild dla polskich manuali z dorzuconymi linijkami konwersji plików manuali z latin2 na utf8 (więc może nie jest to najgorsze rozwiązanie, chociaż osobiście nie sprawdzałem).

----------

## unK

 *przemos wrote:*   

> Dlaczego uważasz, że trzeba akurat tego ebuildu użyć? Przecierz w portage jest oficjalny pakiet app-i18n/man-pages-pl, który działa bezproblemowo.

 

W tym pakiecie wszystkie manuale są w iso-8859-2, więc jak mogą poprawnie działać? Dopiero ten ebuild, który podałem wyżej konwertuje je na utf-8. Używając man-pages-pl z portage mam krzaki np. w man bash, man fs etc.

----------

## przemos

 *unK wrote:*   

>  *przemos wrote:*   Dlaczego uważasz, że trzeba akurat tego ebuildu użyć? Przecierz w portage jest oficjalny pakiet app-i18n/man-pages-pl, który działa bezproblemowo. 
> 
> W tym pakiecie wszystkie manuale są w iso-8859-2, więc jak mogą poprawnie działać? Dopiero ten ebuild, który podałem wyżej konwertuje je na utf-8. Używając man-pages-pl z portage mam krzaki np. w man bash, man fs etc.

 

Mój błąd - oczywiście masz rację. Bez tej linijki się nie obejdzie:

```

    if use unicode ; then

        doman -i18n=pl_PL.UTF-8 utf8/*

    else

        doman -i18n=pl latin2/*

    fi

```

Źle spojrzałem szukając jaki pakiet mam u siebie zainstalowany.

----------

## argasek

Temat wraca ciągle jak bumerang i ciągle widzę jakieś kosmiczne rozwiązania, typu podane powyżej ebuildy (które pewnie działają). Zacznijmy od tego, że:

1) manpages-pl są kodowane w ISO-8859-2 (co już zostało zauważone)

2) ...z wyjątkiem stron man, które należą do Portage, które to są w UTF-8 (ukłon dla twórców dystrybucji za spójność :])

3) i mamy system w UTF-8.

Moje rozwiązanie:

Ad 1) instalujemy i robimy sobie dobrze za pomocą wpisu

```

NROFF           /usr/bin/nroff -mlatin2 -c -mandoc

```

w /etc/man.conf

Ad 2) iconv naszym przyjacielem jest -- napisałem sobie do tego skrypt, rozwiązanie dość toporne (trzeba aktualizować po każdym update portage), ale skuteczne...

Ad 3) ...i mamy polskie ogonki w man.

----------

## kurak

Jak wiele jest ludzi tak dużo jest rozwiązań, ale u mnie wystarczyło ustawić 

```
NROFF           /usr/bin/nroff -Tascii -c -mandoc 
```

 bo locale już miałem  :Smile: 

Pozdrawiam   :Laughing: 

----------

## Arfrever

 *argasek wrote:*   

> 2) ...z wyjątkiem stron man, które należą do Portage, które to są w UTF-8 (ukłon dla twórców dystrybucji za spójność :])

 

Manuale Portage'u są w obu wersjach. Wystarczy podać dokładny adres pliku lub ustawić inne LC_ALL w linii poleceń.

Przykładowo zamiast:

```
man emerge
```

Można użyć:

```
LC_ALL=pl_PL man emerge

LC_ALL=pl_PL.UTF-8 man emerge

man /usr/share/man/pl/man1/emerge.1.bz2

man /usr/share/man/pl_PL.UTF-8/man1/emerge.1.bz2
```

Perduodu linkėjimus

Arfrever

----------

## argasek

@Arfrever: cenna uwaga.  :Smile: 

----------

## sebas86

 *Arfrever wrote:*   

> Można użyć:
> 
> ```
> LC_ALL=pl_PL man emerge
> 
> ...

 

Dzięki wielkie, męczyłem się jakiś czas z tym a okazało się, że miałem źle locale ustawione (pl_PL.UTF8 zamiast pl_PL.UTF-8  :Mad: ), aż dziw, że w systemie wszystko poprawnie chodziło.  :Smile: 

----------

## grzeslaw

przemos - zainstalowalem paczke z tego linku co podałeś, równiez nie hula 

lsdudi - tak też zmienaiłem i lipa 

argasek - no już lepiej bo krzaków nie ma  :Wink:  ale w miejsce pl fontow nie ma nic

 Arfrever - zadenz  tych twoich przykladow uzycia manuali nie przyniosl mi pozytywnych efektow 

coś mnie gentoo nie lubi chyba albo coś źle robie  :Wink: 

a ten ebuild co podał unk, coś mi nie działa, albo źle instaluje:

```

homelinux man-pages-pl # emerge man-pages-pl-20070126-r1.ebuild

emerging by path implies --oneshot... adding --oneshot to options.

*** emerging by path is broken and may not always work!!!

Calculating dependencies -!!! A file is not listed in the Manifest: '/usr/portage/app-i18n/man-pages-pl/man-pages-pl-20070126-r1.ebuild'

*** You are emerging a masked package. It is MUCH better to use

*** /etc/portage/package.* to accomplish this. See portage(5) man

*** page for details.

>>> Waiting 10 seconds before starting...

>>> (Control-C to abort)...

Continuing... in: 10 9 8 7 6 5 4 3 2 1

 \!!! A file is not listed in the Manifest: '/usr/portage/app-i18n/man-pages-pl/man-pages-pl-20070126-r1.ebuild'

Traceback (most recent call last):

  File "/usr/bin/emerge", line 5530, in ?

    retval = emerge_main()

  File "/usr/bin/emerge", line 5525, in emerge_main

    myopts, myaction, myfiles, spinner)

  File "/usr/bin/emerge", line 4853, in action_build

    retval, favorites = mydepgraph.select_files(myfiles)

  File "/usr/bin/emerge", line 1340, in select_files

    None, "--onlydeps" not in self.myopts):

  File "/usr/bin/emerge", line 1094, in create

    self.pkgsettings[myroot].setcpv(mykey, mydb=portdb)

  File "/usr/lib/portage/pym/portage.py", line 1682, in setcpv

    pkginternaluse = " ".join([x[1:] \

  File "/usr/lib/portage/pym/portage.py", line 5889, in aux_get

    raise KeyError(mycpv)

KeyError: 'app-i18n/man-pages-pl-20070126-r1'

homelinux man-pages-pl # pwd

/usr/portage/app-i18n/man-pages-pl

homelinux man-pages-pl #     

```

wiem pewnie jakiś mega głupi błąd popełniam, pewnie się obśmiejecie ostro - no ale fakt n00b w gento ostry jestem i sie przyznaje [; Ciągle pracuje na innych nie source-based systemach w pracy, a w domu tylko sie pokusiłem na gentoo, no ale bym to z wileką chęcią ogarnął, tak więc za wszelkie cenne uwagi/sugestie/propozucje rozwiązań wielkie dzienki

Pozdr.

----------

## mirekm

A spróbuj w man.conf zrobić coś takiego:

```

TROFF      /usr/bin/groff -Tps -mandoc

NROFF      /usr/bin/nroff -mlatin2 -Tutf8 -c -mandoc

JNROFF      /usr/bin/groff -Tnippon -mandocj

EQN      /usr/bin/geqn -Tps

NEQN      /usr/bin/geqn -Tlatin1

JNEQN      /usr/bin/geqn -Tnippon

TBL      /usr/bin/gtbl

# COL      /usr/bin/col

REFER      /usr/bin/refer

PIC      /usr/bin/pic

```

Linijka z NROFF

----------

## grzeslaw

też źle. Tym razem pokazują się w miejsce pl fontow dwucyfrowe liczby w nawiasach ostrych hehe  :Wink: 

----------

## lsdudi

@grzeslaw

ja pdałem dla iso nie dla utf ale z tego co piszesz to wyglada ze zrobiłes wszystko na raz a to nigdy nie zadziała

----------

## sebas86

 *grzeslaw wrote:*   

> coś mnie gentoo nie lubi chyba albo coś źle robie 
> 
> a ten ebuild co podał unk, coś mi nie działa, albo źle instaluje:
> 
> ```
> ...

 

Wyliczyłeś wszystkie sumy kontrolne dla tego ebuilda? Wrzuć go do jakiegoś katalogu i daj komendę:

```
ebuild man-pages-pl-20070126-r1.ebuild digest
```

potem już normalnie emerge, chociaż dobrze byłoby gdybyś zrobił sobie dodatkowe drzewko ze swoimi pakietami i tam umieścił ebuilda. Inaczej (jeśli nie zablokujesz aktualizacji tego pakietu) przy aktualizacjach emerge będzie Ci wracał do starej wersji.

----------

## Arfrever

Jeśli używasz UTF-8, to proponuję użycie nowszego Groffu i poprawionego "man-pages-pl" dostępnych tutaj.

Perduodu linkėjimus

Arfrever

----------

## Spaulding

proponuje: http://slackpl.one.pl/blog/index.php/2007/08/21/polskie-krzaczki-w-manualach-na-utf-8/

----------

## alfar

z pewnością należy mi się chłosta za to rozwiązanie, ale tymczasowo u siebie zmieniłem nazwę folderu '/usr/share/man/pl_PL.UTF-8', i teraz domyślnie informacje do wyświetlenia pobierane są z '/usr/share/man/pl', co przy ustawieniu w '/etc/man.conf' linijki z NROFF na 'NROFF		/usr/bin/nroff -mlatin2 -c -Tutf8 -mandoc' daje mi pożądany przeze mnie efekt  :Smile: 

Byłoby lepiej, gdyby można było nadać odpowiednie priorytety ścieżkom pobierania informacji dla man, ale nie wiem gdzie to można zrobić.

----------

