Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_sv.h
1 /******************************************************************************
2  *
3  * 
4  *
5  * Copyright (C) 1997-2012 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby 
9  * granted. No representations are made about the suitability of this software 
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17
18 /*
19 ==================================================================================
20 Svensk översättning av:
21 Samuel Hägglund      <sahag96@ite.mh.se>
22 Xet Erixon           <xet@xeqt.com>
23 Mikael Hallin        <mikaelhallin@yahoo.se>           2003-07-28
24 ==================================================================================
25 Uppdateringar.
26 1999/04/29
27 *  Omskrivningar av en hel del ordval, t.ex.
28    ENG                  INNAN          EFTER
29    compound             inhängnad      sammansatt
30    structs              structs        strukter
31    unions               unions         unioner
32
33    osv...
34
35 *  Alla översättnings-strängar returnerar i alla fall en något så när vettig
36    förklaring...
37
38 1999/05/27
39 *  Det verkade som vi glömt en del mellanslag i vissa strängar vilket resulterade
40    i att en del ord blev ihopskrivna.
41
42 *  Bytt en del ordval igen...
43    ENG                       INNAN          EFTER
44    reference manual          Uppslagsbok    referensmanual
45
46 *  Skrivit ihop en del ord som innan hade bindestreck
47 *  En del nya översättningar är tillagda.
48 *  Gamla översättningar borttagna
49
50 ===================================================================================
51 Problem!
52    Slot: nån hygglig svensk översättning???
53
54    Skicka gärna synpunkter.
55 ===================================================================================
56 1999/09/01
57 *  Det verkar som om "namnrymd" är en hyggligt vedertagen svensk översättning
58    av "namespace", så jag kör med det från och med nu.
59 *  "interface" heter numera "gränssnitt"
60
61 2003/07/28
62 *  Jag har updaterat översättningen efter ett par års träda..
63 Problem!
64    Deprecated: nån hygglig svensk översättning???
65
66    Skicka gärna synpunkter.
67 */
68
69 #ifndef TRANSLATOR_SE_H
70 #define TRANSLATOR_SE_H
71
72 class TranslatorSwedish : public TranslatorAdapter_1_6_0
73 {
74   public:
75
76     virtual QCString idLanguage()
77     { return "swedish"; }
78
79     /*! Used to get the LaTeX command(s) for the language support. 
80      *  This method should return string with commands that switch
81      *  LaTeX to the desired language.  For example 
82      *  <pre>"\\usepackage[german]{babel}\n"
83      *  </pre>
84      *  or
85      *  <pre>"\\usepackage{polski}\n"
86      *  "\\usepackage[latin2]{inputenc}\n"
87      *  "\\usepackage[T1]{fontenc}\n"
88      *  </pre>
89      * 
90      * The English LaTeX does not use such commands.  Because of this
91      * the empty string is returned in this implementation.
92      */
93     virtual QCString latexLanguageSupportCommand()
94     {
95       return "\\usepackage[swedish]{babel}\n";
96     }
97
98     /*! return the language charset. This will be used for the HTML output */
99     virtual QCString idLanguageCharset()
100     {
101       return "iso-8859-1";
102     }
103
104     virtual QCString trRelatedFunctions()
105     { return "Besläktade funktioner"; }
106
107     virtual QCString trRelatedSubscript()
108     { return "(Observera att dessa inte är medlemsfunktioner)"; }
109
110     virtual QCString trDetailedDescription()
111     { return "Detaljerad beskrivning"; }
112
113     virtual QCString trMemberTypedefDocumentation()
114     { return "Dokumentation av typdefinierade medlemmar"; }
115
116     virtual QCString trMemberEnumerationDocumentation()
117     { return "Dokumentation av egenuppräknande medlemmar"; }
118
119     virtual QCString trMemberFunctionDocumentation()
120     { return "Dokumentation av medlemsfunktioner"; }
121
122     virtual QCString trMemberDataDocumentation()
123     {
124       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
125       {
126         return "Fält dokumentation"; 
127       }
128       else
129       {
130         return "Dokumentation av datamedlemmar";
131       }
132     }
133
134     virtual QCString trMore()
135     { return "Mer..."; }
136
137     virtual QCString trListOfAllMembers()
138     { return "Lista över alla medlemmar"; }
139
140     virtual QCString trMemberList()
141     { return "Medlemslista"; }
142
143     virtual QCString trThisIsTheListOfAllMembers()
144     { return "Det här är en fullständig lista över medlemmar för "; }
145
146     virtual QCString trIncludingInheritedMembers()
147     { return " med alla ärvda medlemmar."; }
148
149     virtual QCString trGeneratedAutomatically(const char *s)
150     { QCString result="Automatiskt skapad av Doxygen";
151       if (s) result+=(QCString)" för "+s;
152       result+=" från källkoden."; 
153       return result;
154     }
155
156     virtual QCString trEnumName()
157     { return "enum namn"; }
158
159     virtual QCString trEnumValue()
160     { return "enum värde"; }
161
162     virtual QCString trDefinedIn()
163     { return "definierad i"; }
164
165 /*
166     QCString trVerbatimText(const char *f)
167     { return (QCString)"Detta är den ordagranna texten från inkluderingsfilen "+f; }
168 */
169     virtual QCString trModules()
170     { return "Moduler"; }
171
172     virtual QCString trClassHierarchy()
173     { return "Klasshierarki"; }
174
175     virtual QCString trCompoundList()
176     {
177       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
178       {
179         return "Datastrukturer";
180       }
181       else
182       {
183         return "Sammansatt klasslista";
184       }
185     }
186
187     virtual QCString trFileList()
188     { return "Fillista"; }
189
190     virtual QCString trCompoundMembers()
191     {
192       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
193       {
194         return "Data fält"; 
195       }
196       else
197       {
198         return "Sammansatta klassmedlemmar";
199       }
200     }
201
202     virtual QCString trFileMembers()
203     { 
204       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
205       {
206         return "Globala symboler"; 
207       }
208       else
209       {
210         return "Filmedlemmar";
211       }
212     }
213
214     virtual QCString trRelatedPages()
215     { return "Besläktade sidor"; }
216
217     virtual QCString trExamples()
218     { return "Exempel"; }
219
220     virtual QCString trSearch()
221     { return "Sök"; }
222
223     virtual QCString trClassHierarchyDescription()
224     { return "Denna lista över arv är grovt, men inte helt, "
225              "sorterad i alfabetisk ordning:";
226     }
227
228     virtual QCString trFileListDescription(bool extractAll)
229     {
230       QCString result="Här följer en lista över alla ";
231       if (!extractAll) result+="dokumenterade ";
232       result+="filer, med en kort beskrivning:";
233       return result;
234     }
235
236     virtual QCString trCompoundListDescription()
237     { 
238       
239       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
240       {
241         return "Här följer datastrukturerna med korta beskrivningar:";
242       }
243       else
244       {
245         return "Här följer klasserna, strukterna, unionerna och "
246                "gränssnitten med korta beskrivningar:"; 
247       }
248     }
249
250     /*! This is an introduction to the page with all class members. */
251     virtual QCString trCompoundMembersDescription(bool extractAll)
252     {
253       QCString result="Här är en lista över alla ";
254       if (!extractAll)
255       {
256         result+="dokumenterade ";
257       }
258       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
259       {
260         result+="struktur- och unions-fält";
261       }
262       else
263       {
264         result+="klassmedlemmar";
265       }
266       result+=" med länkar till ";
267       if (!extractAll) 
268       {
269         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
270         {
271           result+="struktur/unions-dokumentationen för varje fält:";
272         }
273         else
274         {
275           result+="klassdokumentationen för varje medlem:";
276         }
277       }
278       else 
279       {
280         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
281         {
282           result+=" strukturerna/unionerna de tillhör:";
283         }
284         else
285         {
286           result+="klasserna de tillhör:";
287         }
288       }
289       return result;
290     }
291
292     virtual QCString trFileMembersDescription(bool extractAll)
293     {
294       QCString result="Här följer en lista över alla ";
295       if (!extractAll) result+="dokumenterade ";
296
297       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
298       {
299         result+="funktioner, variabler, definitioner, enumerationer "
300                 "och typdefinitioner";
301       }
302       else
303       {
304         result+= "filmedlemmar";
305       }
306       result+= " med länkar till ";
307       if (extractAll)
308         result+= "filerna som de tillhör:";
309       else
310         result+= "dokumentationen:";
311       return result;
312     }
313
314     virtual QCString trExamplesDescription()
315     { return "Här följer en lista med alla exempel:"; }
316
317     virtual QCString trRelatedPagesDescription()
318     { return "Här följer en lista över alla besläktade dokumentationssidor:";}
319
320     virtual QCString trModulesDescription()
321     { return "Här följer en lista över alla moduler:"; }
322
323     virtual QCString trDocumentation()
324     { return "Dokumentation"; }
325
326     virtual QCString trModuleIndex()
327     { return "Modulindex"; }
328
329     virtual QCString trHierarchicalIndex()
330     { return "Hierarkiskt Index"; }
331
332     /*! This is used in LaTeX as the title of the chapter with the
333      * annotated compound index.
334      */
335     virtual QCString trCompoundIndex()
336     {
337       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
338         return "Index över datastrukturer";
339       } else {
340         return "Index över sammensatta typer";
341       }
342     }
343
344     virtual QCString trFileIndex()
345     { return "Filindex"; }
346
347     virtual QCString trModuleDocumentation()
348     { return "Dokumentation över moduler"; }
349
350     /*! This is used in LaTeX as the title of the chapter containing
351      *  the documentation of all classes, structs and unions.
352      */
353     virtual QCString trClassDocumentation()
354     { 
355       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
356       {
357         return "Dokumentation över datastrukturer";
358       }
359       else
360       {
361         return "Documentation över klasser";
362       }
363     }
364
365     virtual QCString trFileDocumentation()
366     { return "Dokumentation över filer"; }
367
368     virtual QCString trExampleDocumentation()
369     { return "Dokumentation över exempel"; }
370
371     virtual QCString trPageDocumentation()
372     { return "Dokumentation av sidor"; }
373
374     virtual QCString trReferenceManual()
375     { return "Referensmanual"; }
376
377     virtual QCString trDefines()
378     { return "Definitioner"; }
379     virtual QCString trFuncProtos()
380     { return "Funktionsprototyper"; }
381     virtual QCString trTypedefs()
382     { return "Typdefinitioner"; }
383     virtual QCString trEnumerations()
384     { return "Egenuppräknande typer"; }
385     virtual QCString trFunctions()
386     { return "Funktioner"; }
387     virtual QCString trVariables()
388     { return "Variabler"; }
389
390     virtual QCString trEnumerationValues()
391     { return "Egenuppräknade typers värden"; }
392
393     virtual QCString trDefineDocumentation()
394     { return "Dokumentation över definitioner"; }
395
396     virtual QCString trFunctionPrototypeDocumentation()
397     { return "Dokumentation över funktionsprototyper"; }
398
399     virtual QCString trTypedefDocumentation()
400     { return "Dokumentation över typdefinitioner"; }
401
402     virtual QCString trEnumerationTypeDocumentation()
403     { return "Dokumentation över egenuppräknande typer"; }
404
405     virtual QCString trFunctionDocumentation()
406     { return "Dokumentation över funktioner"; }
407
408     virtual QCString trVariableDocumentation()
409     { return "Dokumentation över variabler"; }
410
411     /*! This is used in the documentation of a file/namespace/group before 
412      *  the list of links to documented compounds
413      */
414     virtual QCString trCompounds()
415     { 
416       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
417       {
418         return "Datastrukturer";
419       }
420       else
421       {
422         return "Sammansättning";
423       }
424     }
425
426     virtual QCString trGeneratedAt(const char *date,const char *projName)
427     {
428       QCString result=(QCString)"Skapad "+date;
429       if (projName) result+=(QCString)" för "+projName;
430       result+=(QCString)" av";
431       return result;
432     }
433
434     virtual QCString trWrittenBy()
435     {
436       return "skriven av";
437     }
438
439     virtual QCString trClassDiagram(const char *clName)
440     {
441       return (QCString)"Klassdiagram för "+clName;
442     }
443
444     virtual QCString trForInternalUseOnly()
445     { return "Endast för internt bruk."; }
446
447     virtual QCString trWarning()
448     { return "Varning"; }
449
450     virtual QCString trVersion()
451     { return "Version"; }
452
453     virtual QCString trDate()
454     { return "Datum"; }
455
456     virtual QCString trReturns()
457     { return "Returnerar"; }
458
459     virtual QCString trSeeAlso()
460     { return "Se även"; }
461
462     virtual QCString trParameters()
463     { return "Parametrar"; }
464
465     virtual QCString trExceptions()
466     { return "Undantag"; }
467
468     virtual QCString trGeneratedBy()
469     { return "Skapad av"; }
470
471 // new since 0.49-990307
472
473     virtual QCString trNamespaceList()
474     { return "Namnrymdslista"; }
475
476     virtual QCString trNamespaceListDescription(bool extractAll)
477     {
478       QCString result="Här är en lista över alla ";
479       if (!extractAll) result+="dokumenterade ";
480       result+="namnrymder med en kort beskrivning:";
481       return result;
482     }
483
484     virtual QCString trFriends()
485     { return "Vänner"; }
486
487 //////////////////////////////////////////////////////////////////////////
488 // new since 0.49-990405
489 //////////////////////////////////////////////////////////////////////////
490
491     virtual QCString trRelatedFunctionDocumentation()
492     { return "Vänners och besläktade funktioners dokumentation"; }
493
494 //////////////////////////////////////////////////////////////////////////
495 // new since 0.49-990425
496 //////////////////////////////////////////////////////////////////////////
497
498     virtual QCString trCompoundReference(const char *clName,
499                                     ClassDef::CompoundType compType,
500                                     bool isTemplate)
501     {
502       QCString result=(QCString)clName+" ";
503       switch(compType)
504       {
505         case ClassDef::Class:  result+=" klass"; break;
506         case ClassDef::Struct: result+=" strukt"; break;
507         case ClassDef::Union:  result+=" union"; break;
508         case ClassDef::Interface:  result+=" gränssnitt"; break;
509         case ClassDef::Protocol:   result+=" protocol"; break; // translate me!
510         case ClassDef::Category:   result+=" category"; break; // translate me!
511         case ClassDef::Exception:  result+=" undantag"; break;
512       }
513       if (isTemplate) result+="template";
514       result+="referens";
515       return result;
516     }
517
518     virtual QCString trFileReference(const char *fileName)
519     {
520       QCString result=fileName;
521       result+=" filreferens";
522       return result;
523     }
524
525     virtual QCString trNamespaceReference(const char *namespaceName)
526     {
527       QCString result=namespaceName;
528       result+=" namnrymdreferens";
529       return result;
530     }
531
532     virtual QCString trPublicMembers()
533     { return "Publika medlemmar"; }
534     virtual QCString trPublicSlots()
535     { return "Publika slots"; }
536     virtual QCString trSignals()
537     { return "Signaler"; }
538     virtual QCString trStaticPublicMembers()
539     { return "Statiska  publika medlemmar"; }
540     virtual QCString trProtectedMembers()
541     { return "Skyddade medlemmar"; }
542     virtual QCString trProtectedSlots()
543     { return "Skyddade slots"; }
544     virtual QCString trStaticProtectedMembers()
545     { return "Statiska skyddade medlemmar"; }
546     virtual QCString trPrivateMembers()
547     { return "Privata medlemmar"; }
548     virtual QCString trPrivateSlots()
549     { return "Privata slots"; }
550     virtual QCString trStaticPrivateMembers()
551     { return "Statiska privata medlemmar"; }
552     // end of member sections
553
554     virtual QCString trWriteList(int numEntries)
555     {
556       // this function is used to produce a comma-separated list of items.
557       // use generateMarker(i) to indicate where item i should be put.
558       QCString result;
559       int i;
560       // the inherits list contain `numEntries' classes
561       for (i=0;i<numEntries;i++)
562       {
563         // use generateMarker to generate placeholders for the class links!
564         result+=generateMarker(i); // generate marker for entry i in the list
565                                    // (order is left to right)
566
567         if (i!=numEntries-1)  // not the last entry, so we need a separator
568         {
569           if (i<numEntries-2) // not the fore last entry
570             result+=", ";
571           else                // the fore last entry
572             result+=", och ";
573         }
574       }
575       return result;
576     }
577
578     virtual QCString trInheritsList(int numEntries)
579       // used in class documentation to produce a list of base classes,
580       // if class diagrams are disabled.
581     {
582       return "Ärver "+trWriteList(numEntries)+".";
583     }
584     virtual QCString trInheritedByList(int numEntries)
585       // used in class documentation to produce a list of super classes,
586       // if class diagrams are disabled.
587     {
588       return "Ärvd av "+trWriteList(numEntries)+".";
589     }
590     virtual QCString trReimplementedFromList(int numEntries)
591       // used in member documentation blocks to produce a list of
592       // members that are hidden by this one.
593     {
594       return "Återskapad från "+trWriteList(numEntries)+".";
595     }
596     virtual QCString trReimplementedInList(int numEntries)
597     {
598       // used in member documentation blocks to produce a list of
599       // all member that overwrite the implementation of this member.
600       return "Återskapad i "+trWriteList(numEntries)+".";
601     }
602
603     virtual QCString trNamespaceMembers()
604     { return "Namnrymdsmedlemmar"; }
605     virtual QCString trNamespaceMemberDescription(bool extractAll)
606     {
607       QCString result="Här är en lista över alla ";
608       if (!extractAll) result+="dokumenterade ";
609       result+="namnrymdsmedlemmar med länkar till ";
610       if (extractAll)
611         result+=" namnrymd-dokumentationen för varje medlem:";
612       else
613         result+="de namnrymder de tillhör:";
614       return result;
615     }
616
617     virtual QCString trNamespaceIndex()
618     { return "Namnrymdsindex"; }
619
620     virtual QCString trNamespaceDocumentation()
621       { return "Namnrymd-dokumentation"; }
622     //////////////////////////////////////////////////////////////////////////
623 // new since 0.49-990522
624 //////////////////////////////////////////////////////////////////////////
625
626     /*! This is used in the documentation before the list of all
627      *  namespaces in a file.
628      */
629     virtual QCString trNamespaces()
630     { return "Namnrymder"; }
631
632 //////////////////////////////////////////////////////////////////////////
633 // new since 0.49-990728
634 //////////////////////////////////////////////////////////////////////////
635
636     /*! This is put at the bottom of a class documentation page and is
637      *  followed by a list of files that were used to generate the page.
638      */
639     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
640         bool single)
641     { // here s is one of " Class", " Struct" or " Union"
642       // single is true implies a single file
643       QCString result=(QCString)"Dokumentationen för ";
644       switch(compType)
645       {
646         case ClassDef::Class:      result+="denna klass "; break;
647         case ClassDef::Struct:     result+="denna strukt "; break;
648         case ClassDef::Union:      result+="denna union "; break;
649         case ClassDef::Interface:  result+="detta gränssnitt "; break;
650         case ClassDef::Protocol:   result+="protocol"; break; // translate me!
651         case ClassDef::Category:   result+="category"; break; // translate me!
652         case ClassDef::Exception:  result+="detta undantag "; break;
653       }
654       result+="var genererad från följande fil";
655       if (single) result+=":"; else result+="er:";
656       return result;
657     }
658
659     /*! This is in the (quick) index as a link to the alphabetical compound
660      * list.
661      */
662     virtual QCString trAlphabeticalList()
663     {
664       return "Alfabetisk lista";
665     }
666 //////////////////////////////////////////////////////////////////////////
667 // new since 0.49-990901
668 //////////////////////////////////////////////////////////////////////////
669
670     /*! This is used as the heading text for the retval command. */
671     virtual QCString trReturnValues()
672     { return "Returvärden"; }
673
674     /*! This is in the (quick) index as a link to the main page (index.html)
675      */
676     virtual QCString trMainPage()
677     { return "Huvudsida"; }
678
679     /*! This is used in references to page that are put in the LaTeX 
680      *  documentation. It should be an abbreviation of the word page.
681      */
682     virtual QCString trPageAbbreviation()
683     { return "s."; }
684
685 //////////////////////////////////////////////////////////////////////////
686 // new since 0.49-991003
687 //////////////////////////////////////////////////////////////////////////
688
689     virtual QCString trDefinedAtLineInSourceFile()
690     {
691       return "Definition på rad @0 i filen @1.";
692     }
693     virtual QCString trDefinedInSourceFile()
694     {
695       return "Definition i filen @0.";
696     }
697
698 //////////////////////////////////////////////////////////////////////////
699 // new since 0.49-991205
700 //////////////////////////////////////////////////////////////////////////
701
702     virtual QCString trDeprecated()
703     {
704       return "Föråldrad";
705     }
706
707 //////////////////////////////////////////////////////////////////////////
708 // new since 1.0.0
709 //////////////////////////////////////////////////////////////////////////
710
711     /*! this text is put before a collaboration diagram */
712     virtual QCString trCollaborationDiagram(const char *clName)
713     {
714       return (QCString)"Samarbetsdiagram för "+clName+":";
715     }
716     
717     /*! this text is put before an include dependency graph */
718     virtual QCString trInclDepGraph(const char *fName)
719     {
720       return (QCString)"Include-beroendediagram för "+fName+":";
721     }
722     
723     /*! header that is put before the list of constructor/destructors. */
724     virtual QCString trConstructorDocumentation()
725     {
726       return "Dokumentation av konstruktorer och destruktorer"; 
727     }
728
729     /*! Used in the file documentation to point to the corresponding sources. */
730     virtual QCString trGotoSourceCode()
731     {
732       return "Gå till denna fils källkod.";
733     }
734
735     /*! Used in the file sources to point to the corresponding documentation. */
736     virtual QCString trGotoDocumentation()
737     {
738       return "Gå till denna fils dokumentation.";
739     }
740
741     /*! Text for the \\pre command */
742     virtual QCString trPrecondition()
743     {
744       return "Förhandsvillkor";
745     }
746
747     /*! Text for the \\post command */
748     virtual QCString trPostcondition()
749     {
750       return "Resultat"; //"Postcondition";
751     }
752
753     /*! Text for the \\invariant command */
754     virtual QCString trInvariant()
755     {
756       return "Invariant";
757     }
758
759     /*! Text shown before a multi-line variable/enum initialization */
760     virtual QCString trInitialValue()
761     {
762       return "Begynnelsevärde:";
763     }
764     /*! Text used the source code in the file index */
765     virtual QCString trCode()
766     {
767       return "källkod";
768     }
769
770     virtual QCString trGraphicalHierarchy()
771     {
772       return "Grafisk klasshierarki";
773     }
774     virtual QCString trGotoGraphicalHierarchy()
775     {
776       return "Gå till den grafiska klasshierarkin";
777     }
778     virtual QCString trGotoTextualHierarchy()
779     {
780       return "Gå till den textbaserade klasshierarkin";
781     }
782     virtual QCString trPageIndex()
783     {
784       return "Sidindex";
785     }
786     
787 //////////////////////////////////////////////////////////////////////////
788 // new since 1.1.0
789 //////////////////////////////////////////////////////////////////////////
790     
791     virtual QCString trNote()
792     {
793       return "Notera";
794     }
795     virtual QCString trPublicTypes()
796     {
797       return "Publika typer";
798     }
799     virtual QCString trPublicAttribs()
800     {
801       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
802       {
803         return "Datafält";
804       }
805       else
806       {
807         return "Publika attribut";
808       }
809     }
810     virtual QCString trStaticPublicAttribs()
811     {
812       return "Statiska publika attribut";
813     }
814     virtual QCString trProtectedTypes()
815     {
816       return "Skyddade typer";
817     }
818     virtual QCString trProtectedAttribs()
819     {
820       return "Skyddade attribut";
821     }
822     virtual QCString trStaticProtectedAttribs()
823     {
824       return "Statiska skyddade attribut";
825     }
826     virtual QCString trPrivateTypes()
827     {
828       return "Privata typer";
829     }
830     virtual QCString trPrivateAttribs()
831     {
832       return "Privata attribut";
833     }
834     virtual QCString trStaticPrivateAttribs()
835     {
836       return "Statiska privata attribut";
837     }
838
839 //////////////////////////////////////////////////////////////////////////
840 // new since 1.1.3
841 //////////////////////////////////////////////////////////////////////////
842
843     /*! Used as a marker that is put before a \\todo item */
844     virtual QCString trTodo()
845     {
846       return "Att-göra";
847     }
848     /*! Used as the header of the todo list */
849     virtual QCString trTodoList()
850     {
851       return "Att-göra lista";
852     }
853
854 //////////////////////////////////////////////////////////////////////////
855 // new since 1.1.4
856 //////////////////////////////////////////////////////////////////////////
857
858     virtual QCString trReferencedBy()
859     {
860       return "Refererad av";
861     }
862     virtual QCString trRemarks()
863     {
864       return "Lägg märke till";
865     }
866     virtual QCString trAttention()
867     {
868       return "Observera";
869     }
870     virtual QCString trInclByDepGraph()
871     {
872       return "Den här grafen visar vilka filer som direkt eller "
873               "indirekt inkluderar denna filen.";
874     }
875     virtual QCString trSince()
876     {
877       return "Sedan";
878     }
879
880 //////////////////////////////////////////////////////////////////////////
881 // new since 1.1.5
882 //////////////////////////////////////////////////////////////////////////
883
884     /*! title of the graph legend page */
885     virtual QCString trLegendTitle()
886     {
887       return "Grafförklaring";
888     }
889
890     /*! page explaining how the dot graph's should be interpreted 
891      *  The %A in the text below are to prevent link to classes called "A".
892      */
893     virtual QCString trLegendDocs()
894     {
895       return 
896         "Den här sidan förklarar hur man ska tolka de grafer som doxygen "
897         "genererar.<p>\n"
898         "Tag följande exempel:\n"
899         "\\code\n"
900         "/*! Osynlig klass på grund av stympning */\n"
901         "class Invisible { };\n\n"
902         "/*! Stympad klass, ärvningsrelationen är dold */\n"
903         "class Truncated : public Invisible { };\n\n"
904         "/* Klass utan doxygen-kommentarer */\n"
905         "class Undocumented { };\n\n"
906         "/*! Klass som ärvs med publikt arv */\n"
907         "class PublicBase : public Truncated { };\n\n"
908         "/*! En template-klass */\n"
909         "template<class T> class Templ { };\n\n"
910         "/*! Klass som ärvs med skyddat arv */\n"
911         "class ProtectedBase { };\n\n"
912         "/*! Klass som ärvs med privat arv */\n"
913         "class PrivateBase { };\n\n"
914         "/*! Klass som används av Inherited klassen */\n"
915         "class Used { };\n\n"
916         "/*! Super klassen som ärver ett antal andra klasser */\n"
917         "class Inherited : public PublicBase,\n"
918         "                  protected ProtectedBase,\n"
919         "                  private PrivateBase,\n"
920         "                  public Undocumented,\n"
921         "                  public Templ<int>\n"
922         "{\n"
923         "  private:\n"
924         "    Used *m_usedClass;\n"
925         "};\n"
926         "\\endcode\n"
927         "Om \\c MAX_DOT_GRAPH_HEIGHT är satt till 240 i konfigurationsfilen, "
928         "kommer följande graf att generas:"
929         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
930         "<p>\n"
931         "Rektanglarna i den ovanstående grafen har följande betydelser:\n"
932         "<ul>\n"
933         "<li>%En fylld svart rektangel representerar den strukt eller klass "
934         "som har genererat grafen.\n"
935         "<li>%En rektangel med svart kant symboliserar en dokumenterad "
936         "strukt eller klass.\n"
937         "<li>%En rektangel med grå kant symboliserar en odokumenterad strukt "
938         "eller klass.\n"
939         "<li>%En klass med röd kant symboliserar en strukt eller klass där "
940         "alla dess relationer inte visas. %En graf stympas om den inte får "
941         "plats inom de givna gränserna.\n"
942         "</ul>\n"
943         "Pilarna har följande betydelser:\n"
944         "<ul>\n"
945         "<li>%En mörkblå pil används för att visualisera en publik arvrelation "
946         "mellan två klasser.\n"
947         "<li>%En mörkgrön pil används för en skyddad arvsrelation.\n"
948         "<li>%En mörkröd pil används för en privat arvsrelation.\n"
949         "<li>%En sträckad lila pil används om en klass är innesluten eller "
950         "använd av en annan klass. Vid pilen står namnet på den eller de "
951         "variabler som klassen pilen pekar på kommer åt.\n"
952         "<li>%En sträckad gul pil symboliserar förhållandet mellan en "
953         "template-instans och template-klassen, som den instantierades från.\n"
954         "Vid pilen står instansens template-parametrar.\n"
955         "</ul>\n";
956     }
957
958     /*! text for the link to the legend page */
959     virtual QCString trLegend()
960     {
961       return "förklaring";
962     }
963
964 //////////////////////////////////////////////////////////////////////////
965 // new since 1.2.0
966 //////////////////////////////////////////////////////////////////////////
967     
968     /*! Used as a marker that is put before a test item */
969     virtual QCString trTest()
970     {
971       return "Test";
972     }
973     /*! Used as the header of the test list */
974     virtual QCString trTestList()
975     {
976       return "Testlista";
977     }
978
979 //////////////////////////////////////////////////////////////////////////
980 // new since 1.2.1
981 //////////////////////////////////////////////////////////////////////////
982
983     /*! Used as a section header for KDE-2 IDL methods */
984     virtual QCString trDCOPMethods()
985     {
986       return "DCOP metoder";
987     }
988
989 //////////////////////////////////////////////////////////////////////////
990 // new since 1.2.2
991 //////////////////////////////////////////////////////////////////////////
992
993     /*! Used as a section header for IDL properties */
994     virtual QCString trProperties()
995     {
996                 return "Egenskaper";
997     }
998     /*! Used as a section header for IDL property documentation */
999     virtual QCString trPropertyDocumentation()
1000     {
1001       return "Egenskapsdokumentation";
1002     }
1003
1004 //////////////////////////////////////////////////////////////////////////
1005 // new since 1.2.4
1006 //////////////////////////////////////////////////////////////////////////
1007
1008     /*! Used for Java classes in the summary section of Java packages */
1009     virtual QCString trClasses()
1010     {
1011       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1012       {
1013         return "Datastrukturer";
1014       }
1015       else
1016       {
1017         return "Klasser";
1018       }
1019     }
1020     /*! Used as the title of a Java package */
1021     virtual QCString trPackage(const char *name)
1022     {
1023       return (QCString)"Paket "+name;
1024     }
1025     /*! Title of the package index page */
1026     virtual QCString trPackageList()
1027     {
1028       return "Paketlista";
1029     }
1030     /*! The description of the package index page */
1031     virtual QCString trPackageListDescription()
1032     {
1033       return "Här är en lista över paketen med en kort beskrivning "
1034              "(om sådan finns):";
1035     }
1036     /*! The link name in the Quick links header for each page */
1037     virtual QCString trPackages()
1038     {
1039       return "Paket";
1040     }
1041     /*! Text shown before a multi-line define */
1042     virtual QCString trDefineValue()
1043     {
1044       return "Värde:";
1045     }
1046     
1047 //////////////////////////////////////////////////////////////////////////
1048 // new since 1.2.5
1049 //////////////////////////////////////////////////////////////////////////
1050     
1051     /*! Used as a marker that is put before a \\bug item */
1052     virtual QCString trBug()
1053     {
1054       return "Bugg";
1055     }
1056     /*! Used as the header of the bug list */
1057     virtual QCString trBugList()
1058     {
1059       return "Bugglista";
1060     }
1061
1062 //////////////////////////////////////////////////////////////////////////
1063 // new since 1.2.6
1064 //////////////////////////////////////////////////////////////////////////
1065
1066     /*! Used as ansicpg for RTF file
1067          * (used table extract:)
1068          * <pre>
1069      * Charset Name       Charset Value(hex)  Codepage number
1070      * ------------------------------------------------------
1071      * ANSI_CHARSET              0 (x00)            1252
1072          * </pre>
1073          */
1074     virtual QCString trRTFansicp()
1075     {
1076       return "1252";
1077     }
1078
1079     /*! Used as ansicpg for RTF fcharset */
1080     virtual QCString trRTFCharSet()
1081     {
1082       return "0";
1083     }
1084
1085     /*! Used as header RTF general index */
1086     virtual QCString trRTFGeneralIndex()
1087     {
1088       return "Index";
1089     }
1090
1091     /*! This is used for translation of the word that will possibly
1092      *  be followed by a single name or by a list of names 
1093      *  of the category.
1094      */
1095     virtual QCString trClass(bool first_capital, bool singular)
1096     { 
1097       QCString result((first_capital ? "Klass" : "klass"));
1098       if (!singular)  result+="er";
1099       return result; 
1100     }
1101
1102     /*! This is used for translation of the word that will possibly
1103      *  be followed by a single name or by a list of names 
1104      *  of the category.
1105      */
1106     virtual QCString trFile(bool first_capital, bool singular)
1107     { 
1108       QCString result((first_capital ? "Fil" : "fil"));
1109       if (!singular)  result+="er";
1110       return result; 
1111     }
1112
1113     /*! This is used for translation of the word that will possibly
1114      *  be followed by a single name or by a list of names 
1115      *  of the category.
1116      */
1117     virtual QCString trNamespace(bool first_capital, bool singular)
1118     { 
1119       QCString result((first_capital ? "Namnrymd" : "namnrynd"));
1120       if (!singular)  result+="er";
1121       return result; 
1122     }
1123     
1124     /*! This is used for translation of the word that will possibly
1125      *  be followed by a single name or by a list of names 
1126      *  of the category.
1127      */
1128     virtual QCString trGroup(bool first_capital, bool singular)
1129     { 
1130       QCString result((first_capital ? "Grupp" : "grupp"));
1131       if (!singular)  result+="er";
1132       return result; 
1133     }
1134
1135     /*! This is used for translation of the word that will possibly
1136      *  be followed by a single name or by a list of names 
1137      *  of the category.
1138      */
1139     virtual QCString trPage(bool first_capital, bool singular)
1140     { 
1141       QCString result((first_capital ? "Sid" : "sid"));
1142       if (singular)
1143          result+="a";
1144       else
1145          result+="or";
1146       return result; 
1147     }
1148
1149     /*! This is used for translation of the word that will possibly
1150      *  be followed by a single name or by a list of names 
1151      *  of the category.
1152      */
1153     virtual QCString trMember(bool first_capital, bool singular)
1154     { 
1155       QCString result((first_capital ? "Medlem" : "medlem"));
1156       if (!singular)  result+="mar";
1157       return result; 
1158     }
1159
1160     /*! This is used for translation of the word that will possibly
1161      *  be followed by a single name or by a list of names 
1162      *  of the category.
1163      */
1164     virtual QCString trGlobal(bool first_capital, bool singular)
1165     { 
1166       QCString result((first_capital ? "Global" : "global"));
1167       if (!singular)  result+="er";
1168       return result; 
1169     }
1170
1171 //////////////////////////////////////////////////////////////////////////
1172 // new since 1.2.7
1173 //////////////////////////////////////////////////////////////////////////
1174
1175     /*! This text is generated when the \\author command is used and
1176      *  for the author section in man pages. */
1177     virtual QCString trAuthor(bool first_capital, bool /*singular*/)
1178     {
1179       QCString result((first_capital ? "Författare" : "författare"));
1180       return result; 
1181     }
1182
1183 //////////////////////////////////////////////////////////////////////////
1184 // new since 1.2.11
1185 //////////////////////////////////////////////////////////////////////////
1186
1187     /*! This text is put before the list of members referenced by a member
1188      */
1189     virtual QCString trReferences()
1190     {
1191       return "Referenser";
1192     }
1193
1194 //////////////////////////////////////////////////////////////////////////
1195 // new since 1.2.13
1196 //////////////////////////////////////////////////////////////////////////
1197
1198     /*! used in member documentation blocks to produce a list of 
1199      *  members that are implemented by this one.
1200      */
1201     virtual QCString trImplementedFromList(int numEntries)
1202     {
1203       return "Implementerar "+trWriteList(numEntries)+".";
1204     }
1205
1206     /*! used in member documentation blocks to produce a list of
1207      *  all members that implement this abstract member.
1208      */
1209     virtual QCString trImplementedInList(int numEntries)
1210     {
1211       return "Implementerad i "+trWriteList(numEntries)+".";
1212     }
1213
1214 //////////////////////////////////////////////////////////////////////////
1215 // new since 1.2.16
1216 //////////////////////////////////////////////////////////////////////////
1217
1218     /*! used in RTF documentation as a heading for the Table
1219      *  of Contents.
1220      */
1221     virtual QCString trRTFTableOfContents()
1222     {
1223       return "Innehållsförteckning";
1224     }
1225
1226 //////////////////////////////////////////////////////////////////////////
1227 // new since 1.2.17
1228 //////////////////////////////////////////////////////////////////////////
1229
1230     /*! Used as the header of the list of item that have been 
1231      *  flagged deprecated 
1232      */
1233     virtual QCString trDeprecatedList()
1234     {
1235       return "Lista över föråldrade";
1236     }
1237
1238 //////////////////////////////////////////////////////////////////////////
1239 // new since 1.2.18
1240 //////////////////////////////////////////////////////////////////////////
1241
1242     /*! Used as a header for declaration section of the events found in 
1243      * a C# program
1244      */
1245     virtual QCString trEvents()
1246     {
1247       return "Händelser";
1248     }
1249     /*! Header used for the documentation section of a class' events. */
1250     virtual QCString trEventDocumentation()
1251     {
1252       return "Händelse Dokumentation";
1253     }
1254
1255 //////////////////////////////////////////////////////////////////////////
1256 // new since 1.3
1257 //////////////////////////////////////////////////////////////////////////
1258
1259     /*! Used as a heading for a list of Java class types with package scope.
1260      */
1261     virtual QCString trPackageTypes()
1262     { 
1263       return "Paket typer";
1264     }
1265     /*! Used as a heading for a list of Java class functions with package 
1266      * scope. 
1267      */
1268     virtual QCString trPackageMembers()
1269     { 
1270       return "Paket funktioner";
1271     }
1272     /*! Used as a heading for a list of static Java class functions with 
1273      *  package scope.
1274      */
1275     virtual QCString trStaticPackageMembers()
1276     { 
1277       return "Statiska paket funktioner";
1278     }
1279     /*! Used as a heading for a list of Java class variables with package 
1280      * scope.
1281      */
1282     virtual QCString trPackageAttribs()
1283     { 
1284       return "Paket attribut";
1285     }
1286     /*! Used as a heading for a list of static Java class variables with 
1287      * package scope.
1288      */
1289     virtual QCString trStaticPackageAttribs()
1290     { 
1291       return "Statiska paket attribut";
1292     }
1293     
1294 //////////////////////////////////////////////////////////////////////////
1295 // new since 1.3.1
1296 //////////////////////////////////////////////////////////////////////////
1297
1298     /*! Used in the quick index of a class/file/namespace member list page 
1299      *  to link to the unfiltered list of all members.
1300      */
1301     virtual QCString trAll()
1302     {
1303       return "Alla";
1304     }
1305     /*! Put in front of the call graph for a function. */
1306     virtual QCString trCallGraph()
1307     {
1308       return "Här är anropnings diagrammet för den här funktionen:";
1309     }
1310
1311 //////////////////////////////////////////////////////////////////////////
1312 // new since 1.3.3
1313 //////////////////////////////////////////////////////////////////////////
1314
1315     /*! When the search engine is enabled this text is put in the header 
1316      *  of each page before the field where one can enter the text to search 
1317      *  for. 
1318      */
1319     virtual QCString trSearchForIndex()
1320     {
1321       return "Sök efter";
1322     }
1323     /*! This string is used as the title for the page listing the search
1324      *  results.
1325      */
1326     virtual QCString trSearchResultsTitle()
1327     {
1328       return "Sökresultat";
1329     }
1330     /*! This string is put just before listing the search results. The
1331      *  text can be different depending on the number of documents found.
1332      *  Inside the text you can put the special marker $num to insert
1333      *  the number representing the actual number of search results.
1334      *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
1335      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1336      *  the returned string.
1337      */
1338     virtual QCString trSearchResults(int numDocuments)
1339     {
1340       if (numDocuments==0)
1341       {
1342         return "Tyvärr finns det inga dokument som matchar din sökning.";
1343       }
1344       else if (numDocuments==1)
1345       {
1346         return "Hittade <b>1</b> dokument som matchar din sökning.";
1347       }
1348       else 
1349       {
1350         return "Hittade <b>$num</b> dokument som matchar din sökning. "
1351                "Visar de bästa träffarna först.";
1352       }
1353     }
1354     /*! This string is put before the list of matched words, for each search 
1355      *  result. What follows is the list of words that matched the query.
1356      */
1357     virtual QCString trSearchMatches()
1358     {
1359       return "Träffar:";
1360     }
1361
1362 //////////////////////////////////////////////////////////////////////////
1363 // new since 1.3.8
1364 //////////////////////////////////////////////////////////////////////////
1365
1366     /*! This is used in HTML as the title of page with source code for file filename
1367      */
1368     virtual QCString trSourceFile(QCString& filename)
1369     {
1370       return "Källkodsfilen " + filename;
1371     }
1372
1373 //////////////////////////////////////////////////////////////////////////
1374 // new since 1.3.9
1375 //////////////////////////////////////////////////////////////////////////
1376
1377     /*! This is used as the name of the chapter containing the directory
1378      *  hierarchy.
1379      */
1380     virtual QCString trDirIndex()
1381     { return "Katalogstruktur"; }
1382
1383     /*! This is used as the name of the chapter containing the documentation
1384      *  of the directories.
1385      */
1386     virtual QCString trDirDocumentation()
1387     { return "Katalogdokumentation"; }
1388
1389     /*! This is used as the title of the directory index and also in the
1390      *  Quick links of a HTML page, to link to the directory hierarchy.
1391      */
1392     virtual QCString trDirectories()
1393     { return "Kataloger"; }
1394
1395     /*! This returns a sentences that introduces the directory hierarchy. 
1396      *  and the fact that it is sorted alphabetically per level
1397      */
1398     virtual QCString trDirDescription()
1399         { return "Den här katalogen är grovt sorterad, "
1400              "men inte helt, i alfabetisk ordning:";
1401     }
1402
1403     /*! This returns the title of a directory page. The name of the
1404      *  directory is passed via \a dirName.
1405      */
1406     virtual QCString trDirReference(const char *dirName)
1407     { QCString result=dirName; result+=" Katalogreferens"; return result; }
1408
1409     /*! This returns the word directory with or without starting capital
1410      *  (\a first_capital) and in sigular or plural form (\a singular).
1411      */
1412     virtual QCString trDir(bool first_capital, bool singular)
1413     { 
1414       QCString result((first_capital ? "Katalog" : "katalog"));
1415       if (!singular) result+="er";
1416       return result; 
1417     }
1418
1419 //////////////////////////////////////////////////////////////////////////
1420 // new since 1.4.1
1421 //////////////////////////////////////////////////////////////////////////
1422
1423     /*! This text is added to the documentation when the \\overload command
1424      *  is used for a overloaded function.
1425      */
1426     virtual QCString trOverloadText()
1427     {
1428       return "Det här är en överlagrad medlemsfunktion "
1429              "tillhandahållen för bekvämlighet. Den enda som "
1430              "skiljer sig från ovanstående funktion är vilka "
1431              "argument den tar emot.";
1432     }
1433
1434 //////////////////////////////////////////////////////////////////////////
1435 // new since 1.4.6
1436 //////////////////////////////////////////////////////////////////////////
1437
1438     /*! This is used to introduce a caller (or called-by) graph */
1439     virtual QCString trCallerGraph()
1440     {
1441       return "Här är katalog-grafen för denna funktion:";
1442     }
1443
1444     /*! This is used in the documentation of a file/namespace before the list
1445      *  of documentation blocks for enumeration values
1446      */
1447     virtual QCString trEnumerationValueDocumentation()
1448     {
1449       return "Uppräknings-dokumentation";
1450     }
1451
1452 //////////////////////////////////////////////////////////////////////////
1453 // new since 1.5.4 (mainly for Fortran)
1454 //////////////////////////////////////////////////////////////////////////
1455
1456     /*! header that is put before the list of member subprograms (Fortran). */
1457     virtual QCString trMemberFunctionDocumentationFortran()
1458     { return "Memlems-function/Subroutins Dokumentation"; }
1459
1460     /*! This is put above each page as a link to the list of annotated data types (Fortran). */
1461     virtual QCString trCompoundListFortran()
1462     { return "Datatyplista"; }
1463
1464     /*! This is put above each page as a link to all members of compounds (Fortran). */
1465     virtual QCString trCompoundMembersFortran()
1466     { return "Data fält"; }
1467
1468     /*! This is an introduction to the annotated compound list (Fortran). */
1469     virtual QCString trCompoundListDescriptionFortran()
1470     { return "Här är datatyperna med en kort beskrivning:"; }
1471
1472     /*! This is an introduction to the page with all data types (Fortran). */
1473     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1474     {
1475       QCString result="Här är en lista av alla ";
1476       if (!extractAll)
1477       {
1478         result+="dokumenterade ";
1479       }
1480       result+="datatyps medlemmar";
1481       result+=" med länkar till ";
1482       if (!extractAll)
1483       {
1484          result+="datastrukturs documentation för varje medlem";
1485       }
1486       else
1487       {
1488          result+="klasserna de hör till:";
1489       }
1490       return result;
1491     }
1492
1493     /*! This is used in LaTeX as the title of the chapter with the
1494      * annotated compound index (Fortran).
1495      */
1496     virtual QCString trCompoundIndexFortran()
1497     { return "Datatyps Index"; }
1498
1499     /*! This is used in LaTeX as the title of the chapter containing
1500      *  the documentation of all data types (Fortran).
1501      */
1502     virtual QCString trTypeDocumentation()
1503     { return "Dataryps Dokumentation"; }
1504
1505     /*! This is used in the documentation of a file as a header before the
1506      *  list of (global) subprograms (Fortran).
1507      */
1508     virtual QCString trSubprograms()
1509     { return "Funktions/Subroutins"; }
1510
1511     /*! This is used in the documentation of a file/namespace before the list
1512      *  of documentation blocks for subprograms (Fortran)
1513      */
1514     virtual QCString trSubprogramDocumentation()
1515     { return "Funktion/Subroutin Dokumentation"; }
1516
1517     /*! This is used in the documentation of a file/namespace/group before
1518      *  the list of links to documented compounds (Fortran)
1519      */
1520      virtual QCString trDataTypes()
1521     { return "Datatyper"; }
1522
1523     /*! used as the title of page containing all the index of all modules (Fortran). */
1524     virtual QCString trModulesList()
1525     { return "Modullista"; }
1526
1527     /*! used as an introduction to the modules list (Fortran) */
1528     virtual QCString trModulesListDescription(bool extractAll)
1529     {
1530       QCString result="Här är en lista på alla ";
1531       if (!extractAll) result+="dokumenterade ";
1532       result+="moduler med en kort beskrivning:";
1533       return result;
1534     }
1535
1536     /*! used as the title of the HTML page of a module/type (Fortran) */
1537     virtual QCString trCompoundReferenceFortran(const char *clName,
1538                                     ClassDef::CompoundType compType,
1539                                     bool isTemplate)
1540     {
1541       QCString result=(QCString)clName;
1542       switch(compType)
1543       {
1544         case ClassDef::Class:      result+=" Modul"; break;
1545         case ClassDef::Struct:     result+=" Typ"; break;
1546         case ClassDef::Union:      result+=" Union"; break;
1547         case ClassDef::Interface:  result+=" Gränssnitt"; break;
1548         case ClassDef::Protocol:   result+=" Protokoll"; break;
1549         case ClassDef::Category:   result+=" Kategori"; break;
1550         case ClassDef::Exception:  result+=" Undantag"; break;
1551       }
1552       if (isTemplate) result+=" Mall";
1553       result+=" Referens";
1554       return result;
1555     }
1556     /*! used as the title of the HTML page of a module (Fortran) */
1557     virtual QCString trModuleReference(const char *namespaceName)
1558     {
1559       QCString result=namespaceName;
1560       result+=" Modul Referens";
1561       return result;
1562     }
1563
1564     /*! This is put above each page as a link to all members of modules. (Fortran) */
1565     virtual QCString trModulesMembers()
1566     { return "Modul Medlemmar"; }
1567
1568     /*! This is an introduction to the page with all modules members (Fortran) */
1569     virtual QCString trModulesMemberDescription(bool extractAll)
1570     {
1571       QCString result="Här är en lista på alla ";
1572       if (!extractAll) result+="documented ";
1573       result+="modul medlemmar med länkar till ";
1574       if (extractAll)
1575       {
1576         result+="modul dokumentationen för varje medlem:";
1577       }
1578       else
1579       {
1580         result+="modulerna de hör till:";
1581       }
1582       return result;
1583     }
1584
1585     /*! This is used in LaTeX as the title of the chapter with the
1586      *  index of all modules (Fortran).
1587      */
1588     virtual QCString trModulesIndex()
1589     { return "Modul Index"; }
1590
1591     /*! This is used for translation of the word that will possibly
1592      *  be followed by a single name or by a list of names
1593      *  of the category.
1594      */
1595     virtual QCString trModule(bool first_capital, bool singular)
1596     {
1597       return createNoun(first_capital, singular, "modul", "er");
1598     }
1599     /*! This is put at the bottom of a module documentation page and is
1600      *  followed by a list of files that were used to generate the page.
1601      */
1602     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1603         bool single)
1604     {
1605       // single is true implies a single file
1606       QCString result=(QCString)"Dokumentationen för denna ";
1607       switch(compType)
1608       {
1609         case ClassDef::Class:      result+="modul"; break;
1610         case ClassDef::Struct:     result+="typ"; break;
1611         case ClassDef::Union:      result+="union"; break;
1612         case ClassDef::Interface:  result+="gränssnitt"; break;
1613         case ClassDef::Protocol:   result+="protokoll"; break;
1614         case ClassDef::Category:   result+="kategori"; break;
1615         case ClassDef::Exception:  result+="undantag"; break;
1616       }
1617       result+=" genererades från följade fil";
1618       if (single) result+=":"; else result+="er:";
1619       return result;
1620     }
1621     /*! This is used for translation of the word that will possibly
1622      *  be followed by a single name or by a list of names
1623      *  of the category.
1624      */
1625     virtual QCString trType(bool first_capital, bool singular)
1626     {
1627       return createNoun(first_capital, singular, "typ", "er");
1628     }
1629     /*! This is used for translation of the word that will possibly
1630      *  be followed by a single name or by a list of names
1631      *  of the category.
1632      */
1633     virtual QCString trSubprogram(bool first_capital, bool /*singular*/)
1634     {
1635       QCString result((first_capital ? "Subprogram" : "subprogram"));
1636       return result;
1637     }
1638
1639     /*! C# Type Constraint list */
1640     virtual QCString trTypeConstraints()
1641     {
1642       return "Typbegränsningar";
1643     }
1644
1645 /*---------- For internal use: ----------------------------------------*/
1646   protected:
1647     /*! For easy flexible-noun implementation.
1648      *  \internal
1649      */
1650     QCString createNoun(bool first_capital, bool singular,
1651                         const char* base, const char* plurSuffix)
1652     {
1653       QCString result(base);
1654       if (first_capital) result.at(0) = toupper(result.at(0));
1655       if (!singular)  result+=plurSuffix;
1656       return result;
1657     }
1658
1659         
1660 };
1661
1662 #endif