1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: From English wiki to translated PDF and epub via Docbook
</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
15 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title">From English wiki to translated PDF and epub via Docbook
</div>
24 <div class=
"date">17th June
2014</div>
25 <div class=
"body"><p>The
<a href=
"http://www.skolelinux.org/">Debian Edu / Skolelinux
26 project
</a> provide an instruction manual for teachers, system
27 administrators and other users that contain useful tips for setting up
28 and maintaining a Debian Edu installation. This text is about how the
29 text processing of this manual is handled in the project.
</p>
31 <p>One goal of the project is to provide information in the native
32 language of its users, and for this we need to handle translations.
33 But we also want to make sure each language contain the same
34 information, so for this we need a good way to keep the translations
35 in sync. And we want it to be easy for our users to improve the
36 documentation, avoiding the need to learn special formats or tools to
37 contribute, and the obvious way to do this is to make it possible to
38 edit the documentation using a web browser. We also want it to be
39 easy for translators to keep the translation up to date, and give them
40 help in figuring out what need to be translated. Here is the list of
41 tools and the process we have found trying to reach all these
44 <p>We maintain the authoritative source of our manual in the
45 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">Debian
46 wiki
</a>, as several wiki pages written in English. It consist of one
47 front page with references to the different chapters, several pages
48 for each chapter, and finally one "collection page" gluing all the
49 chapters together into one large web page (aka
50 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/AllInOne">the
51 AllInOne page
</a>). The AllInOne page is the one used for further
52 processing and translations. Thanks to the fact that the
53 <a href=
"http://moinmo.in/">MoinMoin
</a> installation on
54 wiki.debian.org support exporting pages in
55 <a href=
"http://www.docbook.org/">the Docbook format
</a>, we can fetch
56 the list of pages to export using the raw version of the AllInOne
57 page, loop over each of them to generate a Docbook XML version of the
58 manual. This process also download images and transform image
59 references to use the locally downloaded images. The generated
60 Docbook XML files are slightly broken, so some post-processing is done
61 using the
<tt>documentation/scripts/get_manual
</tt> program, and the
62 result is a nice Docbook XML file (debian-edu-wheezy-manual.xml) and
63 a handfull of images. The XML file can now be used to generate PDF, HTML
64 and epub versions of the English manual. This is the basic step of
65 our process, making PDF (using dblatex), HTML (using xsltproc) and
66 epub (using dbtoepub) version from Docbook XML, and the resulting files
67 are placed in the debian-edu-doc-en binary package.
</p>
69 <p>But English documentation is not enough for us. We want translated
70 documentation too, and we want to make it easy for translators to
71 track the English original. For this we use the
72 <a href=
"http://packages.qa.debian.org/p/poxml.html">poxml
</a> package,
73 which allow us to transform the English Docbook XML file into a
74 translation file (a .pot file), usable with the normal gettext based
75 translation tools used by those translating free software. The pot
76 file is used to create and maintain translation files (several .po
77 files), which the translations update with the native language
78 translations of all titles, paragraphs and blocks of text in the
79 original. The next step is combining the original English Docbook XML
80 and the translation file (say debian-edu-wheezy-manual.nb.po), to
81 create a translated Docbook XML file (in this case
82 debian-edu-wheezy-manual.nb.xml). This translated (or partly
83 translated, if the translation is not complete) Docbook XML file can
84 then be used like the original to create a PDF, HTML and epub version
85 of the documentation.
</p>
87 <p>The translators use different tools to edit the .po files. We
89 <a href=
"http://www.kde.org/applications/development/lokalize/">lokalize
</a>,
90 while some use emacs and vi, others can use web based editors like
91 <a href=
"http://pootle.translatehouse.org/">Poodle
</a> or
92 <a href=
"https://www.transifex.com/">Transifex
</a>. All we care about
93 is where the .po file end up, in our git repository. Updated
94 translations can either be committed directly to git, or submitted as
95 <a href=
"https://bugs.debian.org/src:debian-edu-doc">bug reports
96 against the debian-edu-doc package
</a>.
</p>
98 <p>One challenge is images, which both might need to be translated (if
99 they show translated user applications), and are needed in different
100 formats when creating PDF and HTML versions (epub is a HTML version in
101 this regard). For this we transform the original PNG images to the
102 needed density and format during build, and have a way to provide
103 translated images by storing translated versions in
104 images/$LANGUAGECODE/. I am a bit unsure about the details here. The
105 package maintainers know more.
</p>
107 <p>If you wonder what the result look like, we provide
108 <a href=
"http://maintainer.skolelinux.org/debian-edu-doc/">the content
109 of the documentation packages on the web
</a>. See for example the
110 <a href=
"http://maintainer.skolelinux.org/debian-edu-doc/it/debian-edu-wheezy-manual.pdf">Italian
111 PDF version
</a> or the
112 <a href=
"http://maintainer.skolelinux.org/debian-edu-doc/de/debian-edu-wheezy-manual.html">German
113 HTML version
</a>. We do not yet build the epub version by default,
114 but perhaps it will be done in the future.
</p>
116 <p>To learn more, check out
117 <a href=
"http://packages.qa.debian.org/d/debian-edu-doc.html">the
118 debian-edu-doc package
</a>,
119 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">the
120 manual on the wiki
</a> and
121 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/Translations">the
122 translation instructions
</a> in the manual.
</p>
125 <div class=
"tags">Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
</div>
143 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/01/">January (
3)
</a></li>
145 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/02/">February (
2)
</a></li>
147 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/03/">March (
3)
</a></li>
149 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/04/">April (
8)
</a></li>
151 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/05/">May (
8)
</a></li>
153 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/06/">June (
2)
</a></li>
155 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/07/">July (
2)
</a></li>
157 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/08/">August (
1)
</a></li>
164 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/01/">January (
7)
</a></li>
166 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/02/">February (
6)
</a></li>
168 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/03/">March (
1)
</a></li>
170 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/04/">April (
4)
</a></li>
172 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/05/">May (
3)
</a></li>
174 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/06/">June (
4)
</a></li>
176 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/07/">July (
6)
</a></li>
178 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/08/">August (
2)
</a></li>
180 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/09/">September (
2)
</a></li>
182 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/10/">October (
9)
</a></li>
184 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/11/">November (
6)
</a></li>
186 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/12/">December (
3)
</a></li>
193 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/01/">January (
2)
</a></li>
195 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/02/">February (
3)
</a></li>
197 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/03/">March (
8)
</a></li>
199 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/04/">April (
7)
</a></li>
201 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/05/">May (
1)
</a></li>
203 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/06/">June (
2)
</a></li>
205 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/07/">July (
2)
</a></li>
207 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/08/">August (
2)
</a></li>
209 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/09/">September (
5)
</a></li>
211 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/10/">October (
6)
</a></li>
213 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/11/">November (
3)
</a></li>
215 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/12/">December (
5)
</a></li>
222 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
224 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
226 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
228 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
230 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
232 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
234 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
236 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
238 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
240 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
242 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
9)
</a></li>
244 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/12/">December (
3)
</a></li>
251 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
253 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
255 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
257 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
259 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
261 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
263 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
265 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
267 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
269 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
271 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
273 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
280 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
282 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
284 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
286 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
288 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
290 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
292 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
294 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
296 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
298 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
300 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
302 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
309 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
311 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
313 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
315 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
317 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
319 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
321 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
323 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
325 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
327 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
329 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
331 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
338 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
340 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
342 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
344 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
346 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
348 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
350 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
352 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
354 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
356 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
358 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
360 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
367 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
369 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
380 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
382 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
384 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
386 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
388 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
9)
</a></li>
390 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
16)
</a></li>
392 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
394 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (
2)
</a></li>
396 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
133)
</a></li>
398 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
157)
</a></li>
400 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
10)
</a></li>
402 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/dld">dld (
15)
</a></li>
404 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
22)
</a></li>
406 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
408 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
324)
</a></li>
410 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
412 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
414 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
27)
</a></li>
416 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
9)
</a></li>
418 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
18)
</a></li>
420 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/h264">h264 (
20)
</a></li>
422 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
42)
</a></li>
424 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
12)
</a></li>
426 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
19)
</a></li>
428 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
9)
</a></li>
430 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
8)
</a></li>
432 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
434 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
436 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
8)
</a></li>
438 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
39)
</a></li>
440 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (
7)
</a></li>
442 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
275)
</a></li>
444 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
182)
</a></li>
446 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
26)
</a></li>
448 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
450 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
61)
</a></li>
452 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
92)
</a></li>
454 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
456 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reactos">reactos (
1)
</a></li>
458 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
460 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
3)
</a></li>
462 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
9)
</a></li>
464 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
466 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li>
468 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
470 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
48)
</a></li>
472 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
474 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
4)
</a></li>
476 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
49)
</a></li>
478 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
4)
</a></li>
480 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
10)
</a></li>
482 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
37)
</a></li>
484 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
2)
</a></li>
486 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/usenix">usenix (
2)
</a></li>
488 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
8)
</a></li>
490 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
59)
</a></li>
492 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
494 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
38)
</a></li>
500 <p style=
"text-align: right">
501 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>