og endnu et der viser hvordan kbabel skal indstilles
Det er svært at vedligeholde en netside med denne slags oplysninger da udviklingen går utroligt hurtig. Jeg vil give et øjebliksbillede set fra kde perspektiv. I øvrigt findes den danske udgave af kbabel-håndbogen nu på Gnu Skolens server
cvs -z4 -q
diff -u3 -p
update -dP
checkout -P
Nu skal vi have de gamle po- og pot-filer hentet hjem. På en kommandolinje skriver du, i bash:
CVSROOT=:pserver:anonymous@anoncvs.kde.org:/home/kde
export CVSROOT
eller i csh:
setenv CVSROOT=:pserver:anonymous@anoncvs.kde.org:/home/kde
derefter cvs login, og return når du bliver bedt om passwd.
Nu skriver du
cvs co kde-i18n/da/messages
hvilket henter alle po-filerne fra kde hjem. Der oprettes en mappe, kde-i18n/da/messages med undermapper med alle po-filerne. Derpå skriver du
cvs co kde-i18n/templates
hvilket henter alle pot-filerne fra kde hjem. Når du så indstiller kbabel til at pege på din mappe med po-filer respektive potfiler vil du kunne se hvad der mangler at blive oversat ved hjælp af kataloghåndteringen.
Du kunne også hente alle filerne med danske kde-oversættelser hjem fra http://i18n.kde.org/translation_archive/kde-i18n-da.tar.bz2
Det er nu klogt at oprette en database af oversættelser. I kbabel vælger du Opsætning -> Indstil ordbog -> Oversættelsesdatabase. Du vælger fanebladet Database -> Skan mappe og undermapper -> og peger på mappen ../kde-i18n/da/messages . Derefter indlæses en database med alle oversættelser der er lavet hidtil i kde. Det tager et stykke tid, men det skal kun gøres én gang.
Når du har lavet nogle oversættelser eller hentet oversættelser fra andre kilder end KDE kan du gentage dette og pege på de mapper de andre oversættelser ligger i.
Det er vigtigt at beholde fluebenet i "Autotilføj indgang til database". Så sørger Kbabel nemlig selv for at de oversættelser du laver eller henter og gemmer i de mapper den kigger i bliver tilføjet databasen.
msgmerge -o x.po program.po program.pot
mv x.po program.po
Derved overskrives program.po med en fil der har de gamle strenge og også de nye uoversatte. Nu åbner du filen program.pot, (program.pot hvis du ikke har en program.po) og starter med at lave en grov oversættelse (Vælg dette fra en af menuerne). Derefter tjekker du dem alle, får fuzzyerne fjernet og oversætter resten. Stavekontrol virker på dansk i kbabel, hvis du har installeret dansk stavekontrol, og det virker i andre programmer. Min .aspell.conf indeholder:
lang danish:
master danish:
Jeg tror det er nok.
Når du har kontrolleret stavningen, gemmer du resultatet i filen program.po .
På kommandolinjen hvor du har gemt program.po skriver du nu:
msgfmt -v program.po -o program.mo
Dette skulle gerne resultere i en fil der hedder program.mo . Nu bliver du root og flytter program.mo til (på et redhat 7 system) /usr/share/locale/da/LC_MESSAGES/program.mo . På andre systemer kan du finde hvor mo-filerne er ved at skrive for eksempel locate kbabel.mo.
En del af ovenstående skridt undgåes hvis man blot deltager i oversættelsen af kde's standardprogrammer. Så skal du blot vælge en uoversat pot-fil i kbabels kataloghåndtering, oversætte den, og sendte den po-fil der er blevet produceret til mig, der så vil lægge den ind på cvs.
cvs co -D "1 month ago" kde-i18n/da/messages/....po,
og så stille kbabel til at sammenligne med filen ....po.
Først skriver du:
xml2pot index.docbook >programdoc.pot
Dette skridt er allerede foretaget på de filer der ligger i mappen kde-i18n/da/messages/docs.
Dernæst åbner du programdoc.pot med kbabel og oversætter den. Den er lidt træls at oversætte da der ingen linjebrud er i pot-filen. Dem kan du lave ved
msgmerge -i programdoc.pot programdoc.pot >x.pot
efterfulgt af
mv x.pot programdoc.pot
Det giver en mere manerlig programdoc.pot-fil.
Når du har oversat denne fil gemmes den som programdoc.po. Før du går videre skal du lige kopiere den oprindelige index.docbook til den mappe du har gemt programdoc.po i og så skriver du:
po2xml index.docbook programdoc.po >program.docbook. Inde i programdoc.docbook skal du typisk ændre den første gang der står English til Danish. program.docbook indeholder nu informationerne til en dansk manual for programmet program. program.docbook er skrevet i det ret strenge xml-format (sgml, men med strengere regler, f. eks. skal alle tags afsluttes). Efter kde2.2 kan konqueror læse denne index.docbook direkte. Man kan også kompilere program.docbook med programmet meinproc, ved at udføre kommandoen
meinproc program.docbook
Dette producerer HTML-filer som også vil kunne læses af for eksempel Netscape. Endnu bedre er det at køre
meinproc --check program.docbook
fordi du så vil få fejlmeddelelser hvis der skulle være nogen fejl. Tidligere skulle man blot omdøbe program.docbook skal til index.docbook og placere den i /usr/share/doc/HTML/da/program/ (på et redhat system, på andre systemer skal /usr/share erstattes af værdien af $KDEDIR, ofte /opt/kde eller /opt/kde2). Dette skal gøres som root. Efter kde2.2 skal man køre
meinproc --check --cache index.cache.bz2 program.docbook
og putte både index.cache.bz2 og program.docbook omdøbt til index.docbook i /usr/share/doc/HTML/da/program/
Filen index.cache.bz2 er ikke strengt nødvendig, men den får konqueror til at fremvise håndbogen langt hurtigere. Næste gang du kører programmet program og åbner håndbogen til programmet vil denne være på dansk. Dette virker nu da kde 2.2 er udkommet.
po-oversættelserne i kde er nogenlunde gjort hvad angår hoveddistributionen, men hvis man vil hjælpe med manualerne kan man hente pot-filerne hjem som beskrevet ovenfor eller fra en af undermapperne i kde-i18n/templates/docs i Mappe med pot-filer for KDE-dokumentation, og sende den til mig når den er oversat. Jeg vil så putte den ind på CVS. Man skal selvfølgelig se efter at filen ikke allerede er oversat ved at kigge i den tilsvarende undermappe i Mappe med oversatte filer for KDE-dokumentation.
Jeg er stadig meget interesseret i feedback. Hvis man synes en af strengene i en af menuerne ser mærkelig ud for eksempel i kmines, kan man finde hvad den engelske streng var ved på kommandolinjen at starte kmines som
KDE_LANG=en_US kmines
Så vil sproget være engelsk, så man kan finde ud af hvor dårlige oversættelserne er :-).
Sidst opdateret: 2002-04-08 erik@binghamton.edu