Commit e305d804 authored by dimitri's avatar dimitri

Release-1.3.8

parent 46361b70
DOXYGEN Version 1.3.7-20040718 DOXYGEN Version 1.3.8
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (18 July 2004) Dimitri van Heesch (25 July 2004)
DOXYGEN Version 1.3.7_20040718 DOXYGEN Version 1.3.8
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (18 July 2004) Dimitri van Heesch (dimitri@stack.nl) (25 July 2004)
1.3.7-20040718 1.3.8
...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). configuration file (with default name and known as Doxyfile).
Currently (version 1.3.8), 30 languages Currently (version 1.3.7-20040719), 30 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French,
...@@ -45,7 +45,7 @@ when the translator was updated. ...@@ -45,7 +45,7 @@ when the translator was updated.
<td ><b><font size=+1 color="#ffffff"> Language </font></b></td> <td ><b><font size=+1 color="#ffffff"> Language </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td> <td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Contact address </font> <td ><b><font size=+1 color="#ffffff"> Contact address </font>
<font size=-2 color="#ffffff">(remove the NOSPAM.)</font></b></td> <font size=-2 color="#ffffff">(replace the at and dot)</font></b></td>
<td ><b><font size=+1 color="#ffffff"> Status </font></b></td> <td ><b><font size=+1 color="#ffffff"> Status </font></b></td>
</tr> </tr>
<!-- table content begin --> <!-- table content begin -->
...@@ -53,104 +53,104 @@ when the translator was updated. ...@@ -53,104 +53,104 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Afrikaans</td> <td>Afrikaans</td>
<td>Johan Prinsloo</td> <td>Johan Prinsloo</td>
<td>johan@NOSPAM.zippysnoek.com</td> <td>johan at zippysnoek dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Brazilian Portuguese</td> <td>Brazilian Portuguese</td>
<td>Fabio "FJTC" Jun Takada Chino</td> <td>Fabio "FJTC" Jun Takada Chino</td>
<td>chino@NOSPAM.icmc.sc.usp.br</td> <td>chino at icmc dot sc dot usp dot br</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Catalan</td> <td>Catalan</td>
<td>Albert Mora</td> <td>Albert Mora</td>
<td>amora@NOSPAM.iua.upf.es</td> <td>amora at iua dot upf dot es</td>
<td>1.2.17</td> <td>1.2.17</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese</td> <td>Chinese</td>
<td>Li Daobing<br>Wei Liu</td> <td>Li Daobing<br>Wei Liu</td>
<td>lidaobing@NOSPAM.gmail.com<br>liuwei@NOSPAM.asiainfo.com</td> <td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td>
<td>1.3.08</td> <td>1.3.08</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese Traditional</td> <td>Chinese Traditional</td>
<td>Daniel YC Lin<br>Gary Lee</td> <td>Daniel YC Lin<br>Gary Lee</td>
<td>daniel@NOSPAM.twpda.com<br>garylee@NOSPAM.ecosine.com.tw</td> <td>daniel at twpda dot com<br>garylee at ecosine dot com dot tw</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Croatian</td> <td>Croatian</td>
<td>Boris Bralo</td> <td>Boris Bralo</td>
<td>boris.bralo@NOSPAM.zg.tel.hr</td> <td>boris.bralo at zg dot htnet dot hr</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Czech</td> <td>Czech</td>
<td>Petr P&#x0159;ikryl</td> <td>Petr P&#x0159;ikryl</td>
<td>prikrylp@NOSPAM.skil.cz</td> <td>prikrylp at skil dot cz</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Danish</td> <td>Danish</td>
<td>Erik S&oslash;e S&oslash;rensen</td> <td>Erik S&oslash;e S&oslash;rensen</td>
<td>erik@NOSPAM.mail.nu</td> <td>erik at mail dot nu</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Dutch</td> <td>Dutch</td>
<td>Dimitri van Heesch</td> <td>Dimitri van Heesch</td>
<td>dimitri@NOSPAM.stack.nl</td> <td>dimitri at stack dot nl</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>English</td> <td>English</td>
<td>Dimitri van Heesch</td> <td>Dimitri van Heesch</td>
<td>dimitri@NOSPAM.stack.nl</td> <td>dimitri at stack dot nl</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Finnish</td> <td>Finnish</td>
<td>Olli Korhonen</td> <td>Olli Korhonen</td>
<td>Olli.Korhonen@NOSPAM.ccc.fi</td> <td>Olli.Korhonen at ccc dot fi</td>
<td>obsolete</td> <td>obsolete</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>French</td> <td>French</td>
<td>Xavier Outhier</td> <td>Xavier Outhier</td>
<td>xouthier@NOSPAM.yahoo.fr</td> <td>xouthier at yahoo dot fr</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>German</td> <td>German</td>
<td>Jens Seidel</td> <td>Jens Seidel</td>
<td>jensseidel@NOSPAM.users.sf.net</td> <td>jensseidel at users dot sf dot net</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Greek</td> <td>Greek</td>
<td>Harry Kalogirou</td> <td>Harry Kalogirou</td>
<td>harkal@NOSPAM.rainbow.cs.unipi.gr</td> <td>harkal at rainbow dot cs dot unipi dot gr</td>
<td>1.2.11</td> <td>1.2.11</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Hungarian</td> <td>Hungarian</td>
<td>F&ouml;ldv&aacute;ri Gy&ouml;rgy<br>&Aacute;kos Kiss</td> <td>F&ouml;ldv&aacute;ri Gy&ouml;rgy<br>&Aacute;kos Kiss</td>
<td>foldvari@NOSPAM.diatronltd.com<br>akiss@NOSPAM.users.sourceforge.net</td> <td>foldvari at diatronltd dot com<br>akiss at users dot sourceforge dot net</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Italian</td> <td>Italian</td>
<td>Alessandro Falappa<br>Ahmed Aldo Faisal</td> <td>Alessandro Falappa<br>Ahmed Aldo Faisal</td>
<td>alessandro@NOSPAM.falappa.net<br>aaf23@NOSPAM.cam.ac.uk</td> <td>alessandro at falappa dot net<br>aaf23 at cam dot ac dot uk</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Japanese</td> <td>Japanese</td>
<td>Ryunosuke Satoh<br>Kenji Nagamatsu</td> <td>Ryunosuke Satoh<br>Kenji Nagamatsu<br>Iwasa Kazmi</td>
<td>sun594@NOSPAM.hotmail.com<br>naga@NOSPAM.joyful.club.ne.jp</td> <td>sun594 at hotmail dot com<br>naga at joyful dot club dot ne dot jp<br>iwasa at cosmo-system dot jp</td>
<td>1.3.3</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>JapaneseEn</td> <td>JapaneseEn</td>
...@@ -161,7 +161,7 @@ when the translator was updated. ...@@ -161,7 +161,7 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Korean</td> <td>Korean</td>
<td>Richard Kim</td> <td>Richard Kim</td>
<td>ryk@NOSPAM.dspwiz.com</td> <td>ryk at dspwiz dot com</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -173,73 +173,73 @@ when the translator was updated. ...@@ -173,73 +173,73 @@ when the translator was updated.
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Lithuanian</td> <td>Lithuanian</td>
<td>Tomas Simonaitis<br>Mindaugas Radzius<br>Aidas Berukstis</td> <td>Tomas Simonaitis<br>Mindaugas Radzius<br>Aidas Berukstis</td>
<td>haden@NOSPAM.homelan.lt<br>mindaugasradzius@NOSPAM.takas.lt<br>aidasber@NOSPAM.takas.lt</td> <td>haden at homelan dot lt<br>mindaugasradzius at takas dot lt<br>aidasber at takas dot lt</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Norwegian</td> <td>Norwegian</td>
<td>Lars Erik Jordet</td> <td>Lars Erik Jordet</td>
<td>lej@NOSPAM.circuitry.no</td> <td>lejordet at gmail dot com</td>
<td>1.2.2</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Polish</td> <td>Polish</td>
<td>Piotr Kaminski<br>Grzegorz Kowal</td> <td>Piotr Kaminski<br>Grzegorz Kowal</td>
<td>Piotr.Kaminski@NOSPAM.ctm.gdynia.pl<br>g_kowal@NOSPAM.poczta.onet.pl</td> <td>Piotr.Kaminski at ctm dot gdynia dot pl<br>g_kowal at poczta dot onet dot pl</td>
<td>1.3</td> <td>1.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Portuguese</td> <td>Portuguese</td>
<td>Rui Godinho Lopes</td> <td>Rui Godinho Lopes</td>
<td>ruiglopes@NOSPAM.yahoo.com</td> <td>ruiglopes at yahoo dot com</td>
<td>1.3.3</td> <td>1.3.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Romanian</td> <td>Romanian</td>
<td>Alexandru Iosup</td> <td>Alexandru Iosup</td>
<td>aiosup@NOSPAM.yahoo.com</td> <td>aiosup at yahoo dot com</td>
<td>1.2.16</td> <td>1.2.16</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Russian</td> <td>Russian</td>
<td>Alexandr Chelpanov</td> <td>Alexandr Chelpanov</td>
<td>cav@NOSPAM.cryptopro.ru</td> <td>cav at cryptopro dot ru</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Serbian</td> <td>Serbian</td>
<td>Dejan Milosavljevic</td> <td>Dejan Milosavljevic</td>
<td>dmilos@NOSPAM.email.com</td> <td>dmilos at email dot com</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Slovak</td> <td>Slovak</td>
<td>Stanislav Kudl&aacute;&#x010d;</td> <td>Stanislav Kudl&aacute;&#x010d;</td>
<td>skudlac@NOSPAM.pobox.sk</td> <td>skudlac at pobox dot sk</td>
<td>1.2.18</td> <td>1.2.18</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Slovene</td> <td>Slovene</td>
<td>Matjaz Ostroversnik</td> <td>Matjaz Ostroversnik</td>
<td>matjaz.ostroversnik@NOSPAM.zrs-tk.si</td> <td>matjaz.ostroversnik at zrs-tk dot si</td>
<td>1.2.16</td> <td>1.2.16</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Spanish</td> <td>Spanish</td>
<td>Francisco Oltra Thennet</td> <td>Francisco Oltra Thennet</td>
<td>foltra@NOSPAM.puc.cl</td> <td>foltra at puc dot cl</td>
<td>1.3.8</td> <td>1.3.8</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Swedish</td> <td>Swedish</td>
<td>Mikael Hallin</td> <td>Mikael Hallin</td>
<td>mikaelhallin@NOSPAM.yahoo.se</td> <td>mikaelhallin at yahoo dot se</td>
<td>1.3.3</td> <td>1.3.3</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Ukrainian</td> <td>Ukrainian</td>
<td>Olexij Tkatchenko</td> <td>Olexij Tkatchenko</td>
<td>olexij.tkatchenko@NOSPAM.gmx.de</td> <td>olexij.tkatchenko at gmx dot de</td>
<td>1.2.11</td> <td>1.2.11</td>
</tr> </tr>
<!-- table content end --> <!-- table content end -->
...@@ -269,7 +269,7 @@ when the translator was updated. ...@@ -269,7 +269,7 @@ when the translator was updated.
Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\ Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\
~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\ ~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\
\hline \hline
Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.tel.hr} & up-to-date \\ Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\
\hline \hline
Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\ Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\
\hline \hline
...@@ -293,8 +293,9 @@ when the translator was updated. ...@@ -293,8 +293,9 @@ when the translator was updated.
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\
~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\
\hline \hline
Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.3.3 \\ Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & up-to-date \\
~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\ ~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\
~ & Iwasa Kazmi & {\tt\tiny iwasa@cosmo-system.jp} & ~ \\
\hline \hline
JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\ JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\
\hline \hline
...@@ -306,7 +307,7 @@ when the translator was updated. ...@@ -306,7 +307,7 @@ when the translator was updated.
~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\ ~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\
~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\ ~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\
\hline \hline
Norwegian & Lars Erik Jordet & {\tt\tiny lej@circuitry.no} & 1.2.2 \\ Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & up-to-date \\
\hline \hline
Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\ Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\
~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\ ~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\
......
...@@ -27,7 +27,7 @@ Daniel YC Lin: daniel@twpda.com ...@@ -27,7 +27,7 @@ Daniel YC Lin: daniel@twpda.com
Gary Lee: garylee@ecosine.com.tw Gary Lee: garylee@ecosine.com.tw
TranslatorCroatian TranslatorCroatian
Boris Bralo: boris.bralo@zg.tel.hr Boris Bralo: boris.bralo@zg.htnet.hr
TranslatorCzech TranslatorCzech
Petr P&rcaron;ikryl: prikrylp@skil.cz Petr P&rcaron;ikryl: prikrylp@skil.cz
...@@ -64,6 +64,7 @@ Ahmed Aldo Faisal: aaf23@cam.ac.uk ...@@ -64,6 +64,7 @@ Ahmed Aldo Faisal: aaf23@cam.ac.uk
TranslatorJapanese TranslatorJapanese
Ryunosuke Satoh: sun594@hotmail.com Ryunosuke Satoh: sun594@hotmail.com
Kenji Nagamatsu: naga@joyful.club.ne.jp Kenji Nagamatsu: naga@joyful.club.ne.jp
Iwasa Kazmi: iwasa@cosmo-system.jp
TranslatorKorean TranslatorKorean
Richard Kim: ryk@dspwiz.com Richard Kim: ryk@dspwiz.com
...@@ -74,7 +75,7 @@ Mindaugas Radzius: mindaugasradzius@takas.lt ...@@ -74,7 +75,7 @@ Mindaugas Radzius: mindaugasradzius@takas.lt
Aidas Berukstis: aidasber@takas.lt Aidas Berukstis: aidasber@takas.lt
TranslatorNorwegian TranslatorNorwegian
Lars Erik Jordet: lej@circuitry.no Lars Erik Jordet: lejordet@gmail.com
TranslatorPolish TranslatorPolish
Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl
......
...@@ -22,27 +22,26 @@ ...@@ -22,27 +22,26 @@
History: History:
-------- --------
2002/05/21 2002/05/21 - This was the last Perl version.
- This was the last Perl version. 2003/05/16 - List of language marks can be passed as arguments.
2003/05/16 2004/01/24 - Total reimplementation started: classes TrManager, and Transl.
- If the script is given list of languages, only the translator report 2004/02/05 - First version that produces translator report. No language.doc yet.
is generated and only for those languages. 2004/02/10 - First fully functional version that generates both the translator
2004/01/24 report and the documentation. It is a bit slower than the
- Total reimplementation just started: classes TrManager, and Transl. Perl version, but is much less tricky and much more flexible.
2004/02/05 It also solves some problems that were not solved by the Perl
- First version that produces translator report. The documentation version. The translator report content should be more useful
in the language.doc is not generated yet. for developers.
2004/02/10
- First fully functional version that generates both the translator
report and the documentation. It is a bit slower than the Perl version,
but is much less tricky and much more flexible. It also solves some
problems that were not solved by the Perl version. The translator report
content should be more useful for developers.
2004/02/11 - Some tuning-up to provide more useful information. 2004/02/11 - Some tuning-up to provide more useful information.
2004/04/16 - Added new tokens to the tokenizer (to remove some warnings). 2004/04/16 - Added new tokens to the tokenizer (to remove some warnings).
2004/05/25 - Added from __future__ import generators not to force Python 2.3. 2004/05/25 - Added from __future__ import generators not to force Python 2.3.
2004/06/03 - Removed dependency on textwrap module. 2004/06/03 - Removed dependency on textwrap module.
2004/07/07 - Fixed the bug in the fill() function. 2004/07/07 - Fixed the bug in the fill() function.
2004/07/21 - Better e-mail mangling for HTML part of language.doc.
- Plural not used for reporting a single missing method.
- Removal of not used translator adapters is suggested only
when the report is not restricted to selected languages
explicitly via script arguments
""" """
from __future__ import generators from __future__ import generators
...@@ -1115,8 +1114,12 @@ class Transl: ...@@ -1115,8 +1114,12 @@ class Transl:
fout.write('\n\n\n') fout.write('\n\n\n')
fout.write(self.classId + ' (' + self.baseClassId + ')') fout.write(self.classId + ' (' + self.baseClassId + ')')
if self.missingMethods: if self.missingMethods:
fout.write(' %d' % len(self.missingMethods)) num = len(self.missingMethods)
fout.write(' methods to implement') fout.write(' %d' % num)
fout.write(' method')
if num > 1:
fout.write('s')
fout.write(' to implement')
fout.write('\n' + '-' * len(self.classId)) fout.write('\n' + '-' * len(self.classId))
# Write the info about the implemented required methods. # Write the info about the implemented required methods.
...@@ -1420,7 +1423,10 @@ class TrManager: ...@@ -1420,7 +1423,10 @@ class TrManager:
obj = self.__translDic[x] obj = self.__translDic[x]
f.write(' %-30s' % obj.classId) f.write(' %-30s' % obj.classId)
f.write(' %-6s' % obj.readableStatus) f.write(' %-6s' % obj.readableStatus)
f.write('\t%2d methods to implement' % len(obj.missingMethods)) numimpl = len(obj.missingMethods)
pluralS = ''
if numimpl > 1: pluralS = 's'
f.write('\t%2d method%s to implement' % (numimpl, pluralS))
if obj.note: if obj.note:
f.write('\n\tNote: ' + obj.note + '\n') f.write('\n\tNote: ' + obj.note + '\n')
f.write('\n') f.write('\n')
...@@ -1430,11 +1436,14 @@ class TrManager: ...@@ -1430,11 +1436,14 @@ class TrManager:
adaptMinVersion = obj.status adaptMinVersion = obj.status
# Set the note if some old translator adapters are not needed # Set the note if some old translator adapters are not needed
# any more. # any more. Do it only when the script is called without arguments,
for version, adaptClassId in self.adaptMethodsDic.values(): # i.e. all languages were checked against the needed translator
if version < adaptMinVersion: # adapters.
f.write('\nNote: The %s class ' % adaptClassId) if not self.script_argLst:
f.write('is not used and can be removed.\n') for version, adaptClassId in self.adaptMethodsDic.values():
if version < adaptMinVersion:
f.write('\nNote: The %s class ' % adaptClassId)
f.write('is not used and can be removed.\n')
# Write the list of the English-based classes. # Write the list of the English-based classes.
if self.EnBasedIdLst: if self.EnBasedIdLst:
...@@ -1583,7 +1592,7 @@ class TrManager: ...@@ -1583,7 +1592,7 @@ class TrManager:
<td ><b><font size=+1 color="#ffffff"> Language </font></b></td> <td ><b><font size=+1 color="#ffffff"> Language </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td> <td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Contact address </font> <td ><b><font size=+1 color="#ffffff"> Contact address </font>
<font size=-2 color="#ffffff">(remove the NOSPAM.)</font></b></td> <font size=-2 color="#ffffff">(replace the at and dot)</font></b></td>
<td ><b><font size=+1 color="#ffffff"> Status </font></b></td> <td ><b><font size=+1 color="#ffffff"> Status </font></b></td>
</tr> </tr>
<!-- table content begin --> <!-- table content begin -->
...@@ -1628,11 +1637,21 @@ class TrManager: ...@@ -1628,11 +1637,21 @@ class TrManager:
ee = '<br>'.join(le) ee = '<br>'.join(le)
# Mangle the e-mail and replace the entity references. # Mangle the e-mail and replace the entity references.
if ee: if ee and ee != '&nbsp;':
ee = ee.replace('@', '@NOSPAM.') # More than one maintainer address separated by <br> can be used.
emails = ee.split('<br>')
mangled_list = []
for email in emails:
name, domain = email.split('@')
domain = domain.replace('.', ' dot ')
mangled_list.append(name + ' at ' + domain)
ee = '<br>'.join(mangled_list)
if mm: if mm:
mm = mm.replace('&ccaron;', '&#x010d;') mm = mm.replace('&ccaron;', '&#x010d;')
mm = mm.replace('&rcaron;', '&#x0159;') mm = mm.replace('&rcaron;', '&#x0159;')
mm = mm.replace('&scaron;', '&#x0161;')
mm = mm.replace('&zcaron;', '&#x017e;')
# Append the maintainer and e-mail elements. # Append the maintainer and e-mail elements.
lst.append(htmlTdTpl % mm) lst.append(htmlTdTpl % mm)
...@@ -1717,6 +1736,8 @@ class TrManager: ...@@ -1717,6 +1736,8 @@ class TrManager:
latexTable = latexTable.replace('&oslash;', '\\o{}') latexTable = latexTable.replace('&oslash;', '\\o{}')
latexTable = latexTable.replace('&ccaron;', '\\v{c}') latexTable = latexTable.replace('&ccaron;', '\\v{c}')
latexTable = latexTable.replace('&rcaron;', '\\v{r}') latexTable = latexTable.replace('&rcaron;', '\\v{r}')
latexTable = latexTable.replace('&scaron;', '\\v{s}')
latexTable = latexTable.replace('&zcaron;', '\\v{z}')
latexTable = latexTable.replace('_', '\\_') latexTable = latexTable.replace('_', '\\_')
# Put the HTML and LaTeX parts together and define the dic item. # Put the HTML and LaTeX parts together and define the dic item.
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3.7_20040718 Version: 1.3.8
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -161,6 +161,8 @@ class ClassDef : public Definition ...@@ -161,6 +161,8 @@ class ClassDef : public Definition
*/ */
ClassDef *templateMaster() const { return m_templateMaster; } ClassDef *templateMaster() const { return m_templateMaster; }
bool isTemplate() const { return m_tempArgs!=0; }
IncludeInfo *includeInfo() const { return m_incInfo; } IncludeInfo *includeInfo() const { return m_incInfo; }
UsesClassDict *usedImplementationClasses() const UsesClassDict *usedImplementationClasses() const
......
...@@ -120,7 +120,6 @@ SDict<DefinitionList> *Doxygen::symbolMap; ...@@ -120,7 +120,6 @@ SDict<DefinitionList> *Doxygen::symbolMap;
bool Doxygen::outputToWizard=FALSE; bool Doxygen::outputToWizard=FALSE;
QDict<int> * Doxygen::htmlDirMap = 0; QDict<int> * Doxygen::htmlDirMap = 0;
QCache<LookupInfo> Doxygen::lookupCache(20000,20000); QCache<LookupInfo> Doxygen::lookupCache(20000,20000);
bool Doxygen::lookupCacheEnabled=FALSE;
static StringList inputFiles; static StringList inputFiles;
static StringDict excludeNameDict(1009); // sections static StringDict excludeNameDict(1009); // sections
...@@ -6193,6 +6192,54 @@ static void findSectionsInDocumentation() ...@@ -6193,6 +6192,54 @@ static void findSectionsInDocumentation()
if (Doxygen::mainPage) Doxygen::mainPage->findSectionsInDocumentation(); if (Doxygen::mainPage) Doxygen::mainPage->findSectionsInDocumentation();
} }
static void flushCachedTemplateRelations()
{
// remove all references to template classes from the cache
// as there can be new template instances that should be linked
// to instead.
QCacheIterator<LookupInfo> ci(Doxygen::lookupCache);
LookupInfo *li=0;
for (ci.toFirst();(li=ci.current());++ci)
{
if (li->classDef && li->classDef->isTemplate())
{
Doxygen::lookupCache.remove(ci.currentKey());
}
}
// remove all cached typedef resolutions whose target is a
// template class as this may now be a template instance
MemberNameSDict::Iterator fnli(Doxygen::functionNameSDict);
MemberName *fn;
for (;(fn=fnli.current());++fnli) // for each global function name
{
MemberNameIterator fni(*fn);
MemberDef *fmd;
for (;(fmd=fni.current());++fni) // for each function with that name
{
if (fmd->isTypedefValCached())
{
ClassDef *cd = fmd->getCachedTypedefVal();
if (cd->isTemplate()) fmd->invalidateTypedefValCache();
}
}
}
MemberNameSDict::Iterator mnli(Doxygen::memberNameSDict);
for (;(fn=mnli.current());++mnli) // for each class method name
{
MemberNameIterator mni(*fn);
MemberDef *fmd;
for (;(fmd=mni.current());++mni) // for each function with that name
{
if (fmd->isTypedefValCached())
{
ClassDef *cd = fmd->getCachedTypedefVal();
if (cd->isTemplate()) fmd->invalidateTypedefValCache();
}
}
}
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static void findDefineDocumentation(Entry *root) static void findDefineDocumentation(Entry *root)
...@@ -7437,7 +7484,6 @@ void initDoxygen() ...@@ -7437,7 +7484,6 @@ void initDoxygen()
Doxygen::memGrpInfoDict.setAutoDelete(TRUE); Doxygen::memGrpInfoDict.setAutoDelete(TRUE);
Doxygen::tagDestinationDict.setAutoDelete(TRUE); Doxygen::tagDestinationDict.setAutoDelete(TRUE);
Doxygen::lookupCache.setAutoDelete(TRUE); Doxygen::lookupCache.setAutoDelete(TRUE);
Doxygen::lookupCacheEnabled=FALSE;
} }
void cleanUpDoxygen() void cleanUpDoxygen()
...@@ -8227,6 +8273,9 @@ void parseInput() ...@@ -8227,6 +8273,9 @@ void parseInput()
findInheritedTemplateInstances(); findInheritedTemplateInstances();
findUsedTemplateInstances(); findUsedTemplateInstances();
msg("Flushing cached template relations that have become invalid...\n");
flushCachedTemplateRelations();
msg("Creating members for template instances...\n"); msg("Creating members for template instances...\n");
createTemplateInstanceMembers(); createTemplateInstanceMembers();
...@@ -8235,10 +8284,6 @@ void parseInput() ...@@ -8235,10 +8284,6 @@ void parseInput()
computeClassRelations(); computeClassRelations();
classEntries.clear(); classEntries.clear();
// from now on the class relations are fixed and we can
// start to cache them to improve performance
Doxygen::lookupCacheEnabled=TRUE;
msg("Searching for enumerations...\n"); msg("Searching for enumerations...\n");
findEnums(root); findEnums(root);
findEnumDocumentation(root); findEnumDocumentation(root);
......
...@@ -112,7 +112,6 @@ class Doxygen ...@@ -112,7 +112,6 @@ class Doxygen
static bool outputToWizard; static bool outputToWizard;
static QDict<int> *htmlDirMap; static QDict<int> *htmlDirMap;
static QCache<LookupInfo> lookupCache; static QCache<LookupInfo> lookupCache;
static bool lookupCacheEnabled;
}; };
void initDoxygen(); void initDoxygen();
......
...@@ -273,6 +273,7 @@ class MemberDef : public Definition ...@@ -273,6 +273,7 @@ class MemberDef : public Definition
QCString getCachedTypedefTemplSpec() const { return m_cachedTypedefTemplSpec; } QCString getCachedTypedefTemplSpec() const { return m_cachedTypedefTemplSpec; }
void cacheTypedefVal(ClassDef *val,const QCString &templSpec) void cacheTypedefVal(ClassDef *val,const QCString &templSpec)
{ m_isTypedefValCached=TRUE; m_cachedTypedefValue=val; m_cachedTypedefTemplSpec=templSpec; } { m_isTypedefValCached=TRUE; m_cachedTypedefValue=val; m_cachedTypedefTemplSpec=templSpec; }
void invalidateTypedefValCache() { m_isTypedefValCached=FALSE; }
// declaration <-> definition relation // declaration <-> definition relation
void setMemberDefinition(MemberDef *md) { memDef=md; } void setMemberDefinition(MemberDef *md) { memDef=md; }
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#ifndef TRANSLATOR_JP_H #ifndef TRANSLATOR_JP_H
#define TRANSLATOR_JP_H #define TRANSLATOR_JP_H
class TranslatorJapanese : public TranslatorAdapter_1_3_3 class TranslatorJapanese : public Translator
{ {
private: private:
/*! The decode() can change euc into sjis */ /*! The decode() can change euc into sjis */
...@@ -600,13 +600,13 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -600,13 +600,13 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
case ClassDef::Class: result+=decode("クラス "); break; case ClassDef::Class: result+=decode("クラス "); break;
case ClassDef::Struct: result+=decode("構造体 "); break; case ClassDef::Struct: result+=decode("構造体 "); break;
case ClassDef::Union: result+=decode("共用体 "); break; case ClassDef::Union: result+=decode("共用体 "); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース "); break;
case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me! case ClassDef::Protocol: result+=decode("プロトコル "); break;
case ClassDef::Category: result+=decode("Category"); break; // translate me! case ClassDef::Category: result+=decode("カテゴリ "); break;
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外 "); break;
} }
if (isTemplate) result+=decode(" テンプレート"); if (isTemplate) result+=decode("テンプレート ");
result+=(QCString)clName; result+=(QCString)clName;
return result; return result;
} }
...@@ -759,9 +759,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -759,9 +759,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
case ClassDef::Struct: result+=decode("構造体"); break; case ClassDef::Struct: result+=decode("構造体"); break;
case ClassDef::Union: result+=decode("共用体"); break; case ClassDef::Union: result+=decode("共用体"); break;
case ClassDef::Interface: result+=decode("インタフェース"); break; case ClassDef::Interface: result+=decode("インタフェース"); break;
case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me! case ClassDef::Protocol: result+=decode("プロトコル"); break;
case ClassDef::Category: result+=decode("Category"); break; // translate me! case ClassDef::Category: result+=decode("カテゴリ"); break;
case ClassDef::Exception: result+=decode("例外"); break; //TODO:fixme case ClassDef::Exception: result+=decode("例外"); break;
} }
result+=decode("の説明は次のファイルから生成されました:"); result+=decode("の説明は次のファイルから生成されました:");
return result; return result;
...@@ -1341,7 +1341,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -1341,7 +1341,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
*/ */
virtual QCString trImplementedFromList(int numEntries) virtual QCString trImplementedFromList(int numEntries)
{ {
return trWriteList(numEntries)+decode("に実装されています")+"."; return trWriteList(numEntries)+decode("を実装しています")+".";
} }
/*! used in member documentation blocks to produce a list of /*! used in member documentation blocks to produce a list of
...@@ -1349,7 +1349,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -1349,7 +1349,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
*/ */
virtual QCString trImplementedInList(int numEntries) virtual QCString trImplementedInList(int numEntries)
{ {
return trWriteList(numEntries)+decode("を実装しています")+"."; return trWriteList(numEntries)+decode("で実装されています")+".";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.16 // new since 1.2.16
...@@ -1447,5 +1447,67 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 ...@@ -1447,5 +1447,67 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3
{ {
return decode("関数の呼び出しグラフ:"); return decode("関数の呼び出しグラフ:");
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
/*! When the search engine is enabled this text is put in the header
* of each page before the field where one can enter the text to search
* for.
*/
virtual QCString trSearchForIndex()
{
return decode("検索");
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual QCString trSearchResultsTitle()
{
return decode("検索結果");
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
* the number representing the actual number of search results.
* The @a numDocuments parameter can be either 0, 1 or 2, where the
* value 2 represents 2 or more matches. HTML markup is allowed inside
* the returned string.
*/
virtual QCString trSearchResults(int numDocuments)
{
if (numDocuments==0)
{
return decode("入力された条件にマッチするドキュメントがありませんでした.");
}
else if (numDocuments==1)
{
return decode("入力された条件にマッチするドキュメントが <b>1</b> 件みつかりました.");
}
else
{
return decode("入力された条件にマッチするドキュメントが <b>$num</b> 件みつかりました. "
"最も一致しているものから表示されます.");
}
}
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
virtual QCString trSearchMatches()
{
return decode("マッチした単語:");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return filename + decode(" ソースファイル");
}
}; };
#endif #endif
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* *
* *
* Copyright (C) 1997-2004 by Dimitri van Heesch. * Copyright (C) 1997-2003 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -15,482 +15,801 @@ ...@@ -15,482 +15,801 @@
* *
*/ */
/* /******************************************************************************
================================================================================== * Norwegian translation by Lars Erik Jordet <lejordet@gmail.com>
*
================================================================================== * This is a new translation made from scratch, not based on my older Norwegian translation (for 1.2.2)
*/ *
* Translation notes (in Norwegian)
*
* Jeg har stort sett brukt ord som ligger ganske nær de engelske ekvivalentene,
* for eksempel "enumeration" -> "enumerasjon", og i enkelte tilfeller det engelske
* ordet direkte, der jeg finner det mer naturlig enn å prøve å stable en setning
* på beina på norsk, eller jeg selv foretrekker det engelske ordet (eks: "Header-fil").
* Om noen ikke skulle like disse valgene, kontakt meg på mailadressen over.
*
* Doxygen har mange strings som består av sammensatte ord ("Member function description", for eksempel),
* som ikke alltid ser like ryddig ut på norsk. Jeg har brukt bindestrek for å få
* det til å se presentabelt ut, men om noen har en bedre idé, send til mailadressen over.
*
* Changelog
*
* 2003-12-18: Initial translation
* 2004-07-19: Fixup to prepare for 1.3.8 (I had forgotten some functions)
*/
#ifndef TRANSLATOR_NO_H #ifndef TRANSLATOR_NO_H
#define TRANSLATOR_NO_H #define TRANSLATOR_NO_H
#include "translator_adapter.h" class TranslatorNorwegian : public Translator
class TranslatorNorwegian : public TranslatorAdapter_1_2_2
{ {
public: public:
QCString idLanguage()
{ return "norwegian"; }
QCString latexBabelPackage()
{ return "norwegian"; }
QCString trRelatedFunctions() // --- Language control methods -------------------
{ return "Beslektede funksjoner"; }
/*! Used for identification of the language. The identification
* should not be translated. It should be replaced by the name
* of the language in English using lower-case characters only
* (e.g. "czech", "japanese", "russian", etc.). It should be equal to
* the identification used in language.cpp.
*/
virtual QCString idLanguage()
{ return "norwegian"; }
/*! Used to get the LaTeX command(s) for the language support.
* This method should return string with commands that switch
* LaTeX to the desired language. For example
* <pre>"\\usepackage[german]{babel}\n"
* </pre>
* or
* <pre>"\\usepackage{polski}\n"
* "\\usepackage[latin2]{inputenc}\n"
* "\\usepackage[T1]{fontenc}\n"
* </pre>
*/
virtual QCString latexLanguageSupportCommand()
{
return
"\\usepackage[norwegian]{babel}\n"
"\\usepackage[latin1]{inputenc}\n"
"\\usepackage[T1]{fontenc}\n";
}
QCString trRelatedSubscript() /*! return the language charset. This will be used for the HTML output */
{ return "(Observer at disse ikke er medlemsfunksjoner)"; } virtual QCString idLanguageCharset()
{
return "iso-8859-1";
}
QCString trDetailedDescription() // --- Language translation methods -------------------
{ return "Detaljert beskrivelse"; }
QCString trMemberTypedefDocumentation() /*! used in the compound documentation before a list of related functions. */
{ return "Dokumentasjon over typedefinerte medlemmer"; } virtual QCString trRelatedFunctions()
{ return "Relaterte Funksjoner"; }
QCString trMemberEnumerationDocumentation() /*! subscript for the related functions. */
{ return "Dokumentasjon over enumererte medlemmer"; } virtual QCString trRelatedSubscript()
{ return "(Merk at disse ikke er medlemsfunksjoner.)"; }
QCString trMemberFunctionDocumentation() /*! header that is put before the detailed description of files, classes and namespaces. */
{ return "Dokumentasjon over medlemsfunksjoner"; } virtual QCString trDetailedDescription()
{ return "Detaijert Beskrivelse"; }
QCString trMemberDataDocumentation() /*! header that is put before the list of typedefs. */
{ return "Dokumentasjon over datamedlemmer"; } virtual QCString trMemberTypedefDocumentation()
{ return "Medlemstypedef-dokumentasjon"; }
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
{ return "Medlemsenumerasjons-dokumentasjon"; }
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
{ return "Medlemsfunksjons-dokumentasjon"; }
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Feltdokumentasjon";
}
else
{
return "Medlemsdata-dokumentasjon";
}
}
QCString trMore() /*! this is the text of a link put after brief descriptions. */
virtual QCString trMore()
{ return "Mer..."; } { return "Mer..."; }
QCString trListOfAllMembers() /*! put in the class documentation */
virtual QCString trListOfAllMembers()
{ return "Liste over alle medlemmer."; } { return "Liste over alle medlemmer."; }
QCString trMemberList() /*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
{ return "Medlemsliste"; } { return "Medlemsliste"; }
QCString trThisIsTheListOfAllMembers() /*! this is the first part of a sentence that is followed by a class name */
{ return "Det her er en fullstendig liste over medlemmer for "; } virtual QCString trThisIsTheListOfAllMembers()
{ return "Dette er den fullstendige listen over medlemmer for "; }
QCString trIncludingInheritedMembers() /*! this is the remainder of the sentence after the class name */
{ return " med alle nedarvede medlemmer."; } virtual QCString trIncludingInheritedMembers()
{ return ", alle arvede medlemmer inkludert."; }
QCString trGeneratedAutomatically(const char *s)
{ QCString result="Automatisk generert av Doxygen"; /*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="Generert automatisk av Doxygen";
if (s) result+=(QCString)" for "+s; if (s) result+=(QCString)" for "+s;
result+=" fra kildekoden."; result+=" fra kildekoden.";
return result; return result;
} }
QCString trEnumName() /*! put after an enum name in the list of all members */
{ return "enum navn"; } virtual QCString trEnumName()
{ return "enumnavn"; }
QCString trEnumValue()
{ return "enum verdi"; } /*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
QCString trDefinedIn() { return "enumverdi"; }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
{ return "definert i"; } { return "definert i"; }
// quick reference sections
QCString trVerbatimText(const char *f) /*! This is put above each page as a link to the list of all groups of
{ return (QCString)"Dette er den ordrette teksten fra inkluderingsfilen "+f; } * compounds or files (see the \\group command).
*/
QCString trModules() virtual QCString trModules()
{ return "Moduler"; } { return "Moduler"; }
QCString trClassHierarchy() /*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
{ return "Klassehierarki"; } { return "Klassehierarki"; }
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datastrukturer";
}
else
{
return "Klasseliste";
}
}
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
{ return "Fil-liste"; }
/*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles()
{ return "Header-filer"; }
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datafelt";
}
else
{
return "Klassemedlemmer";
}
}
QCString trCompoundList() /*! This is put above each page as a link to all members of files. */
{ return "Sammensatt klasseliste"; } virtual QCString trFileMembers()
{
QCString trFileList() if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ return "Filliste"; } {
return "Globale";
QCString trHeaderFiles() }
{ return "Headerfiler"; } else
{
QCString trCompoundMembers() return "Filmedlemmer";
{ return "Sammensatte klassemedlemmer"; } }
}
QCString trFileMembers()
{ return "Filmedlemmer"; }
QCString trRelatedPages() /*! This is put above each page as a link to all related pages. */
{ return "Beslektede sider"; } virtual QCString trRelatedPages()
{ return "Relaterte Sider"; }
QCString trExamples() /*! This is put above each page as a link to all examples. */
{ return "Eksempel"; } virtual QCString trExamples()
{ return "Eksempler"; }
QCString trSearch() /*! This is put above each page as a link to the search engine. */
virtual QCString trSearch()
{ return "Søk"; } { return "Søk"; }
QCString trClassHierarchyDescription() /*! This is an introduction to the class hierarchy. */
{ return "Denne listen over arv er grovt, men ikke helt, " virtual QCString trClassHierarchyDescription()
"sortert i alfabetisk rekkeflge:"; { return "Denne arvelisten er sortert grovt, "
"men ikke fullstendig, alfabetisk:";
} }
QCString trFileListDescription(bool extractAll) /*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{ {
QCString result="Her flger en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterte "; if (!extractAll) result+="dokumenterte ";
result+="filer, med en kort beskrivelse:"; result+="filer med korte beskrivelser:";
return result; return result;
} }
QCString trCompoundListDescription() /*! This is an introduction to the annotated compound list. */
{ return "Her flger klassene, struktene og " virtual QCString trCompoundListDescription()
"unionene med en kort beskrivelse:"; {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Her er datastrukturene med korte beskrivelser:";
}
else
{
return "Her er klasser, structer, "
"unioner og interfacer med korte beskrivelser:";
}
} }
QCString trCompoundMembersDescription(bool extractAll) /*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll)
{ {
QCString result="Her er en liste over alle ";
QCString result="Her flger en liste over alle "; if (!extractAll)
if (!extractAll) result+="dokumenterte "; {
result+="klassemedlemmer med lenker til "; result+="dokumenterte ";
if (!extractAll) result+="klassedokumentasjonen for hvert medlem:"; }
else result+="klassene som de tilhrer:"; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="struct- og unionfelter";
}
else
{
result+="klassemedlemmer";
}
result+=" med koblinger til ";
if (!extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="struct-/union-dokumentasjon for hvert felt:";
}
else
{
result+="klassedokumentasjonen for hvert medlem:";
}
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="structene/unionene de hører til:";
}
else
{
result+="klassene de hører til:";
}
}
return result; return result;
} }
/*! This is an introduction to the page with all file members. */
QCString trFileMembersDescription(bool extractAll) virtual QCString trFileMembersDescription(bool extractAll)
{ {
QCString result="Her flger en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterte "; if (!extractAll) result+="dokumenterte ";
result+="filmedlemmer med lenker til ";
if (extractAll) result+="dokumentasjonsfilen for hvert medlem:"; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
else result+="filene som de tilhrer:"; {
result+="funksjoner, variable, definerte, enumer, and typedefer";
}
else
{
result+="filmedlemmer";
}
result+=" med koblinger til ";
if (extractAll)
result+="filene de hører til:";
else
result+="dokumentasjonen:";
return result; return result;
} }
QCString trHeaderFilesDescription() /*! This is an introduction to the page with the list of all header files. */
{ return "Her flger headerfilene som API bestr av:"; } virtual QCString trHeaderFilesDescription()
{ return "Her er alle header-filene som utgjør API:"; }
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return "Her er en liste over alle eksemplene:"; }
QCString trExamplesDescription() /*! This is an introduction to the page with the list of related pages */
{ return "Her flger en liste med alle eksempler:"; } virtual QCString trRelatedPagesDescription()
{ return "Her er en liste over alle relaterte dokumentasjonssider:"; }
QCString trRelatedPagesDescription() /*! This is an introduction to the page with the list of class/file groups */
{ return "Her flger en liste over alle beslektede dokumentasjonssider:";} virtual QCString trModulesDescription()
{ return "Her er en liste over alle moduler:"; }
QCString trModulesDescription() /*! This sentences is used in the annotated class/file lists if no brief
{ return "Her flger en liste over alle moduler:"; } * description is given.
*/
virtual QCString trNoDescriptionAvailable()
{ return "Ingen beskrivelse tilgjengelig"; }
// index titles (the project name is prepended for these)
QCString trNoDescriptionAvailable()
{ return "Beskrivelse mangler"; }
QCString trDocumentation() /*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
{ return "Dokumentasjon"; } { return "Dokumentasjon"; }
QCString trModuleIndex() /*! This is used in LaTeX as the title of the chapter with the
{ return "Modulindex"; } * index of all groups.
*/
virtual QCString trModuleIndex()
{ return "Modulindeks"; }
QCString trHierarchicalIndex() /*! This is used in LaTeX as the title of the chapter with the
{ return "Hierarkisk Indeks"; } * class hierarchy.
*/
virtual QCString trHierarchicalIndex()
{ return "Hierarkisk indeks"; }
QCString trCompoundIndex() /*! This is used in LaTeX as the title of the chapter with the
{ return "Sammensatt Indeks"; } * annotated compound index.
*/
virtual QCString trCompoundIndex()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datastrukturindeks";
}
else
{
return "Klasse-indeks";
}
}
QCString trFileIndex() /*! This is used in LaTeX as the title of the chapter with the
{ return "Filindeks"; } * list of all files.
*/
virtual QCString trFileIndex()
{ return "Fil-indeks"; }
QCString trModuleDocumentation() /*! This is used in LaTeX as the title of the chapter containing
{ return "Dokumentasjon av moduler"; } * the documentation of all groups.
*/
virtual QCString trModuleDocumentation()
{ return "Moduldokumentasjon"; }
QCString trClassDocumentation() /*! This is used in LaTeX as the title of the chapter containing
{ return "Dokumentasjon av klasser"; } * the documentation of all classes, structs and unions.
*/
virtual QCString trClassDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datastruktur-dokumentasjon";
}
else
{
return "Klassedokumentasjon";
}
}
QCString trFileDocumentation() /*! This is used in LaTeX as the title of the chapter containing
{ return "Dokumentasjon av filer"; } * the documentation of all files.
*/
virtual QCString trFileDocumentation()
{ return "Fildokumentasjon"; }
QCString trExampleDocumentation() /*! This is used in LaTeX as the title of the chapter containing
{ return "Dokumentasjon av eksempler"; } * the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
{ return "Eksempeldokumentasjon"; }
QCString trPageDocumentation() /*! This is used in LaTeX as the title of the chapter containing
{ return "Dokumentasjon av sider"; } * the documentation of all related pages.
*/
virtual QCString trPageDocumentation()
{ return "Sidedokumentasjon"; }
QCString trReferenceManual() /*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return "Referansemanual"; } { return "Referansemanual"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
{ return "Definerte"; }
QCString trDefines() /*! This is used in the documentation of a file as a header before the
{ return "Definisjoner"; } * list of function prototypes
QCString trFuncProtos() */
{ return "Funksjonsprototyper"; } virtual QCString trFuncProtos()
QCString trTypedefs() { return "Funksjonprototyper"; }
{ return "Typedefinisjoner"; }
QCString trEnumerations()
{ return "Enumererte typer"; }
QCString trFunctions()
{ return "Funksjoner"; }
QCString trVariables() /*! This is used in the documentation of a file as a header before the
{ return "Variable"; } * list of typedefs
*/
virtual QCString trTypedefs()
{ return "Typedefer"; }
QCString trEnumerationValues() /*! This is used in the documentation of a file as a header before the
{ return "Enumererte typers verdier"; } * list of enumerations
*/
virtual QCString trEnumerations()
{ return "Enumerasjoner"; }
QCString trAuthor() /*! This is used in the documentation of a file as a header before the
{ return "Forfatter"; } * list of (global) functions
*/
virtual QCString trFunctions()
{ return "Funksjoner"; }
QCString trDefineDocumentation() /*! This is used in the documentation of a file as a header before the
{ return "Dokumentasjon over definisjoner"; } * list of (global) variables
*/
virtual QCString trVariables()
{ return "Variable"; }
QCString trFunctionPrototypeDocumentation() /*! This is used in the documentation of a file as a header before the
{ return "Dokumentasjon over funksjonsprototyper"; } * list of (global) variables
*/
virtual QCString trEnumerationValues()
{ return "Enumerasjonsverdier"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
{ return "Define-dokumentasjon"; }
QCString trTypedefDocumentation() /*! This is used in the documentation of a file/namespace before the list
{ return "Dokumentasjon over typedefinisjoner"; } * of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return "Funksjonsprototype-dokumentasjon"; }
QCString trEnumerationTypeDocumentation() /*! This is used in the documentation of a file/namespace before the list
{ return "Dokumentasjon over enumererte typer"; } * of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return "Typedef-dokumentasjon"; }
QCString trEnumerationValueDocumentation() /*! This is used in the documentation of a file/namespace before the list
{ return "Dokumentasjon over enumererte typers verdier"; } * of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
{ return "Enumerert type-dokumentasjon"; }
QCString trFunctionDocumentation() /*! This is used in the documentation of a file/namespace before the list
{ return "Dokumentasjon over funksjoner"; } * of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
{ return "Enumerert verdi-dokumentasjon"; }
QCString trVariableDocumentation() /*! This is used in the documentation of a file/namespace before the list
{ return "Dokumentasjon over variable"; } * of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
{ return "Funksjonsdokumentasjon"; }
QCString trCompounds() /*! This is used in the documentation of a file/namespace before the list
{ return "Sammensetning"; } * of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
{ return "Variabeldokumentasjon"; }
QCString trFiles() /*! This is used in the documentation of a file/namespace/group before
{ return "Filer"; } * the list of links to documented compounds
*/
virtual QCString trCompounds()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datastrukturer";
}
else
{
return "Klasser";
}
}
QCString trGeneratedAt(const char *date,const char *projName) /*! This is used in the standard footer of each page and indicates when
{ * the page was generated
QCString result=(QCString)"Generert "+date; */
virtual QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result=(QCString)"Generert på "+date;
if (projName) result+=(QCString)" for "+projName; if (projName) result+=(QCString)" for "+projName;
result+=(QCString)" av"; result+=(QCString)" av";
return result; return result;
} }
/*! This is part of the sentence used in the standard footer of each page.
QCString trWrittenBy() */
virtual QCString trWrittenBy()
{ {
return "skrevet av"; return "skrevet av";
} }
QCString trClassDiagram(const char *clName) /*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName)
{ {
return (QCString)"Klassediagram for "+clName; return (QCString)"Arvediagram for "+clName+":";
} }
/*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly()
{ return "Kun for intern bruk."; }
QCString trForInternalUseOnly() /*! this text is generated when the \\reimp command is used. */
{ return "Kun for internt bruk."; } virtual QCString trReimplementedForInternalReasons()
{ return "Reimplementert av interne grunner; API er ikke påvirket."; }
QCString trReimplementedForInternalReasons()
{ return "Omskrevet av interne grunner ; API pvirkes ikke.";}
QCString trWarning() /*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
{ return "Advarsel"; } { return "Advarsel"; }
QCString trBugsAndLimitations() /*! this text is generated when the \\bug command is used. */
{ return "Feil och begrensninger"; } virtual QCString trBugsAndLimitations()
{ return "Bugs og begrensninger"; }
QCString trVersion() /*! this text is generated when the \\version command is used. */
virtual QCString trVersion()
{ return "Versjon"; } { return "Versjon"; }
QCString trDate() /*! this text is generated when the \\date command is used. */
virtual QCString trDate()
{ return "Dato"; } { return "Dato"; }
QCString trAuthors() /*! this text is generated when the \\return command is used. */
{ return "Forfatter(e)"; } virtual QCString trReturns()
QCString trReturns()
{ return "Returnerer"; } { return "Returnerer"; }
QCString trSeeAlso() /*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso()
{ return "Se også"; } { return "Se også"; }
QCString trParameters() /*! this text is generated when the \\param command is used. */
virtual QCString trParameters()
{ return "Parametre"; } { return "Parametre"; }
QCString trExceptions() /*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
{ return "Unntak"; } { return "Unntak"; }
QCString trGeneratedBy() /*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
{ return "Generert av"; } { return "Generert av"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307 // new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList() virtual QCString trNamespaceList()
{ return "Navneomrdeliste"; } { return "Navneromliste"; }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll) virtual QCString trNamespaceListDescription(bool extractAll)
{ {
QCString result="Her er en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterade "; if (!extractAll) result+="dokumenterte ";
result+="navneomrder med en kort forklaring:"; result+="navnerom med korte beskrivelser:";
return result; return result;
} }
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
virtual QCString trFriends() virtual QCString trFriends()
{ return "Venner"; } { return "Venner"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990405 // new since 0.49-990405
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used in the class documentation as a header before the list of all
* related classes
*/
virtual QCString trRelatedFunctionDocumentation() virtual QCString trRelatedFunctionDocumentation()
{ return "Venners och beslektede funksjoners dokumentasjon"; } { return "Venner Og Relaterte Funksjoner-dokumentasjon"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990425 // new since 0.49-990425
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used as the title of the HTML page of a class/struct/union */
virtual QCString trCompoundReference(const char *clName, virtual QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType, ClassDef::CompoundType compType,
bool /*isTemplate*/) bool isTemplate)
{ {
QCString result=(QCString)clName+" "; QCString result=(QCString)clName;
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+=" klasse"; break; case ClassDef::Class: result+=" Klasse"; break;
case ClassDef::Struct: result+=" struktur"; break; case ClassDef::Struct: result+=" Struct"; break;
case ClassDef::Union: result+=" union"; break; case ClassDef::Union: result+=" Union"; break;
case ClassDef::Interface: result+=" grensesnitt"; break; case ClassDef::Interface: result+=" Grensesnitt"; break;
case ClassDef::Protocol: result+=" protocol"; break; // translate me! case ClassDef::Exception: result+=" Unntak"; break;
case ClassDef::Category: result+=" category"; break; // translate me! case ClassDef::Protocol: result+=" Protocol"; break;
case ClassDef::Exception: result+=" unntak"; break; case ClassDef::Category: result+=" Category"; break;
} }
result+="referanse"; if (isTemplate) result+=" Mal";
result+=" Referanse";
return result; return result;
} }
/*! used as the title of the HTML page of a file */
virtual QCString trFileReference(const char *fileName) virtual QCString trFileReference(const char *fileName)
{ {
QCString result=fileName; QCString result=fileName;
result+=" filreferanse"; result+=" Filreferanse";
return result; return result;
} }
/*! used as the title of the HTML page of a namespace */
virtual QCString trNamespaceReference(const char *namespaceName) virtual QCString trNamespaceReference(const char *namespaceName)
{ {
QCString result=namespaceName; QCString result=namespaceName;
result+=" navneomrdereferanse"; result+=" Navneromsreferanse";
return result; return result;
} }
virtual QCString trPublicMembers() virtual QCString trPublicMembers()
{ return "Public medlemmer"; } { return "Public Medlemsfunksjoner"; }
virtual QCString trPublicSlots() virtual QCString trPublicSlots()
{ return "Public slots"; } { return "Public Slots"; }
virtual QCString trSignals() virtual QCString trSignals()
{ return "Signaler"; } { return "Signaler"; }
virtual QCString trStaticPublicMembers() virtual QCString trStaticPublicMembers()
{ return "Statiske public medlemmer"; } { return "Statiske Public Medlemsfunksjoner"; }
virtual QCString trProtectedMembers() virtual QCString trProtectedMembers()
{ return "Beskyttede medlemmer"; } { return "Protected Memdlemsfunksjoner"; }
virtual QCString trProtectedSlots() virtual QCString trProtectedSlots()
{ return "Beskyttede slots"; } { return "Protected Slots"; }
virtual QCString trStaticProtectedMembers() virtual QCString trStaticProtectedMembers()
{ return "Statiska beskyttede medlemmer"; } { return "Statiske Protected Medlemsfunksjoner"; }
virtual QCString trPrivateMembers() virtual QCString trPrivateMembers()
{ return "Private medlemmer"; } { return "Private Medlemsfunksjoner"; }
virtual QCString trPrivateSlots() virtual QCString trPrivateSlots()
{ return "Private slots"; } { return "Private Slots"; }
virtual QCString trStaticPrivateMembers() virtual QCString trStaticPrivateMembers()
{ return "Statiske private medlemmer"; } { return "Statiske Private Medlemsfunksjoner"; }
// end of member secsjons
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
virtual QCString trWriteList(int numEntries) virtual QCString trWriteList(int numEntries)
{ {
// this funcsjon is used to produce a comma-separated list of items.
// use generateMarker(i) to indicate where item i should be put.
QCString result; QCString result;
int i; int i;
// the inherits list contain `numEntries' classes // the inherits list contain `numEntries' classes
for (i=0;i<numEntries;i++) for (i=0;i<numEntries;i++)
{ {
// use generateMarker to generate placeholders for the class links! // use generateMarker to generate placeholders for the class links!
result+=generateMarker(i); // generate marker for entry i in the list result+=generateMarker(i); // generate marker for entry i in the list
// (order is left to right) // (order is left to right)
if (i!=numEntries-1) // not the last entry, so we need a separator if (i!=numEntries-1) // not the last entry, so we need a separator
{ {
if (i<numEntries-2) // not the fore last entry if (i<numEntries-2) // not the fore last entry
result+=", "; result+=", ";
else // the fore last entry else // the fore last entry
result+=", og "; result+=", og ";
} }
} }
return result; return result;
} }
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
virtual QCString trInheritsList(int numEntries) virtual QCString trInheritsList(int numEntries)
// used in class documentasjon to produce a list of base classes,
// if class diagrams are disabled.
{ {
return "Arver "+trWriteList(numEntries)+"."; return "Arver "+trWriteList(numEntries)+".";
} }
/*! used in class documentation to produce a list of super classes,
* if class diagrams are disabled.
*/
virtual QCString trInheritedByList(int numEntries) virtual QCString trInheritedByList(int numEntries)
// used in class documentasjon to produce a list of super classes,
// if class diagrams are disabled.
{ {
return "Arvet fra "+trWriteList(numEntries)+"."; return "Arvet av "+trWriteList(numEntries)+".";
} }
/*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
virtual QCString trReimplementedFromList(int numEntries) virtual QCString trReimplementedFromList(int numEntries)
// used in member documentasjon blocks to produce a list of
// members that are hidden by this one.
{ {
return "Reimplementert fra "+trWriteList(numEntries)+"."; return "Reimplementert fra "+trWriteList(numEntries)+".";
} }
/*! used in member documentation blocks to produce a list of
* all member that overwrite the implementation of this member.
*/
virtual QCString trReimplementedInList(int numEntries) virtual QCString trReimplementedInList(int numEntries)
{ {
// used in member documentasjon blocks to produce a list of
// all member that overwrite the implementasjon of this member.
return "Reimplementert i "+trWriteList(numEntries)+"."; return "Reimplementert i "+trWriteList(numEntries)+".";
} }
/*! This is put above each page as a link to all members of namespaces. */
virtual QCString trNamespaceMembers() virtual QCString trNamespaceMembers()
{ return "Navneomrdemedlemmer"; } { return "Navneromsmedlemmer"; }
/*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll) virtual QCString trNamespaceMemberDescription(bool extractAll)
{ {
QCString result="Her er en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterte "; if (!extractAll) result+="dokumenterte ";
result+="navneomrdemedlemmer med lenker til "; result+="navneromsmedlemmer med koblinger til ";
if (extractAll) if (extractAll)
result+=" navneomrde-dokumentasjonen for hvert medlem:"; result+="navneromsdokumentasjonen for hvert medlem:";
else else
result+="de navneomrder de tilhrer:"; result+="navnerommet de hører til:";
return result; return result;
} }
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex() virtual QCString trNamespaceIndex()
{ return "Navneomrdeindeks"; } { return "Navneromsindeks"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation() virtual QCString trNamespaceDocumentation()
{ return "Navneomrde-dokumentasjon"; } { return "Navneromsdokumentasjon"; }
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522 // new since 0.49-990522
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! This is used in the documentasjon before the list of all /*! This is used in the documentation before the list of all
* namespaces in a file. * namespaces in a file.
*/ */
virtual QCString trNamespaces() virtual QCString trNamespaces()
{ return "Navneomrder"; } { return "Navnerom"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990728 // new since 0.49-990728
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! This is put at the bottom of a class documentasjon page and is /*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page. * followed by a list of files that were used to generate the page.
*/ */
virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
bool single) bool single)
{ // here s is one of " Class", " Struct" or " Union" { // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file // single is true implies a single file
QCString result=(QCString)"Dokumentasjonen for "; QCString result=(QCString)"The documentation for this ";
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+="denne klasse "; break; case ClassDef::Class: result+="klasse"; break;
case ClassDef::Struct: result+="denne strukt "; break; case ClassDef::Struct: result+="struct"; break;
case ClassDef::Union: result+="denne union "; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="dette grensesnittet "; break; case ClassDef::Interface: result+="interface"; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me! case ClassDef::Exception: result+="unntak"; break;
case ClassDef::Category: result+="category"; break; // translate me! case ClassDef::Protocol: result+="protocol"; break;
case ClassDef::Exception: result+="unntak "; break; case ClassDef::Category: result+="category"; break;
} }
result+="var generert fra flgende fil"; result+=" ble generert fra følgende fil";
if (single) result+=":"; else result+="er:"; if (single) result+=":"; else result+="er:";
return result; return result;
} }
...@@ -499,9 +818,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -499,9 +818,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
* list. * list.
*/ */
virtual QCString trAlphabeticalList() virtual QCString trAlphabeticalList()
{ { return "Alfabetisk Liste"; }
return "Alfabetisk liste";
}
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990901 // new since 0.49-990901
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -516,7 +834,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -516,7 +834,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
{ return "Hovedside"; } { return "Hovedside"; }
/*! This is used in references to page that are put in the LaTeX /*! This is used in references to page that are put in the LaTeX
* documentasjon. It should be an abbreviasjon of the word page. * documentation. It should be an abbreviation of the word page.
*/ */
virtual QCString trPageAbbreviation() virtual QCString trPageAbbreviation()
{ return "s."; } { return "s."; }
...@@ -531,12 +849,13 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -531,12 +849,13 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
} }
virtual QCString trDefinedAtLineInSourceFile() virtual QCString trDefinedAtLineInSourceFile()
{ {
return "Definisjon p rad @0 i filen @1."; return "Definisjon på linje @0 i filen @1.";
} }
virtual QCString trDefinedInSourceFile() virtual QCString trDefinedInSourceFile()
{ {
return "Definisjon i filen @0."; return "Definisjon i filen @0.";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-991205 // new since 0.49-991205
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -553,37 +872,38 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -553,37 +872,38 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
/*! this text is put before a collaboration diagram */ /*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName) virtual QCString trCollaborationDiagram(const char *clName)
{ {
return (QCString)"Samarbeidsdiagram for "+clName+":"; return (QCString)"Kollaborasjonsdiagram for "+clName+":";
} }
/*! this text is put before an include dependency graph */ /*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName) virtual QCString trInclDepGraph(const char *fName)
{ {
return (QCString)"Include-avhengighetsgraf for "+fName+":"; return (QCString)"Inkluderingsavhengighetsgraf for "+fName+":";
} }
/*! header that is put before the list of constructor/destructors. */ /*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation() virtual QCString trConstructorDocumentation()
{ {
return "Konstruktr- og Destruktrdokumentasjon"; return "Konstruktør- & Destruktør-dokumentasjon";
} }
/*! Used in the file documentation to point to the corresponding sources. */ /*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode() virtual QCString trGotoSourceCode()
{ {
return "G til kildekoden for denne filen."; return "Gå til kildekoden til denne filen.";
} }
/*! Used in the file sources to point to the corresponding documentation. */ /*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation() virtual QCString trGotoDocumentation()
{ {
return "G til dokumentasjonen for denne filen."; return "Gå til dokumentasjonen til denne filen.";
} }
/*! Text for the \\pre command */ /*! Text for the \\pre command */
virtual QCString trPrecondition() virtual QCString trPrecondition()
{ {
return "Fr-kondisjon"; return "Førbetingelse";
} }
/*! Text for the \\post command */ /*! Text for the \\post command */
virtual QCString trPostcondition() virtual QCString trPostcondition()
{ {
return "Etter-kondisjon"; return "Etterbetingelse";
} }
/*! Text for the \\invariant command */ /*! Text for the \\invariant command */
virtual QCString trInvariant() virtual QCString trInvariant()
...@@ -593,7 +913,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -593,7 +913,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
/*! Text shown before a multi-line variable/enum initialization */ /*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue() virtual QCString trInitialValue()
{ {
return "Initializer:"; return "Startverdi:";
} }
/*! Text used the source code in the file index */ /*! Text used the source code in the file index */
virtual QCString trCode() virtual QCString trCode()
...@@ -602,19 +922,19 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -602,19 +922,19 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
} }
virtual QCString trGraphicalHierarchy() virtual QCString trGraphicalHierarchy()
{ {
return "Graphical Class Hierarchy"; return "Grafisk klassehierarki";
} }
virtual QCString trGotoGraphicalHierarchy() virtual QCString trGotoGraphicalHierarchy()
{ {
return "Go to the graphical class hierarchy"; return "Gå til det grafiske klasse hierarkiet";
} }
virtual QCString trGotoTextualHierarchy() virtual QCString trGotoTextualHierarchy()
{ {
return "Go to the textual class hierarchy"; return "Gå til tekst-klassehierarki";
} }
virtual QCString trPageIndex() virtual QCString trPageIndex()
{ {
return "Sideindeks"; return "Innhold";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -627,39 +947,46 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -627,39 +947,46 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
} }
virtual QCString trPublicTypes() virtual QCString trPublicTypes()
{ {
return "Public Typer"; return "Public typer";
} }
virtual QCString trPublicAttribs() virtual QCString trPublicAttribs()
{ {
return "Public Attributter"; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datafelt";
}
else
{
return "Public attributter";
}
} }
virtual QCString trStaticPublicAttribs() virtual QCString trStaticPublicAttribs()
{ {
return "Statiske Public Attributter"; return "Statiske public attributter";
} }
virtual QCString trProtectedTypes() virtual QCString trProtectedTypes()
{ {
return "Beskyttede Typer"; return "Protected typer";
} }
virtual QCString trProtectedAttribs() virtual QCString trProtectedAttribs()
{ {
return "Beskyttede Attributter"; return "Protected attributter";
} }
virtual QCString trStaticProtectedAttribs() virtual QCString trStaticProtectedAttribs()
{ {
return "Statiske Beskyttede Attributter"; return "Statiske protected attributter";
} }
virtual QCString trPrivateTypes() virtual QCString trPrivateTypes()
{ {
return "Private Typer"; return "Private typer";
} }
virtual QCString trPrivateAttribs() virtual QCString trPrivateAttribs()
{ {
return "Private Attributter"; return "Private attributter";
} }
virtual QCString trStaticPrivateAttribs() virtual QCString trStaticPrivateAttribs()
{ {
return "Statiske Private Attributter"; return "Statiske private attributter";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -683,7 +1010,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -683,7 +1010,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
virtual QCString trReferencedBy() virtual QCString trReferencedBy()
{ {
return "Referert at"; return "Referert av";
} }
virtual QCString trRemarks() virtual QCString trRemarks()
{ {
...@@ -691,12 +1018,12 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -691,12 +1018,12 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
} }
virtual QCString trAttention() virtual QCString trAttention()
{ {
return "Attention"; return "Viktig";
} }
virtual QCString trInclByDepGraph() virtual QCString trInclByDepGraph()
{ {
return "This graph shows which files directly or " return "Denne grafen viser hvilke filer som direkte eller "
"indirectly include this file:"; "indirekte inkluderer denne filen:";
} }
virtual QCString trSince() virtual QCString trSince()
{ {
...@@ -710,69 +1037,68 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -710,69 +1037,68 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
/*! title of the graph legend page */ /*! title of the graph legend page */
virtual QCString trLegendTitle() virtual QCString trLegendTitle()
{ {
return "Graph Legend"; return "Symbolforklaring";
} }
/*! page explaining how the dot graph's should be interpreted */ /*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs() virtual QCString trLegendDocs()
{ {
return return
"This page explains how to interpret the graphs that are generated " "Denne siden forklarer hvordan man tolker grafene doxygen genererer.<p>\n"
"by doxygen.<p>\n" "Vi baserer oss på følgende eksempel:\n"
"Consider the following example:\n" "\\code\n"
"\\code\n" "/*! Usynlig klasse pga. trunkasjon */\n"
"/*! Invisible class because of truncation */\n" "class Invisible { };\n\n"
"class Invisible { };\n\n" "/*! Trunkert klasse, arve-relasjon er skjult */\n"
"/*! Truncated class, inheritance relation is hidden */\n" "class Truncated : public Invisible { };\n\n"
"class Truncated : public Invisible { };\n\n" "/* Klasse som ikke er dokumentert med doxygen-kommentarer */"
"/* Class not documented with doxygen comments */\n" "class Undocumented { };\n\n"
"class Undocumented { };\n\n" "/*! Klasse med public-arv */\n"
"/*! Class that is inherited using public inheritance */\n"
"class PublicBase : public Truncated { };\n\n" "class PublicBase : public Truncated { };\n\n"
"/*! Class that is inherited using protected inheritance */\n" "/*! Klasse med protected-arv */\n"
"class ProtectedBase { };\n\n" "class ProtectedBase { };\n\n"
"/*! Class that is inherited using private inheritance */\n" "/*! Klasse med private-arv */\n"
"class PrivateBase { };\n\n" "class PrivateBase { };\n\n"
"/*! Class that is used by the Inherited class */\n" "/*! Klasse som blir brukt av klassen Inherited */\n"
"class Used { };\n\n" "class Used { };\n\n"
"/*! Super class that inherits a number of other classes */\n" "/*! Super-klasse som arver flere andre klasser */\n"
"class Inherited : public PublicBase,\n" "class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n" " protected ProtectedBase,\n"
" private PrivateBase,\n" " private PrivateBase,\n"
" public Undocumented\n" " public Undocumented\n"
" public Templ<int>\n"
"{\n" "{\n"
" private:\n" " private:\n"
" Used *m_usedClass;\n" " Used *m_usedClass;\n"
"};\n" "};\n"
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "Hvis \\c MAX_DOT_GRAPH_HEIGHT er satt til 200 i "
"is set to 200 this will result in the following graph:" "konfigurasjonsfila vil dette resultere i følgende graf:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "Boksene i grafen over betyr følgende:\n"
"<ul>\n"
"<li>A filled black box represents the struct or class for which the "
"graph is generated.\n"
"<li>A box with a black border denotes a documented struct or class.\n"
"<li>A box with a grey border denotes an undocumented struct or class.\n"
"<li>A box with a red border denotes a documented struct or class for\n"
"which not all inheritance/containment relations are shown. A graph is "
"truncated if it does not fit within the specified boundaries."
"</ul>\n"
"The arrows have the following meaning:\n"
"<ul>\n" "<ul>\n"
"<li>A dark blue arrow is used to visualize a public inheritance " "<li>En fylt svart boks representerer klassen grafen "
"relation between two classes.\n" "er generert for.\n"
"<li>A dark green arrow is used for protected inheritance.\n" "<li>En boks med svart ramme angir en dokumentert struct eller klasse.\n"
"<li>A dark red arrow is used for private inheritance.\n" "<li>En boks med grå ramme angir en udokumentert struct eller klasse.\n"
"<li>A purple dashed arrow is used if a class is contained or used " "<li>En boks med rød ramme angir en dokumentert struct eller klasse "
"by another class. The arrow is labeled with the variable(s) " "der ikke alle relasjoner er vist. En graf blir trunkert om den ikke "
"through which the pointed class or struct is accessible. \n" "passer innenfor de spesifiserte rammene.\n"
"</ul>\n"; "</ul>\n"
"Pilene i grafen har følgende betydning:\n"
"</ul>\n"
"<li>En mørk blå pil brukes til å visualisere public-arv mellom to klasser.\n"
"<li>En mørk grønn pil brukes for protected-arv.\n"
"<li>En mørk rød pil angir private-arv.\n"
"<li>En stiplet lilla pil angir at en klasse er inkludert eller brukt "
"i en annen klasse. Pilen er merket med variablen(e) klassen "
"er tilgjengelig gjennom.\n"
"</ul>\n";
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
virtual QCString trLegend() virtual QCString trLegend()
{ {
return "legend"; return "symbolforklaring";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -797,17 +1123,430 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 ...@@ -797,17 +1123,430 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2
/*! Used as a section header for KDE-2 IDL methods */ /*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods() virtual QCString trDCOPMethods()
{ {
return "DCOP Methods"; return "DCOP-metoder";
} }
};
#endif //////////////////////////////////////////////////////////////////////////
// new since 1.2.1
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for IDL properties */
virtual QCString trProperties()
{
return "Egenskaper";
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
return "Egenskaps-dokumentasjon";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.4
//////////////////////////////////////////////////////////////////////////
/*! Used for Java interfaces in the summary section of Java packages */
virtual QCString trInterfaces()
{
return "Grensesnitt";
}
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Datastrukturer";
}
else
{
return "Klasser";
}
}
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
{
return (QCString)"Package "+name;
}
/*! Title of the package index page */
virtual QCString trPackageList()
{
return "Pakke-liste";
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
return "Her er pakkene med korte beskrivelser (om tilgjengelig):";
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
return "Pakker";
}
/*! Used as a chapter title for Latex & RTF output */
virtual QCString trPackageDocumentation()
{
return "Pakke-dokumentasjon";
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
return "Verdi:";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
return "Bug";
}
/*! Used as the header of the bug list */
virtual QCString trBugList()
{
return "Bug-liste";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.6
//////////////////////////////////////////////////////////////////////////
/*! Used as ansicpg for RTF file
*
* The following table shows the correlation of Charset name, Charset Value and
* <pre>
* Codepage number:
* Charset Name Charset Value(hex) Codepage number
* ------------------------------------------------------
* DEFAULT_CHARSET 1 (x01)
* SYMBOL_CHARSET 2 (x02)
* OEM_CHARSET 255 (xFF)
* ANSI_CHARSET 0 (x00) 1252
* RUSSIAN_CHARSET 204 (xCC) 1251
* EE_CHARSET 238 (xEE) 1250
* GREEK_CHARSET 161 (xA1) 1253
* TURKISH_CHARSET 162 (xA2) 1254
* BALTIC_CHARSET 186 (xBA) 1257
* HEBREW_CHARSET 177 (xB1) 1255
* ARABIC _CHARSET 178 (xB2) 1256
* SHIFTJIS_CHARSET 128 (x80) 932
* HANGEUL_CHARSET 129 (x81) 949
* GB2313_CHARSET 134 (x86) 936
* CHINESEBIG5_CHARSET 136 (x88) 950
* </pre>
*
*/
virtual QCString trRTFansicp()
{
return "1252";
}
/*! Used as ansicpg for RTF fcharset
* \see trRTFansicp() for a table of possible values.
*/
virtual QCString trRTFCharSet()
{
return "0";
}
/*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex()
{
return "Indeks";
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trClass(bool first_capital, bool singular)
{
QCString result((first_capital ? "Klasse" : "klasse"));
if (!singular) result+="r";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trFile(bool first_capital, bool singular)
{
QCString result((first_capital ? "Fil" : "fil"));
if (!singular) result+="er";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trNamespace(bool first_capital, bool singular)
{
QCString result((first_capital ? "Navnerom" : "navnerom"));
if (!singular) result+="";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGroup(bool first_capital, bool singular)
{
QCString result((first_capital ? "Gruppe" : "gruppe"));
if (!singular) result+="r";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trPage(bool first_capital, bool singular)
{
QCString result((first_capital ? "Side" : "side"));
if (!singular) result+="r";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trMember(bool first_capital, bool singular)
{
QCString result((first_capital ? "Medlem" : "medlem"));
if (!singular) result+="mer";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trField(bool first_capital, bool singular)
{
QCString result((first_capital ? "Felt" : "felt"));
if (!singular) result+="";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global"));
if (!singular) result+="e";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.7
//////////////////////////////////////////////////////////////////////////
/*! This text is generated when the \\author command is used and
* for the author section in man pages. */
virtual QCString trAuthor(bool first_capital, bool singular)
{
QCString result((first_capital ? "Forfatter" : "forfatter"));
if (!singular) result+="e";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Referanser";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.13
//////////////////////////////////////////////////////////////////////////
/*! used in member documentation blocks to produce a list of
* members that are implemented by this one.
*/
virtual QCString trImplementedFromList(int numEntries)
{
return "Implementerer "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* all members that implement this abstract member.
*/
virtual QCString trImplementedInList(int numEntries)
{
return "Implementert i "+trWriteList(numEntries)+".";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Innholdsfortegnelse";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.17
//////////////////////////////////////////////////////////////////////////
/*! Used as the header of the list of item that have been
* flagged deprecated
*/
virtual QCString trDeprecatedList()
{
return "Liste over foreldede enheter";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.18
//////////////////////////////////////////////////////////////////////////
/*! Used as a header for declaration section of the events found in
* a C# program
*/
virtual QCString trEvents()
{
return "Hendelser";
}
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
return "Hendelsesdokumentasjon";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a heading for a list of Java class types with package scope.
*/
virtual QCString trPackageTypes()
{
return "Pakketyper";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return "Pakkefunksjoner";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return "Statiske Pakkefunksjoner";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return "Pakkeattributter";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return "Statiske Pakkeattributter";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.1
//////////////////////////////////////////////////////////////////////////
/*! Used in the quick index of a class/file/namespace member list page
* to link to the unfiltered list of all members.
*/
virtual QCString trAll()
{
return "Alle";
}
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
return "Her er kall-grafen for denne funksjonen:";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
/*! When the search engine is enabled this text is put in the header
* of each page before the field where one can enter the text to search
* for.
*/
virtual QCString trSearchForIndex()
{
return "Søk etter";
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual QCString trSearchResultsTitle()
{
return "Søkeresultater";
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
* Inside the text you can put the special marker $num to insert
* the number representing the actual number of search results.
* The @a numDocuments parameter can be either 0, 1 or 2, where the
* value 2 represents 2 or more matches. HTML markup is allowed inside
* the returned string.
*/
virtual QCString trSearchResults(int numDocuments)
{
if (numDocuments==0)
{
return "Beklager, men ingen dokumenter ble funnet.";
}
else if (numDocuments==1)
{
return "Fant <b>ett</b> dokument som passet ditt søk.";
}
else
{
return "Fant <b>$num</b> dokumenter som passet ditt søk. "
"Viser beste treff først.";
}
}
/*! This string is put before the list of matched words, for each search
* result. What follows is the list of words that matched the query.
*/
virtual QCString trSearchMatches()
{
return "Treff:";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return "Kildefil " + filename;
}
};
#endif
...@@ -662,7 +662,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe ...@@ -662,7 +662,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe
} }
// remember computed value for next time // remember computed value for next time
if (Doxygen::lookupCacheEnabled && result && result->getDefFileName()!="<code>") if (result && result->getDefFileName()!="<code>")
// this check is needed to prevent that temporary classes that are // this check is needed to prevent that temporary classes that are
// introduced while parsing code fragments are being cached here. // introduced while parsing code fragments are being cached here.
{ {
...@@ -1045,7 +1045,7 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1045,7 +1045,7 @@ ClassDef *getResolvedClassRec(Definition *scope,
QCString key=scope->name()+"+"+name+"+"+explicitScopePart; QCString key=scope->name()+"+"+name+"+"+explicitScopePart;
LookupInfo *pval=Doxygen::lookupCache.find(key); LookupInfo *pval=Doxygen::lookupCache.find(key);
//printf("Searching for %s result=%p\n",key.data(),pval); //printf("Searching for %s result=%p\n",key.data(),pval);
if (Doxygen::lookupCacheEnabled && pval) if (pval)
{ {
if (pTemplSpec) *pTemplSpec=pval->templSpec; if (pTemplSpec) *pTemplSpec=pval->templSpec;
if (pTypeDef) *pTypeDef=pval->typeDef; if (pTypeDef) *pTypeDef=pval->typeDef;
...@@ -1143,14 +1143,7 @@ ClassDef *getResolvedClassRec(Definition *scope, ...@@ -1143,14 +1143,7 @@ ClassDef *getResolvedClassRec(Definition *scope,
} }
else else
{ {
if (Doxygen::lookupCacheEnabled) Doxygen::lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec));
{
Doxygen::lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec));
}
else // remove the 0 key from the cache
{
Doxygen::lookupCache.remove(key);
}
} }
//printf("] bestMatch=%s distance=%d\n", //printf("] bestMatch=%s distance=%d\n",
// bestMatch?bestMatch->name().data():"<none>",minDistance); // bestMatch?bestMatch->name().data():"<none>",minDistance);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment