Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_pt.h
1 /******************************************************************************
2  * Copyright (C) 1997-2012 by Dimitri van Heesch.
3  *
4  * Permission to use, copy, modify, and distribute this software and its
5  * documentation under the terms of the GNU General Public License is hereby
6  * granted. No representations are made about the suitability of this software
7  * for any purpose. It is provided "as is" without express or implied warranty.
8  * See the GNU General Public License for more details.
9  *
10  * Documents produced by Doxygen are derivative works derived from the
11  * input used in their production; they are not affected by this license.
12  *
13  * Portuguese translation version 20110428
14  *    Maintainer (from 04/28/2011): 
15  *       Fabio "FJTC" Jun Takada Chino <jun-chino at uol.com.br>
16  *    Maintainer (until 04/28/2011):
17  *       Rui Godinho Lopes <rui at ruilopes.com>
18  *
19  * Notes about this translation:
20  *    Since I'm Brazilian, this translation may be odd or even incorect for
21  *    Portuguese (from Portugal) speakers. If you find any errors, feel free
22  *    to contact me.
23  *
24  * VERSION HISTORY
25  * ---------------
26  * History:
27  * 20110628:
28  *      - Updated to 1.7.5; 
29  *      - All obsolete methods have been removed;
30  * 20110428
31  *   - Updated to doxygen 1.6.3 using the Brazilian Portuguese as the base. 
32  *     Requires revision by a Portuguese (Portugal native speaker);
33  * 007 09 june 2003
34  *   ! Updated for doxygen v1.3.1
35  * 006 30 july 2002
36  *   ! Updated for doxygen v1.2.17
37  * 005 10 july 2002
38  *   ! Updated for doxygen v1.2.16
39  * 004 03 march 2002
40  *   ! Updated for doxygen v1.2.14
41  * 003 23 november 2001
42  *   - Removed some obsolete methods (latexBabelPackage, trAuthor, trAuthors and trFiles)
43  * 002 19 november 2001
44  *   ! Updated for doxygen v1.2.12
45  * 001 20 july 2001
46  *   ! Updated for doxygen v1.2.8.1
47  * 000 ?
48  *   + Initial translation for doxygen v1.1.5
49  */
50
51 #ifndef TRANSLATOR_PT_H
52 #define TRANSLATOR_PT_H
53
54
55 class TranslatorPortuguese : public TranslatorAdapter_1_8_0
56 {
57   public:
58
59     // --- Language control methods -------------------
60
61     /*! Used for identification of the language. The identification 
62      * should not be translated. It should be replaced by the name 
63      * of the language in English using lower-case characters only
64      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
65      * the identification used in language.cpp.
66      */
67     QCString idLanguage()
68     { return "portuguese"; }
69
70     /*! Used to get the LaTeX command(s) for the language support. 
71      *  This method should return string with commands that switch
72      *  LaTeX to the desired language.  For example 
73      *  <pre>"\\usepackage[german]{babel}\n"
74      *  </pre>
75      *  or
76      *  <pre>"\\usepackage{polski}\n"
77      *  "\\usepackage[latin2]{inputenc}\n"
78      *  "\\usepackage[T1]{fontenc}\n"
79      *  </pre>
80      * 
81      * The English LaTeX does not use such commands.  Because of this
82      * the empty string is returned in this implementation.
83      */
84     virtual QCString latexLanguageSupportCommand()
85     { return "Portuguese"; }
86
87     /*! return the language charset. This will be used for the HTML output */
88     virtual QCString idLanguageCharset()
89     { return "utf-8"; }
90
91     // --- Language translation methods -------------------
92
93     /*! used in the compound documentation before a list of related functions. */
94     QCString trRelatedFunctions()
95     { return "Funções associadas"; }
96
97     /*! subscript for the related functions. */
98     QCString trRelatedSubscript()
99     { return "(Note que não são funções membro)"; }
100
101     /*! header that is put before the detailed description of files, classes and namespaces. */
102     QCString trDetailedDescription()
103     { return "Descrição detalhada"; }
104
105     /*! header that is put before the list of typedefs. */
106     QCString trMemberTypedefDocumentation()
107     { return "Documentação das definições de tipo"; }
108
109     /*! header that is put before the list of enumerations. */
110     QCString trMemberEnumerationDocumentation()
111     { return "Documentação das enumerações"; }
112
113     /*! header that is put before the list of member functions. */
114     QCString trMemberFunctionDocumentation()
115     { return "Documentação dos métodos"; }
116
117     /*! header that is put before the list of member attributes. */
118     QCString trMemberDataDocumentation()
119     {
120       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
121       {
122         return "Documentação dos campos e atributos"; 
123       }
124       else
125       {
126         return "Documentação dos dados membro";
127       }
128     }
129
130     /*! this is the text of a link put after brief descriptions. */
131     QCString trMore()
132     { return "Mais..."; }
133
134     /*! put in the class documentation */
135     QCString trListOfAllMembers()
136     { return "Mostrar lista completa dos membros"; }
137
138     /*! used as the title of the "list of all members" page of a class */
139     QCString trMemberList()
140     { return "Lista dos membros"; }
141
142     /*! this is the first part of a sentence that is followed by a class name */
143     QCString trThisIsTheListOfAllMembers()
144     { return "Lista completa de todos os membros de "; }
145
146     /*! this is the remainder of the sentence after the class name */
147     QCString trIncludingInheritedMembers()
148     { return ", incluindo todos os membros herdados."; }
149
150     /*! this is put at the author sections at the bottom of man pages.
151      *  parameter s is name of the project name.
152      */
153     QCString trGeneratedAutomatically(const char *s)
154     { QCString result="Gerado automaticamente por Doxygen";
155       if (s) result+=(QCString)" para "+s;
156       result+=" a partir do código fonte.";
157       return result;
158     }
159
160     /*! put after an enum name in the list of all members */
161     QCString trEnumName()
162     { return "enumeração"; }
163
164     /*! put after an enum value in the list of all members */
165     QCString trEnumValue()
166     { return "valor enumerado"; }
167
168     /*! put after an undocumented member in the list of all members */
169     QCString trDefinedIn()
170     { return "definido em"; }
171
172     // quick reference sections
173
174     /*! This is put above each page as a link to the list of all groups of
175      *  compounds or files (see the \\group command).
176      */
177     QCString trModules()
178     { return "Módulos"; }
179
180     /*! This is put above each page as a link to the class hierarchy */
181     QCString trClassHierarchy()
182     { return "Hierarquia de classes"; }
183
184     /*! This is put above each page as a link to the list of annotated classes */
185     QCString trCompoundList()
186     {
187       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
188       {
189         return "Estruturas de dados";
190       }
191       else
192       {
193         return "Lista de componentes";
194       }
195     }
196
197     /*! This is put above each page as a link to the list of documented files */
198     QCString trFileList()
199     { return "Lista de ficheiros"; }
200
201     /*! This is put above each page as a link to all members of compounds. */
202     QCString trCompoundMembers()
203     {
204       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
205       {
206         return "Campos de dados";
207       }
208       else
209       {
210         return "Componentes membro";
211       }
212     }
213
214     /*! This is put above each page as a link to all members of files. */
215     QCString trFileMembers()
216     {
217       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
218       {
219         return "Globais";
220       }
221       else
222       {
223         return "Ficheiros membro";
224       }
225     }
226
227     /*! This is put above each page as a link to all related pages. */
228     QCString trRelatedPages()
229     { return "Páginas relacionadas"; }
230
231     /*! This is put above each page as a link to all examples. */
232     QCString trExamples()
233     { return "Exemplos"; }
234
235     /*! This is put above each page as a link to the search engine. */
236     QCString trSearch()
237     { return "Localizar"; }
238
239     /*! This is an introduction to the class hierarchy. */
240     QCString trClassHierarchyDescription()
241     { return "Esta lista de heranças está organizada, dentro do possível, por ordem alfabética:"; }
242
243     /*! This is an introduction to the list with all files. */
244     QCString trFileListDescription(bool extractAll)
245     {
246       QCString result="Lista de todos os ficheiros ";
247       if (!extractAll) result+="documentados ";
248       result+="com uma breve descrição:";
249       return result;
250     }
251
252     /*! This is an introduction to the annotated compound list. */
253     QCString trCompoundListDescription()
254     {       
255       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
256       {
257         return "Lista das estruturas de dados com uma breve descrição:";
258       }
259       else
260       {
261         return "Lista de classes, estruturas, uniões e interfaces com uma breve descrição:";
262       }
263     }
264
265     /*! This is an introduction to the page with all class members. */
266     QCString trCompoundMembersDescription(bool extractAll)
267     {
268       QCString result="Lista de todas as";
269       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
270       {
271         result+=" estruturas e campos de uniões";
272       }
273       else
274       {
275         result+=" classes membro";
276       }
277       if (!extractAll)
278       {
279         result+=" documentadas";
280       }
281       result+=" com referência para ";
282       if (!extractAll) 
283       {
284         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
285         {
286           result+="a respectiva documentação:";
287         }
288         else
289         {
290           result+="a documentação de cada membro:";
291         }
292       }
293       else 
294       {
295         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
296         {
297           result+="as estruturas/uniões a que pertencem:";
298         }
299         else
300         {
301           result+="as classes a que pertencem:";
302         }
303       }
304       return result;
305     }
306
307     /*! This is an introduction to the page with all file members. */
308     QCString trFileMembersDescription(bool extractAll)
309     {
310       QCString result="Lista de ";
311       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
312       {
313         result+="todas as funções, variáveis, definições, enumerações e definições de tipo ";
314         if (!extractAll) result+="documentadas ";
315       }
316       else
317       {
318         result+="todos os ficheiros membro ";
319         if (!extractAll) result+="documentados ";
320       }
321       result+="com referência para ";
322       if (extractAll) 
323         result+="o ficheiro a que pertecem:";
324       else 
325         result+="a respectiva documentação:";
326       return result;
327     }
328
329     /*! This is an introduction to the page with the list of all examples */
330     QCString trExamplesDescription()
331     { return "Lista de todos os exemplos:"; }
332
333     /*! This is an introduction to the page with the list of related pages */
334     QCString trRelatedPagesDescription()
335     { return "Lista de documentação relacionada:"; }
336
337     /*! This is an introduction to the page with the list of class/file groups */
338     QCString trModulesDescription()
339     { return "Lista de todos os módulos:"; }
340
341     // index titles (the project name is prepended for these)
342
343
344     /*! This is used in HTML as the title of index.html. */
345     QCString trDocumentation()
346     { return "Documentação"; }
347
348     /*! This is used in LaTeX as the title of the chapter with the
349      * index of all groups.
350      */
351     QCString trModuleIndex()
352     { return "Índice dos módulos"; }
353
354     /*! This is used in LaTeX as the title of the chapter with the
355      * class hierarchy.
356      */
357     QCString trHierarchicalIndex()
358     { return "Índice da hierarquia"; }
359
360     /*! This is used in LaTeX as the title of the chapter with the
361      * annotated compound index.
362      */
363     QCString trCompoundIndex()
364     {
365       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
366       { 
367         return "Índice das estruturas de dados";
368       }
369       else
370       {
371         return "Índice dos componentes";
372       }
373     }
374
375     /*! This is used in LaTeX as the title of the chapter with the
376      * list of all files.
377      */
378     QCString trFileIndex()
379     { return "Índice dos ficheiros"; }
380
381     /*! This is used in LaTeX as the title of the chapter containing
382      *  the documentation of all groups.
383      */
384     QCString trModuleDocumentation()
385     { return "Documentação do módulo"; }
386
387     /*! This is used in LaTeX as the title of the chapter containing
388      *  the documentation of all classes, structs and unions.
389      */
390     QCString trClassDocumentation()
391     { return "Documentação da classe"; }
392
393     /*! This is used in LaTeX as the title of the chapter containing
394      *  the documentation of all files.
395      */
396     QCString trFileDocumentation()
397     { return "Documentação do ficheiro"; }
398
399     /*! This is used in LaTeX as the title of the chapter containing
400      *  the documentation of all examples.
401      */
402     QCString trExampleDocumentation()
403     { return "Documentação do exemplo"; }
404
405     /*! This is used in LaTeX as the title of the chapter containing
406      *  the documentation of all related pages.
407      */
408     QCString trPageDocumentation()
409     { return "Documentação da página"; }
410
411     /*! This is used in LaTeX as the title of the document */
412     QCString trReferenceManual()
413     { return "Manual de referência"; }
414
415     /*! This is used in the documentation of a file as a header before the
416      *  list of defines
417      */
418     QCString trDefines()
419     { return "Macros"; }
420
421     /*! This is used in the documentation of a file as a header before the
422      *  list of function prototypes
423      */
424     QCString trFuncProtos()
425     { return "Protótipos de funções"; }
426
427     /*! This is used in the documentation of a file as a header before the
428      *  list of typedefs
429      */
430     QCString trTypedefs()
431     { return "Definições de tipos"; }
432
433     /*! This is used in the documentation of a file as a header before the
434      *  list of enumerations
435      */
436     QCString trEnumerations()
437     { return "Enumerações"; }
438
439     /*! This is used in the documentation of a file as a header before the
440      *  list of (global) functions
441      */
442     QCString trFunctions()
443     { return "Funções"; }
444
445     /*! This is used in the documentation of a file as a header before the
446      *  list of (global) variables
447      */
448     QCString trVariables()
449     { return "Variáveis"; }
450
451     /*! This is used in the documentation of a file as a header before the
452      *  list of (global) variables
453      */
454     QCString trEnumerationValues()
455     { return "Valores da enumeração"; }
456
457     /*! This is used in the documentation of a file before the list of
458      *  documentation blocks for defines
459      */
460     QCString trDefineDocumentation()
461     { return "Documentação das macros"; }
462
463     /*! This is used in the documentation of a file/namespace before the list
464      *  of documentation blocks for function prototypes
465      */
466     QCString trFunctionPrototypeDocumentation()
467     { return "Documentação dos protótipos de funções"; }
468
469     /*! This is used in the documentation of a file/namespace before the list
470      *  of documentation blocks for typedefs
471      */
472     QCString trTypedefDocumentation()
473     { return "Documentação dos tipos"; }
474
475     /*! This is used in the documentation of a file/namespace before the list
476      *  of documentation blocks for enumeration types
477      */
478     QCString trEnumerationTypeDocumentation()
479     { return "Documentação dos valores da enumeração"; }
480
481     /*! This is used in the documentation of a file/namespace before the list
482      *  of documentation blocks for functions
483      */
484     QCString trFunctionDocumentation()
485     { return "Documentação das funções"; }
486
487     /*! This is used in the documentation of a file/namespace before the list
488      *  of documentation blocks for variables
489      */
490     QCString trVariableDocumentation()
491     { return "Documentação das variáveis"; }
492
493     /*! This is used in the documentation of a file/namespace/group before
494      *  the list of links to documented compounds
495      */
496     QCString trCompounds()
497     {
498       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
499       {
500         return "Estruturas de Dados";
501       }
502       else
503       {
504         return "Componentes";
505       }
506     }
507
508     /*! This is used in the standard footer of each page and indicates when
509      *  the page was generated
510      */
511     QCString trGeneratedAt(const char *date,const char *projName)
512     {
513       QCString result=(QCString)"Gerado em "+date;
514       if (projName) result+=(QCString)" para "+projName;
515       result+=(QCString)" por";
516       return result;
517     }
518     /*! This is part of the sentence used in the standard footer of each page.
519      */
520     QCString trWrittenBy()
521     {
522       return "escrito por";
523     }
524
525     /*! this text is put before a class diagram */
526     QCString trClassDiagram(const char *clName)
527     {
528       return (QCString)"Diagrama de heranças da classe "+clName;
529     }
530
531     /*! this text is generated when the \\internal command is used. */
532     QCString trForInternalUseOnly()
533     { return "Apenas para uso interno."; }
534
535     /*! this text is generated when the \\warning command is used. */
536     QCString trWarning()
537     { return "Aviso"; }
538
539     /*! this text is generated when the \\version command is used. */
540     QCString trVersion()
541     { return "Versão"; }
542
543     /*! this text is generated when the \\date command is used. */
544     QCString trDate()
545     { return "Data"; }
546
547     /*! this text is generated when the \\return command is used. */
548     QCString trReturns()
549     { return "Retorna"; }
550
551     /*! this text is generated when the \\sa command is used. */
552     QCString trSeeAlso()
553     { return "Veja também"; }
554
555     /*! this text is generated when the \\param command is used. */
556     QCString trParameters()
557     { return "Parâmetros"; }
558
559     /*! this text is generated when the \\exception command is used. */
560     QCString trExceptions()
561     { return "Excepções"; }
562
563     /*! this text is used in the title page of a LaTeX document. */
564     QCString trGeneratedBy()
565     { return "Gerado por"; }
566
567 //////////////////////////////////////////////////////////////////////////
568 // new since 0.49-990307
569 //////////////////////////////////////////////////////////////////////////
570
571     /*! used as the title of page containing all the index of all namespaces. */
572     virtual QCString trNamespaceList()
573     { return "Lista de namespaces"; }
574
575     /*! used as an introduction to the namespace list */
576     virtual QCString trNamespaceListDescription(bool extractAll)
577     {
578       QCString result="Lista ";
579       if (!extractAll) result+="de toda a documentação ";
580       result+="dos namespaces com uma breve descrição:";
581       return result;
582     }
583
584     /*! used in the class documentation as a header before the list of all
585      *  friends of a class
586      */
587     virtual QCString trFriends()
588     { return "Amigos"; }
589
590 //////////////////////////////////////////////////////////////////////////
591 // new since 0.49-990405
592 //////////////////////////////////////////////////////////////////////////
593
594     /*! used in the class documentation as a header before the list of all
595      * related classes
596      */
597     virtual QCString trRelatedFunctionDocumentation()
598     { return "Documentação das classes amigas e funções relacionadas"; }
599
600 //////////////////////////////////////////////////////////////////////////
601 // new since 0.49-990425
602 //////////////////////////////////////////////////////////////////////////
603
604     /*! used as the title of the HTML page of a class/struct/union */
605     virtual QCString trCompoundReference(const char *clName,
606                                     ClassDef::CompoundType compType,
607                                     bool isTemplate)
608     {
609       QCString result="Referência ";
610       switch(compType)
611       {
612         case ClassDef::Class:      result+="à classe "; break;
613         case ClassDef::Struct:     result+="à estrutura "; break;
614         case ClassDef::Union:      result+="à união "; break;
615         case ClassDef::Interface:  result+="ao interface "; break;
616         case ClassDef::Protocol:   result+="ao protocolo "; break;
617         case ClassDef::Category:   result+="à categoria "; break;
618         case ClassDef::Exception:  result+="à excepção "; break;
619       }
620       if (isTemplate) result+="Template ";
621       result+=(QCString)clName;
622       return result;
623     }
624
625     /*! used as the title of the HTML page of a file */
626     virtual QCString trFileReference(const char *fileName)
627     {
628       QCString result= "Referência ao ficheiro ";
629       result += fileName;
630       return result;
631     }
632
633     /*! used as the title of the HTML page of a namespace */
634     virtual QCString trNamespaceReference(const char *namespaceName)
635     {
636       QCString result= "Referência ao namespace ";
637       result += namespaceName;
638       return result;
639     }
640
641     /* these are for the member sections of a class, struct or union */
642     virtual QCString trPublicMembers()
643     { return "Membros públicos"; }
644     virtual QCString trPublicSlots()
645     { return "Slots públicos"; }
646     virtual QCString trSignals()
647     { return "Sinais"; }
648     virtual QCString trStaticPublicMembers()
649     { return "Membros públicos estáticos"; }
650     virtual QCString trProtectedMembers()
651     { return "Membros protegidos"; }
652     virtual QCString trProtectedSlots()
653     { return "Slots protegidos"; }
654     virtual QCString trStaticProtectedMembers()
655     { return "Membros protegidos estáticos"; }
656     virtual QCString trPrivateMembers()
657     { return "Membros privados"; }
658     virtual QCString trPrivateSlots()
659     { return "Slots privados"; }
660     virtual QCString trStaticPrivateMembers()
661     { return "Membros privados estáticos"; }
662
663     /*! this function is used to produce a comma-separated list of items.
664      *  use generateMarker(i) to indicate where item i should be put.
665      */
666     virtual QCString trWriteList(int numEntries)
667     {
668       QCString result;
669       int i;
670       // the inherits list contain `numEntries' classes
671       for (i=0;i<numEntries;i++)
672       {
673         // use generateMarker to generate placeholders for the class links!
674         result+=generateMarker(i); // generate marker for entry i in the list
675                                    // (order is left to right)
676
677         if (i!=numEntries-1)  // not the last entry, so we need a separator
678         {
679           if (i<numEntries-2) // not the fore last entry
680             result+=", ";
681           else                // the fore last entry
682             result+=" e ";
683         }
684       }
685       return result;
686     }
687
688     /*! used in class documentation to produce a list of base classes,
689      *  if class diagrams are disabled.
690      */
691     virtual QCString trInheritsList(int numEntries)
692     {
693       return "Derivada de "+trWriteList(numEntries)+".";
694     }
695
696     /*! used in class documentation to produce a list of super classes,
697      *  if class diagrams are disabled.
698      */
699     virtual QCString trInheritedByList(int numEntries)
700     {
701       return "Herdado por "+trWriteList(numEntries)+".";
702     }
703
704     /*! used in member documentation blocks to produce a list of
705      *  members that are hidden by this one.
706      */
707     virtual QCString trReimplementedFromList(int numEntries)
708     {
709       return "Reimplementado de "+trWriteList(numEntries)+".";
710     }
711
712     /*! used in member documentation blocks to produce a list of
713      *  all member that overwrite the implementation of this member.
714      */
715     virtual QCString trReimplementedInList(int numEntries)
716     {
717       return "Reimplementado em "+trWriteList(numEntries)+".";
718     }
719
720     /*! This is put above each page as a link to all members of namespaces. */
721     virtual QCString trNamespaceMembers()
722     { return "Membros do namespace"; }
723
724     /*! This is an introduction to the page with all namespace members */
725     virtual QCString trNamespaceMemberDescription(bool extractAll)
726     {
727       QCString result="Lista ";
728       if (extractAll) result+="de todos os ";
729       else result+="de toda a documentação dos ";
730       result+="membros do namespace com referência para ";
731       if (extractAll)
732         result+="a documentação de cada membro:";
733       else
734         result+="o namespace correspondente:";
735       return result;
736     }
737
738   /*! This is used in LaTeX as the title of the chapter with the
739      *  index of all namespaces.
740      */
741     virtual QCString trNamespaceIndex()
742     { return "Índice dos namespaces"; }
743
744     /*! This is used in LaTeX as the title of the chapter containing
745      *  the documentation of all namespaces.
746      */
747     virtual QCString trNamespaceDocumentation()
748     { return "Documentação dos namespaces"; }
749
750 //////////////////////////////////////////////////////////////////////////
751 // new since 0.49-990522
752 //////////////////////////////////////////////////////////////////////////
753
754     /*! This is used in the documentation before the list of all
755      *  namespaces in a file.
756      */
757     virtual QCString trNamespaces()
758     { return "Namespaces"; }
759
760 //////////////////////////////////////////////////////////////////////////
761 // new since 0.49-990728
762 //////////////////////////////////////////////////////////////////////////
763
764     /*! This is put at the bottom of a class documentation page and is
765      *  followed by a list of files that were used to generate the page.
766      */
767     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
768         bool single)
769     { // here s is one of " Class", " Struct" or " Union"
770       // single is true implies a single file
771       QCString result=(QCString)"A documentação para ";
772       switch(compType)
773       {
774         case ClassDef::Class:      result+="esta classe"; break;
775         case ClassDef::Struct:     result+="esta estrutura"; break;
776         case ClassDef::Union:      result+="esta união"; break;
777         case ClassDef::Interface:  result+="este interface"; break;
778         case ClassDef::Protocol:   result+="este protocolo"; break;
779         case ClassDef::Category:   result+="esta categoria"; break;
780         case ClassDef::Exception:  result+="esta excepção"; break;
781       }
782       result+=" foi gerada a partir ";
783       if (single) result+=" do seguinte ficheiro:";
784       else result+="dos seguintes ficheiros:";
785       return result;
786     }
787
788     /*! This is in the (quick) index as a link to the alphabetical compound
789      * list.
790      */
791     virtual QCString trAlphabeticalList()
792     {
793       return "Lista alfabética";
794     }
795
796
797 //////////////////////////////////////////////////////////////////////////
798 // new since 0.49-990901
799 //////////////////////////////////////////////////////////////////////////
800
801     /*! This is used as the heading text for the retval command. */
802     virtual QCString trReturnValues()
803     { return "Valores retornados"; }
804
805     /*! This is in the (quick) index as a link to the main page (index.html)
806      */
807     virtual QCString trMainPage()
808     { return "Página principal"; }
809
810     /*! This is used in references to page that are put in the LaTeX
811      *  documentation. It should be an abbreviation of the word page.
812      */
813     virtual QCString trPageAbbreviation()
814     { return "p. "; }
815
816 //////////////////////////////////////////////////////////////////////////
817 // new since 0.49-991003
818 //////////////////////////////////////////////////////////////////////////
819
820     virtual QCString trDefinedAtLineInSourceFile()
821     {
822       return "Definido na linha @0 do ficheiro @1.";
823     }
824     virtual QCString trDefinedInSourceFile()
825     {
826       return "Definido no ficheiro @0.";
827     }
828
829 //////////////////////////////////////////////////////////////////////////
830 // new since 0.49-991205
831 //////////////////////////////////////////////////////////////////////////
832
833     virtual QCString trDeprecated()
834     {
835       return "Desaprovado";
836     }
837
838 //////////////////////////////////////////////////////////////////////////
839 // new since 1.0.0
840 //////////////////////////////////////////////////////////////////////////
841
842     /*! this text is put before a collaboration diagram */
843     virtual QCString trCollaborationDiagram(const char *clName)
844     {
845       return (QCString)"Diagrama de colaboração para "+clName+":";
846     }
847     /*! this text is put before an include dependency graph */
848     virtual QCString trInclDepGraph(const char *fName)
849     {
850       return (QCString)"Diagrama de dependências de inclusão para "+fName+":";
851     }
852     /*! header that is put before the list of constructor/destructors. */
853     virtual QCString trConstructorDocumentation()
854     {
855       return "Documentação dos Construtores & Destrutor";
856     }
857     /*! Used in the file documentation to point to the corresponding sources. */
858     virtual QCString trGotoSourceCode()
859     {
860       return "Ir para o código fonte deste ficheiro.";
861     }
862     /*! Used in the file sources to point to the corresponding documentation. */
863     virtual QCString trGotoDocumentation()
864     {
865       return "Ir para a documentação deste ficheiro.";
866     }
867     /*! Text for the \\pre command */
868     virtual QCString trPrecondition()
869     {
870       return "Precondição";
871     }
872     /*! Text for the \\post command */
873     virtual QCString trPostcondition()
874     {
875       return "Poscondição";
876     }
877     /*! Text for the \\invariant command */
878     virtual QCString trInvariant()
879     {
880       return "Invariante";
881     }
882     /*! Text shown before a multi-line variable/enum initialization */
883     virtual QCString trInitialValue()
884     {
885       return "Valor inicial:";
886     }
887     /*! Text used the source code in the file index */
888     virtual QCString trCode()
889     {
890       return "código";
891     }
892     virtual QCString trGraphicalHierarchy()
893     {
894       return "Representação gráfica da hiearquia da classe";
895     }
896     virtual QCString trGotoGraphicalHierarchy()
897     {
898       return "Ir para a representação gráfica da hierarquia da classe";
899     }
900     virtual QCString trGotoTextualHierarchy()
901     {
902       return "Ir para a representação textual da hierarquia da classe";
903     }
904     virtual QCString trPageIndex()
905     {
906       return "Índice da página";
907     }
908
909 //////////////////////////////////////////////////////////////////////////
910 // new since 1.1.0
911 //////////////////////////////////////////////////////////////////////////
912
913     virtual QCString trNote()
914     {
915       return "Nota";
916     }
917     virtual QCString trPublicTypes()
918     {
919       return "Tipos Públicos";
920     }
921     virtual QCString trPublicAttribs()
922     {
923       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
924       {
925         return "Campos de Dados";
926       }
927       else
928       {
929         return "Atributos Públicos";
930       }
931     }
932     virtual QCString trStaticPublicAttribs()
933     {
934       return "Atributos Públicos Estáticos";
935     }
936     virtual QCString trProtectedTypes()
937     {
938       return "Tipos Protegidos";
939     }
940     virtual QCString trProtectedAttribs()
941     {
942       return "Atributos Protegidos";
943     }
944     virtual QCString trStaticProtectedAttribs()
945     {
946       return "Atributos Protegidos Estáticos";
947     }
948     virtual QCString trPrivateTypes()
949     {
950       return "Tipos Privados";
951     }
952     virtual QCString trPrivateAttribs()
953     {
954       return "Atributos Privados";
955     }
956     virtual QCString trStaticPrivateAttribs()
957     {
958       return "Atributos Privados Estáticos";
959     }
960
961 //////////////////////////////////////////////////////////////////////////
962 // new since 1.1.3
963 //////////////////////////////////////////////////////////////////////////
964
965     /*! Used as a marker that is put before a todo item */
966     virtual QCString trTodo()
967     {
968       return "Tarefa";
969     }
970     /*! Used as the header of the todo list */
971     virtual QCString trTodoList()
972     {
973       return "Lista de tarefas";
974     }
975
976 //////////////////////////////////////////////////////////////////////////
977 // new since 1.1.4
978 //////////////////////////////////////////////////////////////////////////
979
980     virtual QCString trReferencedBy()
981     {
982       return "Referenciado por";
983     }
984     virtual QCString trRemarks()
985     {
986       return "Observações";
987     }
988     virtual QCString trAttention()
989     {
990       return "Atenção";
991     }
992     virtual QCString trInclByDepGraph()
993     {
994       return "Este grafo mostra quais são os ficheiros que incluem directamente ou indirectamente este ficheiro:";
995     }
996     virtual QCString trSince()
997     {
998       return "Desde";
999     }
1000
1001 //////////////////////////////////////////////////////////////////////////
1002 // new since 1.1.5
1003 //////////////////////////////////////////////////////////////////////////
1004
1005     /*! title of the graph legend page */
1006     virtual QCString trLegendTitle()
1007     {
1008       return "Legenda do grafo";
1009     }
1010     /*! page explaining how the dot graph's should be interpreted */
1011     virtual QCString trLegendDocs()
1012     {
1013       return
1014         "Esta página explica como interpretar os grafos gerados pelo doxygen.<p>\n"
1015         "Considere o seguinte exemplo:\n"
1016         "\\code\n"
1017         "/*! Esta classe vai estar escondida devido à truncação */\n"
1018         "class Invisible { };\n\n"
1019         "/*! Esta classe tem a relação de herança escondida */\n"
1020         "class Truncated : public Invisible { };\n\n"
1021         "/* Classe não documentada por comentários doxygen */\n"
1022         "class Undocumented { };\n\n"
1023         "/*! Classe derivada usando derivação pública */\n"
1024         "class PublicBase : public Truncated { };\n\n"
1025         "/*! A template class */\n"
1026         "template<class T> class Templ { };\n\n"
1027         "/*! Classe derivada usando derivação protegida */\n"
1028         "class ProtectedBase { };\n\n"
1029         "/*! Classe derivada usando derivação privada */\n"
1030         "class PrivateBase { };\n\n"
1031         "/*! Classe usada pela classe Inherited */\n"
1032         "class Used { };\n\n"
1033         "/*! Super classe que deriva de várias classes */\n"
1034         "class Inherited : public PublicBase,\n"
1035         "                  protected ProtectedBase,\n"
1036         "                  private PrivateBase,\n"
1037         "                  public Undocumented,\n"
1038         "                  public Templ<int>\n"
1039         "{\n"
1040         "  private:\n"
1041         "    Used *m_usedClass;\n"
1042         "};\n"
1043         "\\endcode\n"
1044         "Isto irá gerar o seguinte gráfo:"
1045         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
1046         "<p>\n"
1047         "As caixas no grafo anterior têm as seguintes interpretações:\n"
1048         "<ul>\n"
1049         "<li>Uma caixa inteiramente preta representa a estrutura ou a classe para "
1050         "a qual o grafo foi gerado.\n"
1051         "<li>Uma caixa com borda preta representa uma estrutura ou classe documentada.\n"
1052         "<li>Uma caixa com borda cinzenta representa uma estrutura ou classe não documentada.\n"
1053         "<li>Uma caixa com borda vermelha representa uma estrutura ou classe documentada onde "
1054         "nem todas as relações de herança/encapsulamento são exibidas. Um grafo é truncado "
1055         "quando não cabe na sua área predefinida.\n"
1056         "</ul>\n"
1057         "As setas têm a seguinte interpretação:\n"
1058         "<ul>\n"
1059         "<li>Uma seta azul escura representa uma relação de herança pública entre duas classes.\n"
1060         "<li>Uma seta verde escura representa uma relação de herança protegida.\n"
1061         "<li>Uma seta vermelha escura representa uma relação de herança privada.\n"
1062         "<li>Uma seta rocha em tracejado representa uma relação de encapsulamento ou uso por "
1063         "parte de outra classe. A legenda da seta contém o nome da variável ou variáveis da "
1064         "relação. A seta aponta da classe que estabelece a relação para a classe ou estrutura que "
1065         "é acessível.\n"
1066         "</ul>\n";
1067     }
1068     /*! text for the link to the legend page */
1069     virtual QCString trLegend()
1070     {
1071       return "legenda";
1072     }
1073
1074 //////////////////////////////////////////////////////////////////////////
1075 // new since 1.2.0
1076 //////////////////////////////////////////////////////////////////////////
1077
1078     /*! Used as a marker that is put before a test item */
1079     virtual QCString trTest()
1080     {
1081       return "Teste";
1082     }
1083     /*! Used as the header of the test list */
1084     virtual QCString trTestList()
1085     {
1086       return "Lista de teste";
1087     }
1088
1089 //////////////////////////////////////////////////////////////////////////
1090 // new since 1.2.1
1091 //////////////////////////////////////////////////////////////////////////
1092
1093     /*! Used as a section header for KDE-2 IDL methods */
1094     virtual QCString trDCOPMethods()
1095     {
1096       return "Métodos DCOP";
1097     }
1098
1099 //////////////////////////////////////////////////////////////////////////
1100 // new since 1.2.2
1101 //////////////////////////////////////////////////////////////////////////
1102
1103     /*! Used as a section header for IDL properties */
1104     virtual QCString trProperties()
1105     {
1106       return "Propriedades";
1107     }
1108     /*! Used as a section header for IDL property documentation */
1109     virtual QCString trPropertyDocumentation()
1110     {
1111       return "Documentação das propriedades";
1112     }
1113
1114 //////////////////////////////////////////////////////////////////////////
1115 // new since 1.2.4
1116 //////////////////////////////////////////////////////////////////////////
1117
1118     /*! Used for Java classes in the summary section of Java packages */
1119     virtual QCString trClasses()
1120     {
1121       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1122       {
1123         return "Estruturas de dados";
1124       }
1125       else
1126       {
1127         return "Classes";
1128       }
1129     }
1130     /*! Used as the title of a Java package */
1131     virtual QCString trPackage(const char *name)
1132     {
1133       return (QCString)"Pacote "+name;
1134     }
1135     /*! Title of the package index page */
1136     virtual QCString trPackageList()
1137     {
1138       return "Lista de pacotes";
1139     }
1140     /*! The description of the package index page */
1141     virtual QCString trPackageListDescription()
1142     {
1143       return "Lista de pacotes com uma breve descrição (se disponível):";
1144     }
1145     /*! The link name in the Quick links header for each page */
1146     virtual QCString trPackages()
1147     {
1148       return "Pacotes";
1149     }
1150     /*! Text shown before a multi-line define */
1151     virtual QCString trDefineValue()
1152     {
1153       return "Valor:";
1154     }
1155
1156 //////////////////////////////////////////////////////////////////////////
1157 // new since 1.2.5
1158 //////////////////////////////////////////////////////////////////////////
1159
1160     /*! Used as a marker that is put before a \\bug item */
1161     virtual QCString trBug()
1162     {
1163       return "Bug";
1164     }
1165     /*! Used as the header of the bug list */
1166     virtual QCString trBugList()
1167     {
1168       return "Lista de Bugs";
1169     }
1170
1171 //////////////////////////////////////////////////////////////////////////
1172 // new since 1.2.6
1173 //////////////////////////////////////////////////////////////////////////
1174
1175     /*! Used as ansicpg for RTF file
1176      *
1177      * The following table shows the correlation of Charset name, Charset Value and
1178      * <pre>
1179      * Codepage number:
1180      * Charset Name       Charset Value(hex)  Codepage number
1181      * ------------------------------------------------------
1182      * DEFAULT_CHARSET           1 (x01)
1183      * SYMBOL_CHARSET            2 (x02)
1184      * OEM_CHARSET             255 (xFF)
1185      * ANSI_CHARSET              0 (x00)            1252
1186      * RUSSIAN_CHARSET         204 (xCC)            1251
1187      * EE_CHARSET              238 (xEE)            1250
1188      * GREEK_CHARSET           161 (xA1)            1253
1189      * TURKISH_CHARSET         162 (xA2)            1254
1190      * BALTIC_CHARSET          186 (xBA)            1257
1191      * HEBREW_CHARSET          177 (xB1)            1255
1192      * ARABIC _CHARSET         178 (xB2)            1256
1193      * SHIFTJIS_CHARSET        128 (x80)             932
1194      * HANGEUL_CHARSET         129 (x81)             949
1195      * GB2313_CHARSET          134 (x86)             936
1196      * CHINESEBIG5_CHARSET     136 (x88)             950
1197      * </pre>
1198      *
1199      */
1200     virtual QCString trRTFansicp()
1201     {
1202       return "1252";
1203     }
1204
1205
1206     /*! Used as ansicpg for RTF fcharset
1207      *  \see trRTFansicp() for a table of possible values.
1208      */
1209     virtual QCString trRTFCharSet()
1210     {
1211       return "0";
1212     }
1213
1214     /*! Used as header RTF general index */
1215     virtual QCString trRTFGeneralIndex()
1216     {
1217       return "Índice";
1218     }
1219
1220     /*! This is used for translation of the word that will possibly
1221      *  be followed by a single name or by a list of names
1222      *  of the category.
1223      */
1224     virtual QCString trClass(bool first_capital, bool singular)
1225     {
1226       QCString result((first_capital ? "Classe" : "classe"));
1227       if (!singular)  result+="s";
1228       return result;
1229     }
1230
1231     /*! This is used for translation of the word that will possibly
1232      *  be followed by a single name or by a list of names
1233      *  of the category.
1234      */
1235     virtual QCString trFile(bool first_capital, bool singular)
1236     {
1237       QCString result((first_capital ? "Ficheiro" : "ficheiro"));
1238       if (!singular)  result+="s";
1239       return result;
1240     }
1241
1242     /*! This is used for translation of the word that will possibly
1243      *  be followed by a single name or by a list of names
1244      *  of the category.
1245      */
1246     virtual QCString trNamespace(bool first_capital, bool singular)
1247     {
1248       QCString result((first_capital ? "Namespace" : "namespace"));
1249       if (!singular)  result+="s";
1250       return result;
1251     }
1252
1253     /*! This is used for translation of the word that will possibly
1254      *  be followed by a single name or by a list of names
1255      *  of the category.
1256      */
1257     virtual QCString trGroup(bool first_capital, bool singular)
1258     {
1259       QCString result((first_capital ? "Grupo" : "grupo"));
1260       if (!singular)  result+="s";
1261       return result;
1262     }
1263
1264     /*! This is used for translation of the word that will possibly
1265      *  be followed by a single name or by a list of names
1266      *  of the category.
1267      */
1268     virtual QCString trPage(bool first_capital, bool singular)
1269     {
1270       QCString result((first_capital ? "Página" : "página"));
1271       if (!singular)  result+="s";
1272       return result;
1273     }
1274
1275     /*! This is used for translation of the word that will possibly
1276      *  be followed by a single name or by a list of names
1277      *  of the category.
1278      */
1279     virtual QCString trMember(bool first_capital, bool singular)
1280     {
1281       QCString result((first_capital ? "Membro" : "membro"));
1282       if (!singular)  result+="s";
1283       return result;
1284     }
1285
1286     /*! This is used for translation of the word that will possibly
1287      *  be followed by a single name or by a list of names
1288      *  of the category.
1289      */
1290     virtual QCString trGlobal(bool first_capital, bool singular)
1291     {
1292       QCString result((first_capital ? "Globa" : "globa"));
1293       result+= singular? "l" : "ais";
1294       return result;
1295     }
1296
1297 //////////////////////////////////////////////////////////////////////////
1298 // new since 1.2.7
1299 //////////////////////////////////////////////////////////////////////////
1300
1301     /*! This text is generated when the \\author command is used and
1302      *  for the author section in man pages. */
1303     virtual QCString trAuthor(bool first_capital, bool singular)
1304     {
1305       QCString result((first_capital ? "Autor" : "autor"));
1306       if (!singular) result+="es";
1307       return result;
1308     }
1309
1310 //////////////////////////////////////////////////////////////////////////
1311 // new since 1.2.11
1312 //////////////////////////////////////////////////////////////////////////
1313
1314     /*! This text is put before the list of members referenced by a member
1315      */
1316     virtual QCString trReferences()
1317     {
1318       return "Referências";
1319     }
1320
1321 //////////////////////////////////////////////////////////////////////////
1322 // new since 1.2.13
1323 //////////////////////////////////////////////////////////////////////////
1324
1325     /*! used in member documentation blocks to produce a list of 
1326      *  members that are implemented by this one.
1327      */
1328     virtual QCString trImplementedFromList(int numEntries)
1329     {
1330       return "Implementa "+trWriteList(numEntries)+".";
1331     }
1332
1333     /*! used in member documentation blocks to produce a list of
1334      *  all members that implement this abstract member.
1335      */
1336     virtual QCString trImplementedInList(int numEntries)
1337     {
1338       return "Implementado em "+trWriteList(numEntries)+".";
1339     }
1340
1341 //////////////////////////////////////////////////////////////////////////
1342 // new since 1.2.16
1343 //////////////////////////////////////////////////////////////////////////
1344
1345     /*! used in RTF documentation as a heading for the Table
1346      *  of Contents.
1347      */
1348     virtual QCString trRTFTableOfContents()
1349     {
1350       return "Índice";
1351     }
1352
1353 //////////////////////////////////////////////////////////////////////////
1354 // new since 1.2.17
1355 //////////////////////////////////////////////////////////////////////////
1356
1357     /*! Used as the header of the list of item that have been
1358      *  flagged deprecated
1359      */
1360     virtual QCString trDeprecatedList()
1361     {
1362       return "Lista de Deprecados";
1363     }
1364
1365 //////////////////////////////////////////////////////////////////////////
1366 // new since 1.2.18
1367 //////////////////////////////////////////////////////////////////////////
1368
1369     /*! Used as a header for declaration section of the events found in 
1370      * a C# program
1371      */
1372     virtual QCString trEvents()
1373     {
1374       return "Eventos";
1375     }
1376     /*! Header used for the documentation section of a class' events. */
1377     virtual QCString trEventDocumentation()
1378     {
1379       return "Documentação dos eventos";
1380     }
1381
1382 //////////////////////////////////////////////////////////////////////////
1383 // new since 1.3
1384 //////////////////////////////////////////////////////////////////////////
1385
1386     /*! Used as a heading for a list of Java class types with package scope.
1387      */
1388     virtual QCString trPackageTypes()
1389     { 
1390       return "Tipos do Pacote";
1391     }
1392     /*! Used as a heading for a list of Java class functions with package 
1393      * scope. 
1394      */
1395     virtual QCString trPackageMembers()
1396     { 
1397       return "Funções do Pacote";
1398     }
1399     /*! Used as a heading for a list of static Java class functions with 
1400      *  package scope.
1401      */
1402     virtual QCString trStaticPackageMembers()
1403     { 
1404       return "Funções Estáticas do Pacote";
1405     }
1406     /*! Used as a heading for a list of Java class variables with package 
1407      * scope.
1408      */
1409     virtual QCString trPackageAttribs()
1410     { 
1411       return "Atributos do Pacote";
1412     }
1413     /*! Used as a heading for a list of static Java class variables with 
1414      * package scope.
1415      */
1416     virtual QCString trStaticPackageAttribs()
1417     { 
1418       return "Atributos Estáticos do Pacote";
1419     }
1420     
1421 //////////////////////////////////////////////////////////////////////////
1422 // new since 1.3.1
1423 //////////////////////////////////////////////////////////////////////////
1424
1425     /*! Used in the quick index of a class/file/namespace member list page 
1426      *  to link to the unfiltered list of all members.
1427      */
1428     virtual QCString trAll()
1429     {
1430       return "Tudo";
1431     }
1432     /*! Put in front of the call graph for a function. */
1433     virtual QCString trCallGraph()
1434     {
1435       return "Grafo de chamadas desta função:";
1436     }
1437     
1438 //////////////////////////////////////////////////////////////////////////
1439 // new since 1.3.3 - Based on the Brazilian Portuguese Translation
1440 //////////////////////////////////////////////////////////////////////////
1441
1442     /*! When the search engine is enabled this text is put in the header
1443      *  of each page before the field where one can enter the text to search
1444      *  for.
1445      */
1446     virtual QCString trSearchForIndex()
1447     {
1448       return "Procurar por";
1449     }
1450     /*! This string is used as the title for the page listing the search
1451      *  results.
1452      */
1453     virtual QCString trSearchResultsTitle()
1454     {
1455       return "Resultado da Busca";
1456     }
1457     /*! This string is put just before listing the search results. The
1458      *  text can be different depending on the number of documents found.
1459      *  Inside the text you can put the special marker $num to insert
1460      *  the number representing the actual number of search results.
1461      *  The @a numDocuments parameter can be either 0, 1 or 2, where the
1462      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1463      *  the returned string.
1464      */
1465     virtual QCString trSearchResults(int numDocuments)
1466     {
1467       if (numDocuments==0)
1468       {
1469         return "Nenhum documento foi encontrado.";
1470       }
1471       else if (numDocuments==1)
1472       {
1473         return "Apenas <b>1</b> documento foi encontrado.";
1474       }
1475       else
1476       {
1477         return "<b>$num</b> documentos encontrados. "
1478                "Os melhores resultados vem primeiro.";
1479       }
1480     }
1481     /*! This string is put before the list of matched words, for each search
1482      *  result. What follows is the list of words that matched the query.
1483      */
1484     virtual QCString trSearchMatches()
1485     {
1486       return "Resultados:";
1487     }
1488     
1489 //////////////////////////////////////////////////////////////////////////
1490 // new since 1.3.8
1491 //////////////////////////////////////////////////////////////////////////
1492
1493     /*! This is used in HTML as the title of page with source code for file filename
1494      */
1495     virtual QCString trSourceFile(QCString& filename)
1496     {
1497       return  "Código-Fonte de " + filename;
1498     }
1499
1500 //////////////////////////////////////////////////////////////////////////
1501 // new since 1.3.9
1502 //////////////////////////////////////////////////////////////////////////
1503
1504     /*! This is used as the name of the chapter containing the directory
1505      *  hierarchy.
1506      */
1507     virtual QCString trDirIndex()
1508     { return "Hierarquia de Diretórios"; }
1509
1510     /*! This is used as the name of the chapter containing the documentation
1511      *  of the directories.
1512      */
1513     virtual QCString trDirDocumentation()
1514     { return "Documentação do Directório"; }
1515
1516     /*! This is used as the title of the directory index and also in the
1517      *  Quick links of a HTML page, to link to the directory hierarchy.
1518      */
1519     virtual QCString trDirectories()
1520     { return "Diretórios"; }
1521
1522     /*! This returns a sentences that introduces the directory hierarchy. 
1523      *  and the fact that it is sorted alphabetically per level
1524      */
1525     virtual QCString trDirDescription()
1526     { return "Esta Hierarquia de Diretórios está parcialmente ordenada (ordem alfabética)"; }
1527
1528     /*! This returns the title of a directory page. The name of the
1529      *  directory is passed via \a dirName.
1530      */
1531     virtual QCString trDirReference(const char *dirName)
1532     {
1533         QCString result = "Referência do diretório ";
1534         result += dirName;
1535         return result;
1536     }
1537
1538     /*! This returns the word directory with or without starting capital
1539      *  (\a first_capital) and in sigular or plural form (\a singular).
1540      */
1541     virtual QCString trDir(bool first_capital, bool singular)
1542     { 
1543       QCString result((first_capital ? "Diretório" : "diretório"));
1544       if (!singular) result+="s";
1545       return result; 
1546     }
1547 //////////////////////////////////////////////////////////////////////////
1548 // new since 1.4.1
1549 //////////////////////////////////////////////////////////////////////////
1550
1551     /*! This text is added to the documentation when the \\overload command
1552      *  is used for a overloaded function.
1553      */
1554     virtual QCString trOverloadText()
1555     {
1556        return "Este é um método provido por conveniência. "
1557                 "Ele difere do método acima apenas na lista de "
1558                 "argumentos que devem ser utilizados.";
1559     }    
1560
1561 //////////////////////////////////////////////////////////////////////////
1562 // new since 1.4.6
1563 //////////////////////////////////////////////////////////////////////////
1564
1565     /*! This is used to introduce a caller (or called-by) graph */
1566     virtual QCString trCallerGraph()
1567     {
1568       return "Este é o diagrama das funções que utilizam esta função:";
1569     }
1570
1571     /*! This is used in the documentation of a file/namespace before the list 
1572      *  of documentation blocks for enumeration values
1573      */
1574     virtual QCString trEnumerationValueDocumentation()
1575     { return "Documentação da enumeração"; }
1576
1577   
1578 //////////////////////////////////////////////////////////////////////////
1579 // new since 1.5.4 (mainly for Fortran)
1580 //////////////////////////////////////////////////////////////////////////
1581     
1582     /*! header that is put before the list of member subprograms (Fortran). */
1583     virtual QCString trMemberFunctionDocumentationFortran()
1584     { return "Documentação de Função Membro/Subrotina"; }
1585
1586     /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
1587     virtual QCString trCompoundListFortran()
1588     { return "Lista de Tipos de Dados"; }
1589
1590     /*! This is put above each page as a link to all members of compounds (Fortran). */
1591     virtual QCString trCompoundMembersFortran()
1592     { return "Campos de Dados"; }
1593
1594     /*! This is an introduction to the annotated compound list (Fortran). */
1595     virtual QCString trCompoundListDescriptionFortran()
1596     { return "Aqui estão os tipos de dados com descrições resumidas:"; }
1597
1598     /*! This is an introduction to the page with all data types (Fortran). */
1599     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1600     {
1601       QCString result="Esta é a lista de todos os membros ";
1602       if (!extractAll) result+="documentados ";
1603       result+="dos tipos de dados com links para ";
1604       if (extractAll) 
1605       {
1606         result+="a documentação dos tipos de dados para cada membro:";
1607       }
1608       else 
1609       {
1610         result+="os tipos de dados a que pertencem:";
1611       }
1612       return result;
1613     }
1614
1615     /*! This is used in LaTeX as the title of the chapter with the 
1616      * annotated compound index (Fortran).
1617      */
1618     virtual QCString trCompoundIndexFortran()
1619     { return "Índice de Tipos de Dados"; }
1620
1621     /*! This is used in LaTeX as the title of the chapter containing
1622      *  the documentation of all data types (Fortran).
1623      */
1624     virtual QCString trTypeDocumentation()
1625     { return "Documentação dos Tipos de Dados"; }
1626
1627     /*! This is used in the documentation of a file as a header before the 
1628      *  list of (global) subprograms (Fortran).
1629      */
1630     virtual QCString trSubprograms()
1631     { return "Funções/Subrotinas"; }
1632
1633     /*! This is used in the documentation of a file/namespace before the list 
1634      *  of documentation blocks for subprograms (Fortran)
1635      */
1636     virtual QCString trSubprogramDocumentation()
1637     { return "Documentação da Função/Subrotina"; }
1638
1639     /*! This is used in the documentation of a file/namespace/group before 
1640      *  the list of links to documented compounds (Fortran)
1641      */
1642      virtual QCString trDataTypes()
1643     { return "Tipos de Dados"; }
1644     
1645     /*! used as the title of page containing all the index of all modules (Fortran). */
1646     virtual QCString trModulesList()
1647     { return "Lista de Módulos"; }
1648
1649     /*! used as an introduction to the modules list (Fortran) */
1650     virtual QCString trModulesListDescription(bool extractAll)
1651     {
1652       QCString result="Esta é a lista de todos os módulos ";
1653       if (!extractAll) result+="documentados ";
1654       result+="com descrições resumidas:";
1655       return result;
1656     }
1657
1658     /*! used as the title of the HTML page of a module/type (Fortran) */
1659     virtual QCString trCompoundReferenceFortran(const char *clName,
1660                                     ClassDef::CompoundType compType,
1661                                     bool isTemplate)
1662     {
1663       QCString result = (QCString)"Referência ";
1664
1665       if (isTemplate) result+="da Template ";
1666       
1667       switch(compType)
1668       {
1669         case ClassDef::Class:      result+="do Modulo "; break;
1670         case ClassDef::Struct:     result+="do Tipo "; break;
1671         case ClassDef::Union:      result+="da União "; break;
1672         case ClassDef::Interface:  result+="da Interface "; break;
1673         case ClassDef::Protocol:   result+="do Protocolo "; break;
1674         case ClassDef::Category:   result+="da Categoria "; break;
1675         case ClassDef::Exception:  result+="da Exceção "; break;
1676       }
1677       result += clName; 
1678      
1679       return result;
1680     }
1681     /*! used as the title of the HTML page of a module (Fortran) */
1682     virtual QCString trModuleReference(const char *namespaceName)
1683     {
1684       QCString result = "Referência do Módulo ";
1685       result += namespaceName;        
1686       return result;
1687     }
1688     
1689     /*! This is put above each page as a link to all members of modules. (Fortran) */
1690     virtual QCString trModulesMembers()
1691     { return "Membros do Módulo"; }
1692
1693     /*! This is an introduction to the page with all modules members (Fortran) */
1694     virtual QCString trModulesMemberDescription(bool extractAll)
1695     { 
1696       QCString result="Esta é a lista de todos os membros ";
1697       if (!extractAll) result+="documentados ";
1698       result+="dos módulos com links para ";
1699       if (extractAll) 
1700       {
1701         result+="a documentação dos módulos para cada membro:";
1702       }
1703       else 
1704       {
1705         result+="os módulos a que pertencem:";
1706       }
1707       return result;
1708     }
1709
1710     /*! This is used in LaTeX as the title of the chapter with the 
1711      *  index of all modules (Fortran).
1712      */
1713     virtual QCString trModulesIndex()
1714     { return "Índice dos Módulos"; }
1715     
1716     /*! This is used for translation of the word that will possibly
1717      *  be followed by a single name or by a list of names 
1718      *  of the category.
1719      */
1720     virtual QCString trModule(bool first_capital, bool singular)
1721     {       
1722       QCString result((first_capital ? "Modulo" : "modulo"));
1723       if (!singular)  result+="s";
1724       return result; 
1725     }
1726     /*! This is put at the bottom of a module documentation page and is
1727      *  followed by a list of files that were used to generate the page.
1728      */
1729     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1730         bool single)
1731     { // here s is one of " Module", " Struct" or " Union"
1732       // single is true implies a single file
1733       QCString result=(QCString)"A documentação para ";
1734       switch(compType)
1735       {
1736         case ClassDef::Class:      result+="este modulo "; break;
1737         case ClassDef::Struct:     result+="este tipo "; break;
1738         case ClassDef::Union:      result+="esta união "; break;
1739         case ClassDef::Interface:  result+="esta interface "; break;
1740         case ClassDef::Protocol:   result+="esto protocolo "; break;
1741         case ClassDef::Category:   result+="esta categoria "; break;
1742         case ClassDef::Exception:  result+="esta exceção "; break;
1743       }
1744       
1745       result+=" foi gerada a partir do";
1746       if (single) 
1747         result+=" seguinte ficheiro:";
1748       else
1749         result+="s seguintes ficheiros:";
1750       
1751       return result;
1752     }
1753     /*! This is used for translation of the word that will possibly
1754      *  be followed by a single name or by a list of names 
1755      *  of the category.
1756      */
1757     virtual QCString trType(bool first_capital, bool singular)
1758     { 
1759       QCString result((first_capital ? "Tipo" : "tipo"));
1760       if (!singular)  result+="s";
1761       return result; 
1762     }
1763     /*! This is used for translation of the word that will possibly
1764      *  be followed by a single name or by a list of names 
1765      *  of the category.
1766      */
1767     virtual QCString trSubprogram(bool first_capital, bool singular)
1768     { 
1769       QCString result((first_capital ? "Subprograma" : "subprograma"));
1770       if (!singular)  result+="s";
1771       return result; 
1772     }
1773
1774     /*! C# Type Contraint list */
1775     virtual QCString trTypeConstraints()
1776     {
1777       return "Restrições do Tipo";
1778     }    
1779
1780 //////////////////////////////////////////////////////////////////////////
1781 // new since 1.6.0 (mainly for the new search engine)
1782 //////////////////////////////////////////////////////////////////////////
1783
1784     /*! directory relation for \a name
1785      */
1786     virtual QCString trDirRelation(const char *name)
1787     {
1788       return "Relação " + QCString(name);
1789     }
1790
1791     /*! Loading message shown when loading search results */
1792     virtual QCString trLoading()
1793     {
1794       return "Carregando...";
1795     }
1796
1797     /*! Label used for search results in the global namespace */
1798     virtual QCString trGlobalNamespace()
1799     {
1800       return "Namespace global";
1801     }
1802
1803     /*! Message shown while searching */
1804     virtual QCString trSearching()
1805     {
1806       return "Procurando...";
1807     }
1808
1809     /*! Text shown when no search results are found */
1810     virtual QCString trNoMatches()
1811     {
1812       return "Nenhuma entrada encontrada";
1813     }
1814
1815 //////////////////////////////////////////////////////////////////////////
1816 // new since 1.6.3 (missing items for the directory pages)
1817 //////////////////////////////////////////////////////////////////////////
1818
1819     /*! introduction text for the directory dependency graph */
1820     virtual QCString trDirDependency(const char *name)
1821     {
1822       return (QCString)"Grafo de dependência de diretórios para " + name;
1823     }
1824
1825     /*! when clicking a directory dependency label, a page with a
1826      *  table is shown. The heading for the first column mentions the
1827      *  source file that has a relation to another file.
1828      */
1829     virtual QCString trFileIn(const char *name)
1830     {
1831       return (QCString)"Ficheiro em "+name;
1832     }
1833
1834     /*! when clicking a directory dependency label, a page with a
1835      *  table is shown. The heading for the second column mentions the
1836      *  destination file that is included.
1837      */
1838     virtual QCString trIncludesFileIn(const char *name)
1839     {
1840       return (QCString)"Inclui ficheiro em "+name;
1841     }
1842
1843     /** Compiles a date string. 
1844      *  @param year Year in 4 digits
1845      *  @param month Month of the year: 1=January
1846      *  @param day Day of the Month: 1..31
1847      *  @param dayOfWeek Day of the week: 1=Monday..7=Sunday
1848      *  @param hour Hour of the day: 0..23
1849      *  @param minutes Minutes in the hour: 0..59
1850      *  @param seconds Seconds within the minute: 0..59
1851      *  @param includeTime Include time in the result string?
1852      */
1853     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1854                                 int hour,int minutes,int seconds,
1855                                 bool includeTime)
1856     {
1857       static const char *days[]   = { "Segunda","Terça","Quarta","Quinta","Sexta","Sábado","Domingo" };
1858       static const char *months[] = { "Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" };
1859       QCString sdate;
1860       sdate.sprintf("%s, %d de %s de %d",days[dayOfWeek-1],day,months[month-1],year);
1861       if (includeTime)
1862       {
1863         QCString stime;
1864         stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
1865         sdate+=stime;
1866       }
1867       return sdate;
1868     }
1869     
1870 //////////////////////////////////////////////////////////////////////////
1871 // new since 1.7.5
1872 //////////////////////////////////////////////////////////////////////////
1873
1874     /*! Header for the page with bibliographic citations */
1875     virtual QCString trCiteReferences()
1876     { return "Referências Bibliográficas"; }
1877
1878     /*! Text for copyright paragraph */
1879     virtual QCString trCopyright()
1880     {
1881       // Note: I will left it as is because "Direitos de autor" may not fit
1882       // in the text.
1883       return "Copyright";
1884     }
1885
1886     /*! Header for the graph showing the directory dependencies */
1887     virtual QCString trDirDepGraph(const char *name)
1888     { return QCString("Grafo de dependências do directório ")+name+":"; }       
1889 };
1890
1891 #endif