4962168c05b4b2644f93affde0e31b5d4e968e02
[platform/upstream/doxygen.git] / src / translator_es.h
1 /******************************************************************************
2  *
3  *
4  *
5  * Copyright (C) 1997-2015 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 #ifndef TRANSLATOR_ES_H
19 #define TRANSLATOR_ES_H
20
21 /*!
22  * translator_es.h modified by Lucas Cruz (7-julio-2000)
23  * Updated from 1.3.8 to 1.4.6 by Guillermo Ballester Valor (May-05-2006)
24  * Updated to 1.5.1 by Bartomeu Creus Navarro (22-enero-2007)
25  * Updated to 1.5.5 by Bartomeu Creus Navarro (5-febrero-2008)
26  * Updated to 1.5.8 by Bartomeu Creus Navarro (10-abril-2009)
27  * Updated to 1.6.3 by Bartomeu Creus Navarro (3-marzo-2010)
28  * Updated to 1.6.4 by Bartomeu Creus Navarro (26-mayo-2010) [(16-jun-2010) grabado en UTF-8]
29  * Updated to 1.8.0 by Bartomeu Creus Navarro (11-abril-2012)
30  * Updated to 1.8.2 by Bartomeu Creus Navarro (01-julio-2012)
31  * Updated to 1.8.4 by Bartomeu Creus Navarro (17-julio-2013)
32  * Updated to 1.9.6 by David H. Martín (28-diciembre-2022)
33  * Updated to 1.9.7 by David H. Martín (27-marzo-2023)
34 */
35
36 namespace SpanishTranslatorUtils
37 {
38     /*! Returns true if the gender of the given component is masculine in
39     Spanish. */
40     inline bool isClassMemberHighlightMasculine(ClassMemberHighlight::Enum hl)
41     {
42       switch (hl)
43       {
44         case ClassMemberHighlight::All:
45           if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
46           {
47             // structs and unions
48             return false;
49           }
50           else
51           {
52             // class members
53             return true;
54           }
55         case ClassMemberHighlight::Functions:
56         case ClassMemberHighlight::Variables:
57         case ClassMemberHighlight::Enums:
58         case ClassMemberHighlight::Properties:
59           return false;
60         case ClassMemberHighlight::EnumValues:
61         case ClassMemberHighlight::Typedefs:
62         case ClassMemberHighlight::Events:
63         case ClassMemberHighlight::Related:
64         default:
65           return true;
66       }
67     }
68
69     /*! Returns true if the gender of the given component is masculine in
70     Spanish. */
71     inline bool isFileMemberHighlightMasculine(FileMemberHighlight::Enum hl)
72     {
73       switch (hl)
74       {
75         case FileMemberHighlight::All:
76           if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
77           {
78             // functions, variables...
79             return false;
80           }
81           else
82           {
83             // file members
84             return true;
85           }
86         case FileMemberHighlight::Functions:
87         case FileMemberHighlight::Variables:
88         case FileMemberHighlight::Sequences:
89         case FileMemberHighlight::Enums:
90         case FileMemberHighlight::Defines:
91           return false;
92         case FileMemberHighlight::Dictionaries:
93         case FileMemberHighlight::EnumValues:
94         case FileMemberHighlight::Typedefs:
95         default:
96           return true;
97       }
98     }
99
100     /*! Returns true if the gender of the given component is masculine in
101     Spanish. */
102     inline bool isNamespaceMemberHighlightMasculine(NamespaceMemberHighlight::Enum hl)
103     {
104       switch (hl)
105       {
106         case NamespaceMemberHighlight::Functions:
107         case NamespaceMemberHighlight::Variables:
108         case NamespaceMemberHighlight::Sequences:
109         case NamespaceMemberHighlight::Enums:
110           return false;
111         case NamespaceMemberHighlight::All:
112         case NamespaceMemberHighlight::Dictionaries:
113         case NamespaceMemberHighlight::EnumValues:
114         case NamespaceMemberHighlight::Typedefs:
115         default:
116           return true;
117       }
118     }
119 }
120
121 class TranslatorSpanish : public TranslatorAdapter_1_9_6
122 {
123   public:
124
125     // --- Language control methods -------------------
126
127     /*! Used for identification of the language. The identification
128      * should not be translated. It should be replaced by the name
129      * of the language in English using lower-case characters only
130      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
131      * the identification used in language.cpp.
132      */
133     virtual QCString idLanguage()
134     { return "spanish"; }
135
136     /*! Used to get the LaTeX command(s) for the language support.
137      *  This method should return string with commands that switch
138      *  LaTeX to the desired language.  For example
139      *  <pre>"\\usepackage[german]{babel}\n"
140      *  </pre>
141      *  or
142      *  <pre>"\\usepackage{polski}\n"
143      *  "\\usepackage[latin2]{inputenc}\n"
144      *  "\\usepackage[T1]{fontenc}\n"
145      *  </pre>
146      *
147      * The English LaTeX does not use such commands.  Because of this
148      * the empty string is returned in this implementation.
149      */
150     virtual QCString latexLanguageSupportCommand()
151     {
152       return "\\usepackage[spanish]{babel}";
153     }
154
155     virtual QCString trISOLang()
156     {
157       return "es";
158     }
159
160     virtual QCString getLanguageString()
161     {
162       return "0x40A Spanish";
163     }
164     // --- Language translation methods -------------------
165
166     /*! used in the compound documentation before a list of related functions. */
167     virtual QCString trRelatedFunctions()
168     { return "Funciones relacionadas"; }
169
170     /*! subscript for the related functions. */
171     virtual QCString trRelatedSubscript()
172     { return "(Observar que estas no son funciones miembro.)"; }
173
174     /*! header that is put before the detailed description of files, classes and namespaces. */
175     virtual QCString trDetailedDescription()
176     { return "Descripción detallada"; }
177
178     /*! header that is used when the summary tag is missing inside the details tag */
179     virtual QCString trDetails()
180     { return "Detalles"; }
181
182     /*! header that is put before the list of typedefs. */
183     virtual QCString trMemberTypedefDocumentation()
184     { return "Documentación de los «Typedef» miembros de la clase"; }
185
186     /*! header that is put before the list of enumerations. */
187     virtual QCString trMemberEnumerationDocumentation()
188     { return "Documentación de las enumeraciones miembro de la clase"; }
189
190     /*! header that is put before the list of member functions. */
191     virtual QCString trMemberFunctionDocumentation()
192     {
193       if (Config_getBool(OPTIMIZE_OUTPUT_VHDL))
194       {
195         return "Documentación de funciones/procedimientos/procesos miembro";
196       }
197       else
198       {
199         return "Documentación de funciones miembro";
200       }
201     }
202
203     /*! header that is put before the list of member attributes. */
204     virtual QCString trMemberDataDocumentation()
205     {
206       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
207       {
208         return "Documentación de campos";
209       }
210       else
211       {
212         return "Documentación de datos miembro";
213       }
214     }
215
216     /*! this is the text of a link put after brief descriptions. */
217     virtual QCString trMore()
218     { return "Más..."; }
219
220     /*! put in the class documentation */
221     virtual QCString trListOfAllMembers()
222     { return "Lista de todos los miembros"; }
223
224     /*! used as the title of the "list of all members" page of a class */
225     virtual QCString trMemberList()
226     { return "Lista de los miembros"; }
227
228     /*! this is the first part of a sentence that is followed by a class name */
229     virtual QCString trThisIsTheListOfAllMembers()
230     { return "Lista completa de los miembros de "; }
231
232     /*! this is the remainder of the sentence after the class name */
233     virtual QCString trIncludingInheritedMembers()
234     { return ", incluyendo todos los heredados:"; }
235
236     /*! this is put at the author sections at the bottom of man pages.
237      *  parameter s is name of the project name.
238      */
239     virtual QCString trGeneratedAutomatically(const QCString &s)
240     { QCString result="Generado automáticamente por Doxygen";
241       if (!s.isEmpty()) result+=" para "+s;
242       result+=" del código fuente.";
243       return result;
244     }
245
246     /*! put after an enum name in the list of all members */
247     virtual QCString trEnumName()
248     { return "nombre de enumeración"; }
249
250     /*! put after an enum value in the list of all members */
251     virtual QCString trEnumValue()
252     { return "valor enumerado"; }
253
254     /*! put after an undocumented member in the list of all members */
255     virtual QCString trDefinedIn()
256     { return "definido en"; }
257
258     // quick reference sections
259
260     /*! This is put above each page as a link to the list of all groups of
261      *  compounds or files (see the \\group command).
262      */
263     virtual QCString trModules()
264     { return "Módulos"; }
265
266     /*! This is put above each page as a link to the class hierarchy */
267     virtual QCString trClassHierarchy()
268     { return "Jerarquía de clases"; }
269
270     /*! This is put above each page as a link to the list of annotated classes */
271     virtual QCString trCompoundList()
272     {
273       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
274       {
275         return "Estructuras de datos";
276       }
277       else
278       {
279         return "Lista de clases";
280       }
281     }
282
283     /*! This is put above each page as a link to the list of documented files */
284     virtual QCString trFileList()
285     { return "Lista de archivos"; }
286
287     /*! This is put above each page as a link to all members of compounds. */
288     virtual QCString trCompoundMembers()
289     {
290     if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
291       {
292         return "Campos de datos";
293       }
294       else
295       {
296         return "Miembros de clases";
297       }
298     }
299
300     /*! This is put above each page as a link to all members of files. */
301     virtual QCString trFileMembers()
302     {
303       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
304       {
305         return "Globales";
306       }
307       else
308       {
309         return "Miembros de los archivos";
310       }
311     }
312
313     /*! This is put above each page as a link to all related pages. */
314     virtual QCString trRelatedPages()
315     { return "Páginas relacionadas"; }
316
317     /*! This is put above each page as a link to all examples. */
318     virtual QCString trExamples()
319     { return "Ejemplos"; }
320
321     /*! This is put above each page as a link to the search engine. */
322     virtual QCString trSearch()
323     { return "Buscar"; }
324
325     /*! This is an introduction to the class hierarchy. */
326     virtual QCString trClassHierarchyDescription()
327     {
328       if (Config_getBool(OPTIMIZE_OUTPUT_VHDL))
329       {
330         return "Esta es la lista jerárquica de todas las entidades:";
331       }
332       else
333       {
334         return "Este listado de herencia está ordenado de forma general "
335                "pero no está en orden alfabético estricto:";
336       }
337     }
338
339     /*! This is an introduction to the list with all files. */
340     virtual QCString trFileListDescription(bool extractAll)
341     {
342       QCString result="Lista de todos los archivos ";
343       if (!extractAll) result+="documentados y ";
344       result+="con breves descripciones:";
345       return result;
346     }
347
348     /*! This is an introduction to the annotated compound list. */
349     virtual QCString trCompoundListDescription()
350     {
351       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
352       {
353         return "Lista de estructuras con breves descripciones:";
354       }
355       else if (Config_getBool(OPTIMIZE_OUTPUT_SLICE))
356       {
357         return "Lista de clases con breves descripciones:";
358       }
359       else
360       {
361        return "Lista de clases, estructuras, "
362              "uniones e interfaces con breves descripciones:";
363       }
364     }
365
366     /*! This is an introduction to the page with all class members. */
367     virtual QCString trCompoundMembersDescription(bool extractAll)
368     {
369       QCString result="Lista de todos los ";
370       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
371       {
372         result+="campos de estructuras y uniones";
373       }
374       else
375       {
376         result+="campos de clases";
377       }
378       if (!extractAll)
379       {
380         result+=" documentados";
381       }
382       result+=" con enlaces a ";
383       if (!extractAll)
384       {
385         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
386         {
387           result+="la documentación de la estructura/unión para cada campo:";
388         }
389         else
390         {
391           result+="la documentación de la clase para cada miembro:";
392         }
393       }
394       else
395       {
396         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
397         {
398           result+="las estructuras/uniones a las que pertenecen:";
399         }
400         else
401         {
402           result+="las clases a las que pertenecen:";
403         }
404       }
405       return result;
406     }
407
408     /*! This is an introduction to the page with all file members. */
409     virtual QCString trFileMembersDescription(bool extractAll)
410     {
411       QCString result="Lista de ";
412       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
413       {
414         result+="todas las funciones, variables, «defines», enumeraciones y «typedefs»";
415       }
416       else
417       {
418         result+="todos los miembros de los archivos";
419       }
420       if (!extractAll) result+=" documentados";
421       result+=" con enlaces ";
422       if (extractAll)
423         result+="a los archivos a los que corresponden:";
424       else
425         result+="a la documentación:";
426       return result;
427     }
428
429     /*! This is an introduction to the page with the list of all examples */
430     virtual QCString trExamplesDescription()
431     { return "Lista de todos los ejemplos:"; }
432
433     /*! This is an introduction to the page with the list of related pages */
434     virtual QCString trRelatedPagesDescription()
435     { return "Lista de toda la documentación relacionada:"; }
436
437     /*! This is an introduction to the page with the list of class/file groups */
438     virtual QCString trModulesDescription()
439     { return "Lista de todos los módulos:"; }
440
441     // index titles (the project name is prepended for these)
442
443     /*! This is used in HTML as the title of index.html. */
444     virtual QCString trDocumentation()
445     {
446       // TODO: Replace with something like trDocumentationOf(projName).
447           // This will allow the latin construction "Documentación de projName"
448           return "documentación"; }
449
450     /*! This is used in LaTeX as the title of the chapter with the
451      * index of all groups.
452      */
453     virtual QCString trModuleIndex()
454     { return "Índice de módulos"; }
455
456     /*! This is used in LaTeX as the title of the chapter with the
457      * class hierarchy.
458      */
459     virtual QCString trHierarchicalIndex()
460     { return "Índice jerárquico"; }
461
462     /*! This is used in LaTeX as the title of the chapter with the
463      * annotated compound index.
464      */
465     virtual QCString trCompoundIndex()
466     {
467       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
468       {
469         return "Índice de estructuras de datos";
470       }
471       else
472       {
473         return "Índice de clases";
474       }
475     }
476
477     /*! This is used in LaTeX as the title of the chapter with the
478      * list of all files.
479      */
480     virtual QCString trFileIndex()
481     { return "Índice de archivos"; }
482
483     /*! This is used in LaTeX as the title of the chapter containing
484      *  the documentation of all groups.
485      */
486     virtual QCString trModuleDocumentation()
487     { return "Documentación de módulos"; }
488
489     /*! This is used in LaTeX as the title of the chapter containing
490      *  the documentation of all classes, structs and unions.
491      */
492     virtual QCString trClassDocumentation()
493     {
494       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
495       {
496         return "Documentación de estructuras de datos";
497       }
498       else if (Config_getBool(OPTIMIZE_OUTPUT_VHDL))
499       {
500           return trDesignUnitDocumentation();
501       }
502       else
503       {
504         return "Documentación de clases";
505       }
506     }
507
508     /*! This is used in LaTeX as the title of the chapter containing
509      *  the documentation of all files.
510      */
511     virtual QCString trFileDocumentation()
512     { return "Documentación de archivos"; }
513
514     /*! This is used in LaTeX as the title of the document */
515     virtual QCString trReferenceManual()
516     { return "Manual de referencia"; }
517
518     /*! This is used in the documentation of a file as a header before the
519      *  list of defines
520      */
521     virtual QCString trDefines()
522     { return "defines"; }
523
524     /*! This is used in the documentation of a file as a header before the
525      *  list of typedefs
526      */
527     virtual QCString trTypedefs()
528     { return "typedefs"; }
529
530     /*! This is used in the documentation of a file as a header before the
531      *  list of enumerations
532      */
533     virtual QCString trEnumerations()
534     { return "Enumeraciones"; }
535
536     /*! This is used in the documentation of a file as a header before the
537      *  list of (global) functions
538      */
539     virtual QCString trFunctions()
540     { return "Funciones"; }
541
542     /*! This is used in the documentation of a file as a header before the
543      *  list of (global) variables
544      */
545     virtual QCString trVariables()
546     { return "Variables"; }
547
548     /*! This is used in the documentation of a file as a header before the
549      *  list of (global) variables
550      */
551     virtual QCString trEnumerationValues()
552     { return "Valores de enumeraciones"; }
553
554     /*! This is used in the documentation of a file before the list of
555      *  documentation blocks for defines
556      */
557     virtual QCString trDefineDocumentation()
558     { return "Documentación de «define»"; }
559
560     /*! This is used in the documentation of a file/namespace before the list
561      *  of documentation blocks for typedefs
562      */
563     virtual QCString trTypedefDocumentation()
564     { return "Documentación de «typedef»"; }
565
566     /*! This is used in the documentation of a file/namespace before the list
567      *  of documentation blocks for enumeration types
568      */
569     virtual QCString trEnumerationTypeDocumentation()
570     { return "Documentación de enumeraciones"; }
571
572     /*! This is used in the documentation of a file/namespace before the list
573      *  of documentation blocks for functions
574      */
575     virtual QCString trFunctionDocumentation()
576     { return "Documentación de funciones"; }
577
578     /*! This is used in the documentation of a file/namespace before the list
579      *  of documentation blocks for variables
580      */
581     virtual QCString trVariableDocumentation()
582     { return "Documentación de variables"; }
583
584     /*! This is used in the documentation of a file/namespace/group before
585      *  the list of links to documented compounds
586      */
587     virtual QCString trCompounds()
588     {
589       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
590       {
591         return "Estructuras de datos";
592       }
593       else
594       {
595         return "Clases";
596       }
597     }
598
599     /*! This is used in the standard footer of each page and indicates when
600      *  the page was generated
601      */
602     virtual QCString trGeneratedAt(const QCString &date,const QCString &projName)
603     {
604       QCString result="Generado el "+date;
605       if (!projName.isEmpty()) result+=" para "+projName;
606       result+=" por";
607       return result;
608     }
609
610     /*! this text is put before a class diagram */
611     virtual QCString trClassDiagram(const QCString &clName)
612     {
613       return "Diagrama de herencia de "+clName;
614     }
615
616     /*! this text is generated when the \\warning command is used. */
617     virtual QCString trWarning()
618     { return "Atención"; }
619
620     /*! this text is generated when the \\version command is used. */
621     virtual QCString trVersion()
622     { return "Versión"; }
623
624     /*! this text is generated when the \\date command is used. */
625     virtual QCString trDate()
626     { return "Fecha"; }
627
628     /*! this text is generated when the \\return command is used. */
629     virtual QCString trReturns()
630     { return "Devuelve"; }
631
632     /*! this text is generated when the \\sa command is used. */
633     virtual QCString trSeeAlso()
634     { return "Ver también"; }
635
636     /*! this text is generated when the \\param command is used. */
637     virtual QCString trParameters()
638     { return "Parámetros"; }
639
640     /*! this text is generated when the \\exception command is used. */
641     virtual QCString trExceptions()
642     { return "Excepciones"; }
643
644     /*! this text is used in the title page of a LaTeX document. */
645     virtual QCString trGeneratedBy()
646     { return "Generado por"; }
647
648 //////////////////////////////////////////////////////////////////////////
649 // new since 0.49-990307
650 //////////////////////////////////////////////////////////////////////////
651
652     /*! used as the title of page containing all the index of all namespaces. */
653     virtual QCString trNamespaceList()
654     { return "Lista de espacios de nombres"; }
655
656     /*! used as an introduction to the namespace list */
657     virtual QCString trNamespaceListDescription(bool extractAll)
658     {
659       QCString result="Lista de ";
660       if (!extractAll) result+="todos ";
661       result+="los espacios de nombres documentados, con breves descripciones:";
662       return result;
663     }
664
665     /*! used in the class documentation as a header before the list of all
666      *  friends of a class
667      */
668     virtual QCString trFriends()
669     { return "Amigas"; }
670
671 //////////////////////////////////////////////////////////////////////////
672 // new since 0.49-990405
673 //////////////////////////////////////////////////////////////////////////
674
675     /*! used in the class documentation as a header before the list of all
676      * related classes
677      */
678     virtual QCString trRelatedFunctionDocumentation()
679     { return "Documentación de clases amigas y funciones relacionadas"; }
680
681 //////////////////////////////////////////////////////////////////////////
682 // new since 0.49-990425
683 //////////////////////////////////////////////////////////////////////////
684
685     /*! used as the title of the HTML page of a class/struct/union */
686     virtual QCString trCompoundReference(const QCString &clName,
687                                          ClassDef::CompoundType compType,
688                                          bool isTemplate)
689     {
690       QCString result="Referencia de";
691       if (isTemplate) result+=" la plantilla de";
692       switch(compType)
693       {
694         case ClassDef::Class:      result+=" la clase "; break;
695         case ClassDef::Struct:     result+=" la estructura "; break;
696         case ClassDef::Union:      result+=" la unión "; break;
697         case ClassDef::Interface:  result+=" la interface "; break;
698         case ClassDef::Protocol:   result+="l protocolo "; break;
699         case ClassDef::Category:   result+=" la categoría "; break;
700         case ClassDef::Exception:  result+=" la excepción "; break;
701         default: break;
702       }
703       result+=clName;
704       return result;
705     }
706
707     /*! used as the title of the HTML page of a file */
708     virtual QCString trFileReference(const QCString &fileName)
709     {
710       QCString result="Referencia del archivo ";
711       result+=fileName;
712       return result;
713     }
714
715     /*! used as the title of the HTML page of a namespace */
716     virtual QCString trNamespaceReference(const QCString &namespaceName)
717     {
718       QCString result="Referencia del espacio de nombres ";
719       result+=namespaceName;
720       return result;
721     }
722
723     virtual QCString trPublicMembers()
724     { return "Métodos públicos"; }
725
726     virtual QCString trPublicSlots()
727     { return "Slots públicos"; }
728
729     virtual QCString trSignals()
730     { return "Señales"; }
731
732     virtual QCString trStaticPublicMembers()
733     { return "Métodos públicos estáticos"; }
734
735     virtual QCString trProtectedMembers()
736     { return "Métodos protegidos"; }
737
738     virtual QCString trProtectedSlots()
739     { return "Slots protegidos"; }
740
741     virtual QCString trStaticProtectedMembers()
742     { return "Métodos protegidos estáticos"; }
743
744     virtual QCString trPrivateMembers()
745     { return "Métodos privados"; }
746
747     virtual QCString trPrivateSlots()
748     { return "Slots privados"; }
749
750     virtual QCString trStaticPrivateMembers()
751     { return "Métodos privados estáticos"; }
752
753     /*! this function is used to produce a comma-separated list of items.
754      *  use generateMarker(i) to indicate where item i should be put.
755      */
756     virtual QCString trWriteList(int numEntries)
757     {
758       QCString result;
759       int i;
760       // the inherits list contain `numEntries' classes
761       for (i=0;i<numEntries;i++)
762       {
763         // use generateMarker to generate placeholders for the class links!
764         result+=generateMarker(i); // generate marker for entry i in the list
765                                    // (order is left to right)
766
767         if (i!=numEntries-1)  // not the last entry, so we need a separator
768         {
769           if (i<numEntries-2) // not the fore last entry
770             result+=", ";
771           else                // the fore last entry
772             result+=" y ";
773         }
774       }
775       return result;
776     }
777
778     /*! used in class documentation to produce a list of base classes,
779      *  if class diagrams are disabled.
780      */
781     virtual QCString trInheritsList(int numEntries)
782     {
783       return "Hereda de "+trWriteList(numEntries)+".";
784     }
785
786     /*! used in class documentation to produce a list of super classes,
787      *  if class diagrams are disabled.
788      */
789     virtual QCString trInheritedByList(int numEntries)
790     {
791       return "Heredado por "+trWriteList(numEntries)+".";
792     }
793
794     /*! used in member documentation blocks to produce a list of
795      *  members that are hidden by this one.
796      */
797     virtual QCString trReimplementedFromList(int numEntries)
798     {
799       return "Reimplementado de "+trWriteList(numEntries)+".";
800     }
801
802     /*! used in member documentation blocks to produce a list of
803      *  all member that overwrite the implementation of this member.
804      */
805     virtual QCString trReimplementedInList(int numEntries)
806     {
807       return "Reimplementado en "+trWriteList(numEntries)+".";
808     }
809
810     /*! This is put above each page as a link to all members of namespaces. */
811     virtual QCString trNamespaceMembers()
812     { return "Miembros del espacio de nombres "; }
813
814     /*! This is an introduction to the page with all namespace members */
815     virtual QCString trNamespaceMemberDescription(bool extractAll)
816     {
817       QCString result="Lista de todos los miembros de espacios de nombres ";
818       if (!extractAll) result+="documentados ";
819       result+="con enlaces a ";
820       if (extractAll)
821         result+="la documentación del espacio de nombres de cada miembro:";
822       else
823         result+="al espacio de nombres al que pertenecen:";
824       return result;
825     }
826     /*! This is used in LaTeX as the title of the chapter with the
827      *  index of all namespaces.
828      */
829     virtual QCString trNamespaceIndex()
830     { return "Índice de espacios de nombres"; }
831
832     /*! This is used in LaTeX as the title of the chapter containing
833      *  the documentation of all namespaces.
834      */
835     virtual QCString trNamespaceDocumentation()
836     { return "Documentación de espacios de nombres"; }
837
838 //////////////////////////////////////////////////////////////////////////
839 // new since 0.49-990522
840 //////////////////////////////////////////////////////////////////////////
841
842     /*! This is used in the documentation before the list of all
843      *  namespaces in a file.
844      */
845     virtual QCString trNamespaces()
846     { return "Espacios de nombres"; }
847
848 //////////////////////////////////////////////////////////////////////////
849 // new since 0.49-990728
850 //////////////////////////////////////////////////////////////////////////
851
852     /*! This is put at the bottom of a class documentation page and is
853      *  followed by a list of files that were used to generate the page.
854      */
855     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
856         bool single)
857     { // single is true implies a single file
858       bool vhdlOpt = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
859       QCString result="La documentación de est";
860       switch(compType)
861       {
862         case ClassDef::Class:      result+=vhdlOpt? "a unidad de diseño":"a clase"; break;
863         case ClassDef::Struct:     result+="a estructura"; break;
864         case ClassDef::Union:      result+="a unión"; break;
865         case ClassDef::Interface:  result+="a interface"; break;
866         case ClassDef::Protocol:   result+="e protocolo"; break;
867         case ClassDef::Category:   result+="a categoría"; break;
868         case ClassDef::Exception:  result+="a excepción"; break;
869         default: break;
870       }
871       result+=" está generada de";
872       if (single) result+="l siguiente archivo:";
873       else result+=" los siguientes archivos:";
874       return result;
875     }
876
877 //////////////////////////////////////////////////////////////////////////
878 // new since 0.49-990901
879 //////////////////////////////////////////////////////////////////////////
880
881     /*! This is used as the heading text for the retval command. */
882     virtual QCString trReturnValues()
883     { return "Valores devueltos"; }
884
885     /*! This is in the (quick) index as a link to the main page (index.html)
886      */
887     virtual QCString trMainPage()
888     { return "Página principal"; }
889
890     /*! This is used in references to page that are put in the LaTeX
891      *  documentation. It should be an abbreviation of the word page.
892      */
893     virtual QCString trPageAbbreviation()
894     { return "pág."; }
895
896 //////////////////////////////////////////////////////////////////////////
897 // new since 0.49-991003
898 //////////////////////////////////////////////////////////////////////////
899
900     virtual QCString trDefinedAtLineInSourceFile()
901     {
902       return "Definición en la línea @0 del archivo @1.";
903     }
904     virtual QCString trDefinedInSourceFile()
905     {
906       return "Definición en el archivo @0.";
907     }
908
909 //////////////////////////////////////////////////////////////////////////
910 // new since 0.49-991205
911 //////////////////////////////////////////////////////////////////////////
912
913     virtual QCString trDeprecated()
914     {
915     return "Obsoleto";
916     }
917
918 //////////////////////////////////////////////////////////////////////////
919 // new since 1.0.0
920 //////////////////////////////////////////////////////////////////////////
921
922     /*! this text is put before a collaboration diagram */
923     virtual QCString trCollaborationDiagram(const QCString &clName)
924     {
925       return "Diagrama de colaboración de "+clName+":";
926     }
927
928     /*! this text is put before an include dependency graph */
929     virtual QCString trInclDepGraph(const QCString &fName)
930     {
931       return "Gráfico de dependencias incluidas en "+fName+":";
932     }
933
934     /*! header that is put before the list of constructor/destructors. */
935     virtual QCString trConstructorDocumentation()
936     {
937       return "Documentación de constructores y destructores";
938     }
939
940     /*! Used in the file documentation to point to the corresponding sources. */
941     virtual QCString trGotoSourceCode()
942     {
943       return "Ir al código fuente de este archivo.";
944     }
945
946     /*! Used in the file sources to point to the corresponding documentation. */
947     virtual QCString trGotoDocumentation()
948     {
949       return "Ir a la documentación de este archivo.";
950     }
951
952     /*! Text for the \\pre command */
953     virtual QCString trPrecondition()
954     {
955       return "Precondición";
956     }
957
958     /*! Text for the \\post command */
959     virtual QCString trPostcondition()
960     {
961       return "Postcondición";
962     }
963
964     /*! Text for the \\invariant command */
965     virtual QCString trInvariant()
966     {
967       return "Invariante";
968     }
969
970     /*! Text shown before a multi-line variable/enum initialization */
971     virtual QCString trInitialValue()
972     {
973       return "Valor inicial:";
974     }
975
976     /*! Text used the source code in the file index */
977     virtual QCString trCode()
978     {
979       return "código fuente";
980     }
981
982     virtual QCString trGraphicalHierarchy()
983     {
984       return "Gráfico de jerarquía de clases";
985     }
986
987     virtual QCString trGotoGraphicalHierarchy()
988     {
989       return "Ir al gráfico de jerarquía de clases";
990     }
991
992     virtual QCString trGotoTextualHierarchy()
993     {
994       return "Ir al texto de jerarquía de clases";
995     }
996
997     virtual QCString trPageIndex()
998     {
999       return "Índice de páginas";
1000     }
1001
1002 //////////////////////////////////////////////////////////////////////////
1003 // new since 1.1.0
1004 //////////////////////////////////////////////////////////////////////////
1005
1006     virtual QCString trNote()
1007     {
1008       return "Nota";
1009     }
1010
1011     virtual QCString trPublicTypes()
1012     {
1013       return "Tipos públicos";
1014     }
1015
1016     virtual QCString trPublicAttribs()
1017     {
1018       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
1019       {
1020         return "Campos de datos";
1021       }
1022       else
1023       {
1024         return "Atributos públicos";
1025       }
1026     }
1027
1028     virtual QCString trStaticPublicAttribs()
1029     {
1030       return "Atributos públicos estáticos";
1031     }
1032
1033     virtual QCString trProtectedTypes()
1034     {
1035       return "Tipos protegidos";
1036     }
1037
1038     virtual QCString trProtectedAttribs()
1039     {
1040       return "Atributos protegidos";
1041     }
1042
1043     virtual QCString trStaticProtectedAttribs()
1044     {
1045       return "Atributos estáticos protegidos";
1046     }
1047
1048     virtual QCString trPrivateTypes()
1049     {
1050       return "Tipos privados";
1051     }
1052
1053     virtual QCString trPrivateAttribs()
1054     {
1055       return "Atributos privados";
1056     }
1057
1058     virtual QCString trStaticPrivateAttribs()
1059     {
1060       return "Atributos estáticos privados";
1061     }
1062
1063 //////////////////////////////////////////////////////////////////////////
1064 // new since 1.1.3
1065 //////////////////////////////////////////////////////////////////////////
1066
1067     /*! Used as a marker that is put before a \\todo item */
1068     virtual QCString trTodo()
1069     {
1070       return "Tareas pendientes";
1071     }
1072
1073     /*! Used as the header of the todo list */
1074     virtual QCString trTodoList()
1075     {
1076       return "Lista de tareas pendientes";
1077     }
1078
1079 //////////////////////////////////////////////////////////////////////////
1080 // new since 1.1.4
1081 //////////////////////////////////////////////////////////////////////////
1082
1083     virtual QCString trReferencedBy()
1084     {
1085       return "Referenciado por";
1086     }
1087
1088     virtual QCString trRemarks()
1089     {
1090       return "Comentarios";
1091     }
1092
1093     virtual QCString trAttention()
1094     {
1095       return "Atención";
1096     }
1097
1098     virtual QCString trInclByDepGraph()
1099     {
1100       return "Gráfico de los archivos que directa o "
1101               "indirectamente incluyen a este archivo:";
1102     }
1103
1104     virtual QCString trSince()
1105     {
1106       return "Desde";
1107     }
1108
1109 //////////////////////////////////////////////////////////////////////////
1110 // new since 1.1.5
1111 //////////////////////////////////////////////////////////////////////////
1112
1113     /*! title of the graph legend page */
1114     QCString trLegendTitle()
1115     {
1116       return "Leyenda del gráfico";
1117     }
1118
1119     /*! page explaining how the dot graph's should be interpreted
1120      *  The %A in the text below are to prevent link to classes called "A".
1121      */
1122     virtual QCString trLegendDocs()
1123     {
1124       return
1125         "Esta página explica cómo interpretar los gráficos generados "
1126         "por doxygen.<p>\n"
1127         "Considérese el siguiente ejemplo:\n"
1128         "\\code\n"
1129         "/*! Clase invisible por truncamiento */\n"
1130         "class Invisible { };\n\n"
1131         "/*! Clase truncada, relación de herencia escondida */\n"
1132         "class Truncated : public Invisible { };\n\n"
1133         "/* Clase no documentada con comentarios de doxygen */\n"
1134         "class Undocumented { };\n\n"
1135         "/*! Clase que es heredera usando herencia publica */\n"
1136         "class PublicBase : public Truncated { };\n\n"
1137         "/*! Plantilla de clases */\n"
1138         "template<class T> class Templ { };\n\n"
1139         "/*! Clase que es heredera usando herencia protegida  */\n"
1140         "class ProtectedBase { };\n\n"
1141         "/*! Clase que es heredera usando herencia privada  */\n"
1142         "class PrivateBase { };\n\n"
1143         "/*! Clase que es usada por la clase heredada */\n"
1144         "class Used { };\n\n"
1145         "/*! Superclase que hereda de varias otras clases */\n"
1146         "class Inherited : public PublicBase,\n"
1147         "                  protected ProtectedBase,\n"
1148         "                  private PrivateBase,\n"
1149         "                  public Undocumented,\n"
1150         "                  public Templ<int>\n"
1151         "{\n"
1152         "  private:\n"
1153         "    Used *m_usedClass;\n"
1154         "};\n"
1155         "\\endcode\n"
1156         "Dará como resultado el siguiente gráfico:"
1157         "<p><center><img alt=\"\" src=\"graph_legend."+getDotImageExtension()+"\"></center></p>\n"
1158         "<p>\n"
1159         "Las cajas del gráfico superior tienen el siguiente significado:\n"
1160         "</p>\n"
1161         "<ul>\n"
1162         "<li>Una caja gris rellena representa la estructura o clase para la cual "
1163         "se generó el gráfico.\n"
1164         "<li>Una caja con borde negro indica una estructura o clase documentada.\n"
1165         "<li>Una caja con borde gris indica una estructura o clase no documentada.\n"
1166         "<li>Una caja con borde rojo indica una estructura o clase documentada"
1167         " de la que no todas las relaciones de herencia/asociación se "
1168         "muestran. Un gráfico queda cortado si no encaja dentro de los "
1169         "límites especificados."
1170         "</ul>\n"
1171         "<p>\n"
1172         "Las flechas tienen el siguiente significado:\n"
1173         "</p>\n"
1174         "<ul>\n"
1175         "<li>Una flecha azul oscuro se usa para mostrar una relación de herencia publica entre dos clases.\n"
1176         "<li>Una flecha verde oscuro se usa para una herencia protegida.\n"
1177         "<li>Una flecha rojo oscuro se usa para herencia privada.\n"
1178         "<li>Una flecha púrpura discontinua se usa si la clase está contenida o "
1179         "se usa por otra clase. La flecha está etiquetada por la variable "
1180         "con que se accede a la clase o estructura apuntada. \n"
1181         "<li>Una flecha amarilla discontinua indica la relación entre una instancia de plantilla y la clase de plantilla de la que se ha instanciado."
1182         " La flecha se etiqueta con los parámetros de plantilla de la instancia.\n"
1183         "</ul>\n";
1184     }
1185
1186     /*! text for the link to the legend page */
1187     virtual QCString trLegend()
1188     {
1189       return "leyenda";
1190     }
1191
1192 //////////////////////////////////////////////////////////////////////////
1193 // new since 1.2.0
1194 //////////////////////////////////////////////////////////////////////////
1195
1196     /*! Used as a marker that is put before a test item */
1197     virtual QCString trTest()
1198     {
1199       return "Prueba";
1200     }
1201
1202     /*! Used as the header of the test list */
1203     virtual QCString trTestList()
1204     {
1205       return "Lista de pruebas";
1206     }
1207
1208 //////////////////////////////////////////////////////////////////////////
1209 // new since 1.2.2
1210 //////////////////////////////////////////////////////////////////////////
1211
1212     /*! Used as a section header for IDL properties */
1213     virtual QCString trProperties()
1214     {
1215       return "Propiedades";
1216     }
1217
1218     /*! Used as a section header for IDL property documentation */
1219     virtual QCString trPropertyDocumentation()
1220     {
1221       return "Documentación de propiedades";
1222     }
1223
1224 //////////////////////////////////////////////////////////////////////////
1225 // new since 1.2.4
1226 //////////////////////////////////////////////////////////////////////////
1227
1228     /*! Used for Java classes in the summary section of Java packages */
1229     virtual QCString trClasses()
1230     {
1231       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
1232       {
1233         return "Estructuras de datos";
1234       }
1235       else
1236       {
1237         return "Clases";
1238       }
1239     }
1240
1241     /*! Used as the title of a Java package */
1242     virtual QCString trPackage(const QCString &name)
1243     {
1244       return "Paquete "+name;
1245     }
1246
1247
1248     /*! The description of the package index page */
1249     virtual QCString trPackageListDescription()
1250     {
1251       return "Estos son los paquetes con breves descripciones (si están disponibles):";
1252     }
1253
1254     /*! The link name in the Quick links header for each page */
1255     virtual QCString trPackages()
1256     {
1257       return "Paquetes";
1258     }
1259
1260     /*! Text shown before a multi-line define */
1261     virtual QCString trDefineValue()
1262     {
1263       return "Valor:";
1264     }
1265
1266 //////////////////////////////////////////////////////////////////////////
1267 // new since 1.2.5
1268 //////////////////////////////////////////////////////////////////////////
1269
1270     /*! Used as a marker that is put before a \\bug item */
1271     virtual QCString trBug()
1272     {
1273       return "Defecto";
1274     }
1275
1276     /*! Used as the header of the bug list */
1277     virtual QCString trBugList()
1278     {
1279       return "Lista de defectos";
1280     }
1281
1282 //////////////////////////////////////////////////////////////////////////
1283 // new since 1.2.6
1284 //////////////////////////////////////////////////////////////////////////
1285
1286     /*! Used as ansicpg for RTF file
1287      *
1288      * The following table shows the correlation of Charset name, Charset Value and
1289      * <pre>
1290      * Codepage number:
1291      * Charset Name       Charset Value(hex)  Codepage number
1292      * ------------------------------------------------------
1293      * DEFAULT_CHARSET           1 (x01)
1294      * SYMBOL_CHARSET            2 (x02)
1295      * OEM_CHARSET             255 (xFF)
1296      * ANSI_CHARSET              0 (x00)            1252
1297      * RUSSIAN_CHARSET         204 (xCC)            1251
1298      * EE_CHARSET              238 (xEE)            1250
1299      * GREEK_CHARSET           161 (xA1)            1253
1300      * TURKISH_CHARSET         162 (xA2)            1254
1301      * BALTIC_CHARSET          186 (xBA)            1257
1302      * HEBREW_CHARSET          177 (xB1)            1255
1303      * ARABIC _CHARSET         178 (xB2)            1256
1304      * SHIFTJIS_CHARSET        128 (x80)             932
1305      * HANGEUL_CHARSET         129 (x81)             949
1306      * GB2313_CHARSET          134 (x86)             936
1307      * CHINESEBIG5_CHARSET     136 (x88)             950
1308      * </pre>
1309      *
1310      */
1311     virtual QCString trRTFansicp()
1312     {
1313       return "1252";
1314     }
1315
1316
1317     /*! Used as ansicpg for RTF fcharset
1318      *  \see trRTFansicp() for a table of possible values.
1319      */
1320     virtual QCString trRTFCharSet()
1321     {
1322       return "0";
1323     }
1324
1325     /*! Used as header RTF general index */
1326     virtual QCString trRTFGeneralIndex()
1327     {
1328       return "Índice";
1329     }
1330
1331     /*! This is used for translation of the word that will possibly
1332      *  be followed by a single name or by a list of names
1333      *  of the category.
1334      */
1335     virtual QCString trClass(bool first_capital, bool singular)
1336     {
1337       QCString result((first_capital ? "Clase" : "clase"));
1338       if (!singular)  result+="s";
1339       return result;
1340     }
1341
1342     /*! This is used for translation of the word that will possibly
1343      *  be followed by a single name or by a list of names
1344      *  of the category.
1345      */
1346     virtual QCString trFile(bool first_capital, bool singular)
1347     {
1348       QCString result((first_capital ? "Archivo" : "archivo"));
1349       if (!singular)  result+="s";
1350       return result;
1351     }
1352
1353     /*! This is used for translation of the word that will possibly
1354      *  be followed by a single name or by a list of names
1355      *  of the category.
1356      */
1357     virtual QCString trNamespace(bool first_capital, bool singular)
1358     {
1359       QCString result((first_capital ? "Espacio" : "espacio"));
1360       if (!singular)  result+="s";
1361       result+=" de nombres";
1362       return result;
1363     }
1364
1365     /*! This is used for translation of the word that will possibly
1366      *  be followed by a single name or by a list of names
1367      *  of the category.
1368      */
1369     virtual QCString trGroup(bool first_capital, bool singular)
1370     {
1371       QCString result((first_capital ? "Módulo" : "módulo"));
1372       if (!singular)  result+="s";
1373       return result;
1374     }
1375
1376     /*! This is used for translation of the word that will possibly
1377      *  be followed by a single name or by a list of names
1378      *  of the category.
1379      */
1380     virtual QCString trPage(bool first_capital, bool singular)
1381     {
1382       QCString result((first_capital ? "Página" : "página"));
1383       if (!singular)  result+="s";
1384       return result;
1385     }
1386
1387     /*! This is used for translation of the word that will possibly
1388      *  be followed by a single name or by a list of names
1389      *  of the category.
1390      */
1391     virtual QCString trMember(bool first_capital, bool singular)
1392     {
1393       QCString result((first_capital ? "Miembro" : "miembro"));
1394       if (!singular)  result+="s";
1395       return result;
1396     }
1397
1398     /*! This is used for translation of the word that will possibly
1399      *  be followed by a single name or by a list of names
1400      *  of the category.
1401      */
1402     virtual QCString trGlobal(bool first_capital, bool singular)
1403     {
1404       QCString result((first_capital ? "Global" : "global"));
1405       if (!singular)  result+="es";
1406       return result;
1407     }
1408
1409 //////////////////////////////////////////////////////////////////////////
1410 // new since 1.2.7
1411 //////////////////////////////////////////////////////////////////////////
1412
1413     /*! This text is generated when the \\author command is used and
1414      *  for the author section in man pages. */
1415     virtual QCString trAuthor(bool first_capital, bool singular)
1416     {
1417       QCString result((first_capital ? "Autor" : "autor"));
1418       if (!singular)  result+="es";
1419       return result;
1420     }
1421
1422 //////////////////////////////////////////////////////////////////////////
1423 // new since 1.2.11
1424 //////////////////////////////////////////////////////////////////////////
1425
1426     /*! This text is put before the list of members referenced by a member
1427      */
1428     virtual QCString trReferences()
1429     {
1430       return "Hace referencia a";
1431     }
1432
1433 //////////////////////////////////////////////////////////////////////////
1434 // new since 1.2.13
1435 //////////////////////////////////////////////////////////////////////////
1436
1437     /*! used in member documentation blocks to produce a list of
1438      *  members that are implemented by this one.
1439      */
1440     virtual QCString trImplementedFromList(int numEntries)
1441     {
1442       return "Implementa "+trWriteList(numEntries)+".";
1443     }
1444
1445     /*! used in member documentation blocks to produce a list of
1446      *  all members that implement this abstract member.
1447      */
1448     virtual QCString trImplementedInList(int numEntries)
1449     {
1450       return "Implementado en "+trWriteList(numEntries)+".";
1451     }
1452
1453 //////////////////////////////////////////////////////////////////////////
1454 // new since 1.2.16
1455 //////////////////////////////////////////////////////////////////////////
1456
1457     /*! used in RTF documentation as a heading for the Table
1458      *  of Contents.
1459      */
1460     virtual QCString trRTFTableOfContents()
1461     {
1462       return "Tabla de contenidos";
1463     }
1464
1465 //////////////////////////////////////////////////////////////////////////
1466 // new since 1.2.17
1467 //////////////////////////////////////////////////////////////////////////
1468
1469     /*! Used as the header of the list of item that have been
1470      *  flagged deprecated
1471      */
1472     virtual QCString trDeprecatedList()
1473     {
1474       return "Lista de obsoletos";
1475     }
1476
1477 //////////////////////////////////////////////////////////////////////////
1478 // new since 1.2.18
1479 //////////////////////////////////////////////////////////////////////////
1480
1481     /*! Used as a header for declaration section of the events found in
1482      * a C# program
1483      */
1484     virtual QCString trEvents()
1485     {
1486       return "Eventos";
1487     }
1488
1489     /*! Header used for the documentation section of a class' events. */
1490     virtual QCString trEventDocumentation()
1491     {
1492       return "Documentación de eventos";
1493     }
1494
1495 //////////////////////////////////////////////////////////////////////////
1496 // new since 1.3
1497 //////////////////////////////////////////////////////////////////////////
1498
1499     /*! Used as a heading for a list of Java class types with package scope.
1500      */
1501     virtual QCString trPackageTypes()
1502     {
1503       return "Tipos de paquete";
1504     }
1505
1506     /*! Used as a heading for a list of Java class functions with package
1507      * scope.
1508      */
1509     virtual QCString trPackageFunctions()
1510     {
1511       return "Funciones de paquete";
1512     }
1513     virtual QCString trPackageMembers()
1514     {
1515       return "Miembros de paquete";
1516     }
1517
1518     /*! Used as a heading for a list of static Java class functions with
1519      *  package scope.
1520      */
1521     virtual QCString trStaticPackageFunctions()
1522     {
1523       return "Funciones estáticas de paquete";
1524     }
1525
1526     /*! Used as a heading for a list of Java class variables with package
1527      * scope.
1528      */
1529     virtual QCString trPackageAttribs()
1530     {
1531       return "Atributos de paquete";
1532     }
1533
1534     /*! Used as a heading for a list of static Java class variables with
1535      * package scope.
1536      */
1537     virtual QCString trStaticPackageAttribs()
1538     {
1539       return "Atributos estáticos de paquete";
1540     }
1541
1542 //////////////////////////////////////////////////////////////////////////
1543 // new since 1.3.1
1544 //////////////////////////////////////////////////////////////////////////
1545
1546     /*! Used in the quick index of a class/file/namespace member list page
1547      *  to link to the unfiltered list of all members.
1548      */
1549     virtual QCString trAll()
1550     {
1551       return "Todos";
1552     }
1553
1554     /*! Put in front of the call graph for a function. */
1555     virtual QCString trCallGraph()
1556     {
1557       return "Gráfico de llamadas de esta función:";
1558     }
1559
1560 //////////////////////////////////////////////////////////////////////////
1561 // new since 1.3.3
1562 //////////////////////////////////////////////////////////////////////////
1563
1564     /*! This string is used as the title for the page listing the search
1565      *  results.
1566      */
1567     virtual QCString trSearchResultsTitle()
1568     {
1569       return "Resultados de la búsqueda";
1570     }
1571
1572     /*! This string is put just before listing the search results. The
1573      *  text can be different depending on the number of documents found.
1574      *  Inside the text you can put the special marker $num to insert
1575      *  the number representing the actual number of search results.
1576      *  The @a numDocuments parameter can be either 0, 1 or 2, where the
1577      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1578      *  the returned string.
1579      */
1580     virtual QCString trSearchResults(int numDocuments)
1581     {
1582       if (numDocuments==0)
1583       {
1584         return "Disculpe, no se encontraron documentos que coincidan con su búsqueda.";
1585       }
1586       else if (numDocuments==1)
1587       {
1588         return "Se encontró <b>1</b> documento que coincide con su búsqueda.";
1589       }
1590       else
1591       {
1592         return "Se encontraron <b>$num</b> documentos que coinciden con su búsqueda. "
1593                 "Se muestran los mejores resultados primero.";
1594       }
1595     }
1596
1597     /*! This string is put before the list of matched words, for each search
1598      *  result. What follows is the list of words that matched the query.
1599      */
1600     virtual QCString trSearchMatches()
1601     {
1602       return "Coincidencias:";
1603     }
1604
1605 //////////////////////////////////////////////////////////////////////////
1606 // new since 1.3.8
1607 //////////////////////////////////////////////////////////////////////////
1608
1609     /*! This is used in HTML as the title of page with source code for file filename
1610      */
1611     virtual QCString trSourceFile(QCString& filename)
1612     {
1613       return "Archivo de código fuente " + filename;
1614     }
1615
1616 //////////////////////////////////////////////////////////////////////////
1617 // new since 1.3.9
1618 //////////////////////////////////////////////////////////////////////////
1619
1620     /*! This is used as the name of the chapter containing the directory
1621      *  hierarchy.
1622      */
1623     virtual QCString trDirIndex()
1624     { return "Jerarquía de directorios"; }
1625
1626     /*! This is used as the name of the chapter containing the documentation
1627      *  of the directories.
1628      */
1629     virtual QCString trDirDocumentation()
1630     { return "Documentación de directorios"; }
1631
1632     /*! This is used as the title of the directory index and also in the
1633      *  Quick links of an HTML page, to link to the directory hierarchy.
1634      */
1635     virtual QCString trDirectories()
1636     { return "Directorios"; }
1637
1638     /*! This returns the title of a directory page. The name of the
1639      *  directory is passed via \a dirName.
1640      */
1641     virtual QCString trDirReference(const QCString &dirName)
1642     {
1643       QCString result="Referencia del directorio ";
1644       result+=dirName;
1645       return result;
1646     }
1647
1648     /*! This returns the word directory with or without starting capital
1649      *  (\a first_capital) and in sigular or plural form (\a singular).
1650      */
1651     virtual QCString trDir(bool first_capital, bool singular)
1652     {
1653       QCString result((first_capital ? "Directorio" : "directorio"));
1654       if (!singular) result+="s";
1655       return result;
1656     }
1657
1658 //////////////////////////////////////////////////////////////////////////
1659 // new since 1.4.1
1660 //////////////////////////////////////////////////////////////////////////
1661
1662     /*! This text is added to the documentation when the \\overload command
1663      *  is used for a overloaded function.
1664      */
1665     virtual QCString trOverloadText()
1666     {
1667        return "Esta es una función miembro sobrecargada que se "
1668                "suministra por conveniencia. Difiere de la anterior "
1669                "función solamente en los argumentos que acepta.";
1670     }
1671
1672 //////////////////////////////////////////////////////////////////////////
1673 // new since 1.4.6
1674 //////////////////////////////////////////////////////////////////////////
1675
1676     /*! This is used to introduce a caller (or called-by) graph */
1677     virtual QCString trCallerGraph()
1678     {
1679       return "Gráfico de llamadas a esta función:";
1680     }
1681
1682     /*! This is used in the documentation of a file/namespace before the list
1683      *  of documentation blocks for enumeration values
1684      */
1685     virtual QCString trEnumerationValueDocumentation()
1686     { return "Documentación de valores enumerados"; }
1687
1688 //////////////////////////////////////////////////////////////////////////
1689 // new since 1.5.4 (mainly for Fortran)
1690 //////////////////////////////////////////////////////////////////////////
1691
1692     /*! header that is put before the list of member subprograms (Fortran). */
1693     virtual QCString trMemberFunctionDocumentationFortran()
1694     { return "Documentación de funciones/subrutinas miembros"; }
1695
1696     /*! This is put above each page as a link to the list of annotated data types (Fortran). */
1697     virtual QCString trCompoundListFortran()
1698     { return "Lista de campos de datos"; }
1699
1700     /*! This is put above each page as a link to all members of compounds (Fortran). */
1701     virtual QCString trCompoundMembersFortran()
1702     { return "Campos de datos"; }
1703
1704     /*! This is an introduction to the annotated compound list (Fortran). */
1705     virtual QCString trCompoundListDescriptionFortran()
1706     { return "Esta es la lista de los tipos de datos con breves descripciones:"; }
1707
1708     /*! This is an introduction to the page with all data types (Fortran). */
1709     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1710     {
1711       QCString result="Esta es la lista de todos ";
1712       result+="los tipos de datos miembro ";
1713       if (!extractAll)
1714       {
1715         result+="documentados ";
1716       }
1717       result+="con enlaces a ";
1718       if (!extractAll)
1719       {
1720          result+="la documentación de la estructura de datos para cada miembro";
1721       }
1722       else
1723       {
1724          result+="los tipos de datos a los que pertenecen:";
1725       }
1726       return result;
1727     }
1728
1729     /*! This is used in LaTeX as the title of the chapter with the
1730      * annotated compound index (Fortran).
1731      */
1732     virtual QCString trCompoundIndexFortran()
1733     { return "Índice de tipos de datos"; }
1734
1735     /*! This is used in LaTeX as the title of the chapter containing
1736      *  the documentation of all data types (Fortran).
1737      */
1738     virtual QCString trTypeDocumentation()
1739     { return "Documentación de tipos de datos"; }
1740
1741     /*! This is used in the documentation of a file as a header before the
1742      *  list of (global) subprograms (Fortran).
1743      */
1744     virtual QCString trSubprograms()
1745     { return "Funciones/subrutinas"; }
1746
1747     /*! This is used in the documentation of a file/namespace before the list
1748      *  of documentation blocks for subprograms (Fortran)
1749      */
1750     virtual QCString trSubprogramDocumentation()
1751     { return "Documentación de funciones/subrutinas"; }
1752
1753     /*! This is used in the documentation of a file/namespace/group before
1754      *  the list of links to documented compounds (Fortran)
1755      */
1756      virtual QCString trDataTypes()
1757     { return "Tipos de datos"; }
1758
1759     /*! used as the title of page containing all the index of all modules (Fortran). */
1760     virtual QCString trModulesList()
1761     { return "Lista de módulos"; }
1762
1763     /*! used as an introduction to the modules list (Fortran) */
1764     virtual QCString trModulesListDescription(bool extractAll)
1765     {
1766       QCString result="Lista de todos los módulos ";
1767       if (!extractAll) result+="documentados ";
1768       result+="con breves descripciones:";
1769       return result;
1770     }
1771
1772     /*! used as the title of the HTML page of a module/type (Fortran) */
1773     virtual QCString trCompoundReferenceFortran(const QCString &clName,
1774                                     ClassDef::CompoundType compType,
1775                                     bool isTemplate)
1776     {
1777       QCString result="Referencia de";
1778       if (isTemplate) result+=" la plantilla de";
1779       switch(compType)
1780       {
1781         case ClassDef::Class:      result+="l módulo"; break;
1782         case ClassDef::Struct:     result+="l tipo"; break;
1783         case ClassDef::Union:      result+=" la unión"; break;
1784         case ClassDef::Interface:  result+=" la interface"; break;
1785         case ClassDef::Protocol:   result+="l protocolo"; break;
1786         case ClassDef::Category:   result+=" la categoría"; break;
1787         case ClassDef::Exception:  result+=" la excepción"; break;
1788         default: break;
1789       }
1790       result+=clName;
1791       return result;
1792     }
1793
1794     /*! used as the title of the HTML page of a module (Fortran) */
1795     virtual QCString trModuleReference(const QCString &namespaceName)
1796     {
1797       QCString result="Referencia del módulo ";
1798       result+=namespaceName;
1799       return result;
1800     }
1801
1802     /*! This is put above each page as a link to all members of modules. (Fortran) */
1803     virtual QCString trModulesMembers()
1804     { return "Miembros del módulo"; }
1805
1806     /*! This is an introduction to the page with all modules members (Fortran) */
1807     virtual QCString trModulesMemberDescription(bool extractAll)
1808     {
1809       QCString result="Lista de todos los miembros del módulo ";
1810       if (!extractAll) result+="documentados ";
1811       result+="con enlaces ";
1812       if (extractAll)
1813       {
1814         result+="a la documentación del módulo para cada uno:";
1815       }
1816       else
1817       {
1818         result+="al módulo al que pertenecen:";
1819       }
1820       return result;
1821     }
1822
1823     /*! This is used in LaTeX as the title of the chapter with the
1824      *  index of all modules (Fortran).
1825      */
1826     virtual QCString trModulesIndex()
1827     { return "Índice de módulos"; }
1828
1829     /*! This is used for translation of the word that will possibly
1830      *  be followed by a single name or by a list of names
1831      *  of the category.
1832      */
1833     virtual QCString trModule(bool first_capital, bool singular)
1834     {
1835       QCString result((first_capital ? "Módulo" : "módulo"));
1836       if (!singular)  result+="s";
1837       return result;
1838     }
1839
1840     /*! This is put at the bottom of a module documentation page and is
1841      *  followed by a list of files that were used to generate the page.
1842      */
1843     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1844         bool single)
1845     {
1846       // single is true implies a single file
1847       QCString result="La documentación de est";
1848       switch(compType)
1849       {
1850         case ClassDef::Class:      result+="e módulo"; break;
1851         case ClassDef::Struct:     result+="e tipo"; break;
1852         case ClassDef::Union:      result+="a unión"; break;
1853         case ClassDef::Interface:  result+="a interface"; break;
1854         case ClassDef::Protocol:   result+="e protocolo"; break;
1855         case ClassDef::Category:   result+="a categoría"; break;
1856         case ClassDef::Exception:  result+="a excepción"; break;
1857         default: break;
1858       }
1859       result+=" está generada de";
1860       if (single) result+="l siguiente archivo:";
1861       else result+=" los siguientes archivos:";
1862       return result;
1863     }
1864
1865     /*! This is used for translation of the word that will possibly
1866      *  be followed by a single name or by a list of names
1867      *  of the category.
1868      */
1869     virtual QCString trType(bool first_capital, bool singular)
1870     {
1871       QCString result((first_capital ? "Tipo" : "tipo"));
1872       if (!singular)  result+="s";
1873       return result;
1874     }
1875
1876     /*! This is used for translation of the word that will possibly
1877      *  be followed by a single name or by a list of names
1878      *  of the category.
1879      */
1880     virtual QCString trSubprogram(bool first_capital, bool singular)
1881     {
1882       QCString result((first_capital ? "Subprograma" : "subprograma"));
1883       if (!singular)  result+="s";
1884       return result;
1885     }
1886
1887     /*! C# Type Constraint list */
1888     virtual QCString trTypeConstraints()
1889     {
1890       return "Restricciones de tipo";
1891     }
1892
1893 //////////////////////////////////////////////////////////////////////////
1894 // new since 1.6.0 (mainly for the new search engine)
1895 //////////////////////////////////////////////////////////////////////////
1896
1897     /*! directory relation for \a name */
1898     virtual QCString trDirRelation(const QCString &name)
1899     {
1900       return "Relación "+name;
1901     }
1902
1903     /*! Loading message shown when loading search results */
1904     virtual QCString trLoading()
1905     {
1906       return "Cargando...";
1907     }
1908
1909     /*! Label used for search results in the global namespace */
1910     virtual QCString trGlobalNamespace()
1911     {
1912       return "Espacio de nombres global";
1913     }
1914
1915     /*! Message shown while searching */
1916     virtual QCString trSearching()
1917     {
1918       return "Buscando...";
1919     }
1920
1921     /*! Text shown when no search results are found */
1922     virtual QCString trNoMatches()
1923     {
1924       return "Nada coincide";
1925     }
1926
1927 //////////////////////////////////////////////////////////////////////////
1928 // new since 1.6.3 (missing items for the directory pages)
1929 //////////////////////////////////////////////////////////////////////////
1930
1931     /*! when clicking a directory dependency label, a page with a
1932      *  table is shown. The heading for the first column mentions the
1933      *  source file that has a relation to another file.
1934      */
1935     virtual QCString trFileIn(const QCString &name)
1936     {
1937       return "Archivo en "+name;
1938     }
1939
1940     /*! when clicking a directory dependency label, a page with a
1941      *  table is shown. The heading for the second column mentions the
1942      *  destination file that is included.
1943      */
1944     virtual QCString trIncludesFileIn(const QCString &name)
1945     {
1946       return "Incluye archivo en "+name;
1947     }
1948
1949     /** Compiles a date string.
1950      *  @param year Year in 4 digits
1951      *  @param month Month of the year: 1=January
1952      *  @param day Day of the Month: 1..31
1953      *  @param dayOfWeek Day of the week: 1=Monday..7=Sunday
1954      *  @param hour Hour of the day: 0..23
1955      *  @param minutes Minutes in the hour: 0..59
1956      *  @param seconds Seconds within the minute: 0..59
1957      *  @param includeTime Include time in the result string?
1958      */
1959     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1960                                 int hour,int minutes,int seconds,
1961                                 DateTimeType includeTime)
1962     {
1963       static const char *days[]   = { "Lunes","Martes","Miércoles","Jueves",
1964                                       "Viernes","Sábado","Domingo" };
1965       static const char *months[] = { "enero","febrero","marzo","abril",
1966                                       "mayo","junio","julio","agosto",
1967                                       "septiembre","octubre","noviembre","diciembre" };
1968       QCString sdate;
1969       if (includeTime == DateTimeType::DateTime || includeTime == DateTimeType::Date)
1970       {
1971         sdate.sprintf("%s, %d de %s de %d",days[dayOfWeek-1],day,months[month-1],year);
1972       }
1973       if (includeTime == DateTimeType::DateTime) sdate += " ";
1974       if (includeTime == DateTimeType::DateTime || includeTime == DateTimeType::Time)
1975       {
1976         QCString stime;
1977         stime.sprintf("%.2d:%.2d:%.2d",hour,minutes,seconds);
1978         sdate+=stime;
1979       }
1980       return sdate;
1981     }
1982     virtual QCString trDayOfWeek(int dayOfWeek, bool first_capital, bool full)
1983     {
1984       static const char *days_short[]   = { "lun", "mar", "mié", "jue", "vie", "sáb", "dom" };
1985       static const char *days_full[]    = { "lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo" };
1986       QCString text  = full? days_full[dayOfWeek-1] : days_short[dayOfWeek-1];
1987       return first_capital? text.mid(0,1).upper()+text.mid(1) : text;
1988     }
1989     virtual QCString trMonth(int month, bool first_capital, bool full)
1990     {
1991       static const char *months_short[] = { "ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic" };
1992       static const char *months_full[]  = { "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre" };
1993       QCString text  = full? months_full[month-1] : months_short[month-1];
1994       return first_capital? text.mid(0,1).upper()+text.mid(1) : text;
1995     }
1996     virtual QCString trDayPeriod(int period)
1997     {
1998       static const char *dayPeriod[] = { "a. m.", "p. m." };
1999       return dayPeriod[period];
2000     }
2001
2002 //////////////////////////////////////////////////////////////////////////
2003 // new since 1.7.5
2004 //////////////////////////////////////////////////////////////////////////
2005
2006     /*! Header for the page with bibliographic citations */
2007     virtual QCString trCiteReferences()
2008     { return "Referencias bibliográficas"; }
2009
2010     /*! Text for copyright paragraph */
2011     virtual QCString trCopyright()
2012     { return "Copyright"; }
2013
2014     /*! Header for the graph showing the directory dependencies */
2015     virtual QCString trDirDepGraph(const QCString &name)
2016     { return "Gráfico de dependencias de directorios de "+name+":"; }
2017
2018 //////////////////////////////////////////////////////////////////////////
2019 // new since 1.8.0
2020 //////////////////////////////////////////////////////////////////////////
2021
2022     /*! Detail level selector shown for hierarchical indices */
2023     virtual QCString trDetailLevel()
2024     { return "nivel de detalle"; }
2025
2026     /*! Section header for list of template parameters */
2027     virtual QCString trTemplateParameters()
2028     { return "Parámetros de plantilla"; }
2029
2030     /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
2031     virtual QCString trAndMore(const QCString &number)
2032     { return "y "+number+" más..."; }
2033
2034     /*! Used file list for a Java enum */
2035     virtual QCString trEnumGeneratedFromFiles(bool single)
2036     { QCString result = "La documentación de esta enumeración está generada de";
2037       if (single)
2038           result += "l siguiente archivo:";
2039       else
2040           result += " los siguientes archivos:";
2041       return result;
2042     }
2043
2044     /*! Header of a Java enum page (Java enums are represented as classes). */
2045     virtual QCString trEnumReference(const QCString &name)
2046     { return "Referencia de la enumeración "+name; }
2047
2048     /*! Used for a section containing inherited members */
2049     virtual QCString trInheritedFrom(const QCString &members,const QCString &what)
2050     { return members+" heredados de "+what; }
2051
2052     /*! Header of the sections with inherited members specific for the
2053      *  base class(es)
2054      */
2055     virtual QCString trAdditionalInheritedMembers()
2056     { return "Otros miembros heredados"; }
2057
2058 //////////////////////////////////////////////////////////////////////////
2059 // new since 1.8.2
2060 //////////////////////////////////////////////////////////////////////////
2061
2062     /*! Used as a tooltip for the toggle button that appears in the
2063      *  navigation tree in the HTML output when GENERATE_TREEVIEW is
2064      *  enabled. This tooltip explains the meaning of the button.
2065      */
2066     virtual QCString trPanelSynchronisationTooltip(bool enable)
2067     {
2068       QCString opt = enable ? "habilitar" : "deshabilitar";
2069       return "pulsar para "+opt+" sincronización";
2070     }
2071
2072     /*! Used in a method of an Objective-C class that is declared in a
2073      *  a category. Note that the @1 marker is required and is replaced
2074      *  by a link.
2075      */
2076     virtual QCString trProvidedByCategory()
2077     {
2078       return "Proporcionado por la categoría @0.";
2079     }
2080
2081     /*! Used in a method of an Objective-C category that extends a class.
2082      *  Note that the @1 marker is required and is replaced by a link to
2083      *  the class method.
2084      */
2085     virtual QCString trExtendsClass()
2086     {
2087       return "Extiende la clase @0.";
2088     }
2089
2090     /*! Used as the header of a list of class methods in Objective-C.
2091      *  These are similar to static public member functions in C++.
2092      */
2093     virtual QCString trClassMethods()
2094     {
2095       return "Métodos de clase";
2096     }
2097
2098     /*! Used as the header of a list of instance methods in Objective-C.
2099      *  These are similar to public member functions in C++.
2100      */
2101     virtual QCString trInstanceMethods()
2102     {
2103       return "Métodos de instancia";
2104     }
2105
2106     /*! Used as the header of the member functions of an Objective-C class.
2107      */
2108     virtual QCString trMethodDocumentation()
2109     {
2110       return "Documentación de métodos";
2111     }
2112
2113 //////////////////////////////////////////////////////////////////////////
2114 // new since 1.8.4
2115 //////////////////////////////////////////////////////////////////////////
2116
2117     /** old style UNO IDL services: implemented interfaces */
2118     virtual QCString trInterfaces()
2119     { return "Interfaces exportadas"; }
2120
2121     /** old style UNO IDL services: inherited services */
2122     virtual QCString trServices()
2123     { return "Servicios incluidos"; }
2124
2125     /** UNO IDL constant groups */
2126     virtual QCString trConstantGroups()
2127     { return "Grupos de constantes"; }
2128
2129     /** UNO IDL constant groups */
2130     virtual QCString trConstantGroupReference(const QCString &namespaceName)
2131     {
2132       QCString result="Referencia a grupos de constantes de ";
2133       result+=namespaceName;
2134       return result;
2135     }
2136     /** UNO IDL service page title */
2137     virtual QCString trServiceReference(const QCString &sName)
2138     {
2139       QCString result="Referencia a servicios de ";
2140       result+=sName;
2141       return result;
2142     }
2143     /** UNO IDL singleton page title */
2144     virtual QCString trSingletonReference(const QCString &sName)
2145     {
2146       QCString result="Referencia a «singleton» de ";
2147       result+=sName;
2148       return result;
2149     }
2150     /** UNO IDL service page */
2151     virtual QCString trServiceGeneratedFromFiles(bool single)
2152     {
2153       // single is true implies a single file
2154       QCString result="La documentación de este servicio "
2155                       "está generada de";
2156       if (single) result+="l siguiente archivo:"; else result+=" los siguientes archivos:";
2157       return result;
2158     }
2159     /** UNO IDL singleton page */
2160     virtual QCString trSingletonGeneratedFromFiles(bool single)
2161     {
2162       // single is true implies a single file
2163       QCString result="La documentación de este «singleton» "
2164                       "está generada de";
2165       if (single) result+="l siguiente archivo:"; else result+=" los siguientes archivos:";
2166       return result;
2167     }
2168
2169 //////////////////////////////////////////////////////////////////////////
2170 // new since 1.8.15
2171 //////////////////////////////////////////////////////////////////////////
2172
2173     /** VHDL design unit hierarchy */
2174     virtual QCString trDesignUnitHierarchy()
2175     { return "Jerarquía de unidades de diseño"; }
2176     /** VHDL design unit list */
2177     virtual QCString trDesignUnitList()
2178     { return "Lista de unidades de diseño"; }
2179     /** VHDL design unit members */
2180     virtual QCString trDesignUnitMembers()
2181     { return "Miembros de unidades de diseño"; }
2182     /** VHDL design unit list description */
2183     virtual QCString trDesignUnitListDescription()
2184     {
2185         return "Esta es la lista de todos los miembros de unidades de diseño con "
2186             "enlaces a las entidades a las que pertenecen:";
2187     }
2188     /** VHDL design unit index */
2189     virtual QCString trDesignUnitIndex()
2190     { return "Índice de unidades de diseño"; }
2191     /** VHDL design units */
2192     virtual QCString trDesignUnits()
2193     { return "Unidades de diseño"; }
2194     /** VHDL functions/procedures/processes */
2195     virtual QCString trFunctionAndProc()
2196     { return "Funciones/procedimientos/procesos"; }
2197     /** VHDL type */
2198     virtual QCString trVhdlType(uint64_t type,bool single)
2199     {
2200       switch(type)
2201       {
2202         case VhdlDocGen::LIBRARY:
2203           if (single) return "Biblioteca";
2204           else        return "Bibliotecas";
2205         case VhdlDocGen::PACKAGE:
2206           if (single) return "Paquete";
2207           else        return "Paquetes";
2208         case VhdlDocGen::SIGNAL:
2209           if (single) return "Señal";
2210           else        return "Señales";
2211         case VhdlDocGen::COMPONENT:
2212           if (single) return "Componente";
2213           else        return "Componentes";
2214         case VhdlDocGen::CONSTANT:
2215           if (single) return "Constante";
2216           else        return "Constantes";
2217         case VhdlDocGen::ENTITY:
2218           if (single) return "Entidad";
2219           else        return "Entidades";
2220         case VhdlDocGen::TYPE:
2221           if (single) return "Tipo";
2222           else        return "Tipos";
2223         case VhdlDocGen::SUBTYPE:
2224           if (single) return "Subtipo";
2225           else        return "Subtipos";
2226         case VhdlDocGen::FUNCTION:
2227           if (single) return "Función";
2228           else        return "Funciones";
2229         case VhdlDocGen::RECORD:
2230           if (single) return "Registro";
2231           else        return "Registros";
2232         case VhdlDocGen::PROCEDURE:
2233           if (single) return "Procedimiento";
2234           else        return "Procedimientos";
2235         case VhdlDocGen::ARCHITECTURE:
2236           if (single) return "Arquitectura";
2237           else        return "Arquitecturas";
2238         case VhdlDocGen::ATTRIBUTE:
2239           if (single) return "Atributo";
2240           else        return "Atributos";
2241         case VhdlDocGen::PROCESS:
2242           if (single) return "Proceso";
2243           else        return "Procesos";
2244         case VhdlDocGen::PORT:
2245           if (single) return "Puerto";
2246           else        return "Puertos";
2247         case VhdlDocGen::USE:
2248           if (single) return "Cláusula de uso";
2249           else        return "Cláusulas de uso";
2250         case VhdlDocGen::GENERIC:
2251           if (single) return "Genérico";
2252           else        return "Genéricos";
2253         case VhdlDocGen::PACKAGE_BODY:
2254           return "Cuerpo del paquete";
2255         case VhdlDocGen::UNITS:
2256           return "Unidades";
2257         case VhdlDocGen::SHAREDVARIABLE:
2258           if (single) return "Variable compartida";
2259           else        return "Variables compartidas";
2260         case VhdlDocGen::VFILE:
2261           if (single) return "Archivo";
2262           else        return "Archivos";
2263         case VhdlDocGen::GROUP:
2264           if (single) return "Grupo";
2265           else        return "Grupos";
2266         case VhdlDocGen::INSTANTIATION:
2267           if (single) return "Instanciación";
2268           else        return "Instanciaciones";
2269         case VhdlDocGen::ALIAS:
2270           if (single) return "Alias";
2271           else        return "Aliases";
2272         case VhdlDocGen::CONFIG:
2273           if (single) return "Configuración";
2274           else        return "Configuraciones";
2275         case VhdlDocGen::MISCELLANEOUS:
2276           return "Varios";
2277         case VhdlDocGen::UCF_CONST:
2278           return "Restricciones";
2279         default:
2280           return "Clase";
2281       }
2282     }
2283     virtual QCString trCustomReference(const QCString &name)
2284     { return "Referencia de "+name; }
2285
2286     virtual QCString trConstants()
2287     {
2288         return "Constantes";
2289     }
2290     virtual QCString trConstantDocumentation()
2291     {
2292         return "Documentación de constantes";
2293     }
2294     virtual QCString trSequences()
2295     {
2296         return "Secuencias";
2297     }
2298     virtual QCString trSequenceDocumentation()
2299     {
2300         return "Documentación de secuencias";
2301     }
2302     virtual QCString trDictionaries()
2303     {
2304         return "Diccionarios";
2305     }
2306     virtual QCString trDictionaryDocumentation()
2307     {
2308         return "Documentación de diccionarios";
2309     }
2310     virtual QCString trSliceInterfaces()
2311     {
2312         return "Interfaces";
2313     }
2314     virtual QCString trInterfaceIndex()
2315     {
2316         return "Índice de interfaces";
2317     }
2318     virtual QCString trInterfaceList()
2319     {
2320         return "Lista de interfaces";
2321     }
2322     virtual QCString trInterfaceListDescription()
2323     {
2324         return "Esta es la lista de las interfaces con breves descripciones:";
2325     }
2326     virtual QCString trInterfaceHierarchy()
2327     {
2328         return "Jerarquía de interfaces";
2329     }
2330     virtual QCString trInterfaceHierarchyDescription()
2331     {
2332         return "Este listado de herencia está ordenado de forma general, pero no está en orden alfabético estricto:";
2333     }
2334     virtual QCString trInterfaceDocumentation()
2335     {
2336         return "Documentación de interfaces";
2337     }
2338     virtual QCString trStructs()
2339     {
2340         return "Estructuras de datos";
2341     }
2342     virtual QCString trStructIndex()
2343     {
2344         return "Índice de estructuras de datos";
2345     }
2346     virtual QCString trStructList()
2347     {
2348         return "Lista de estructuras de datos";
2349     }
2350     virtual QCString trStructListDescription()
2351     {
2352         return "Esta es la lista de las estructuras de datos con breves descripciones:";
2353     }
2354     virtual QCString trStructDocumentation()
2355     {
2356         return "Documentación de estructuras de datos";
2357     }
2358     virtual QCString trExceptionIndex()
2359     {
2360         return "Índice de excepciones";
2361     }
2362     virtual QCString trExceptionList()
2363     {
2364         return "Lista de excepciones";
2365     }
2366     virtual QCString trExceptionListDescription()
2367     {
2368         return "Esta es la lista de las excepciones con breves descripciones:";
2369     }
2370     virtual QCString trExceptionHierarchy()
2371     {
2372         return "Jerarquía de excepciones";
2373     }
2374     virtual QCString trExceptionHierarchyDescription()
2375     {
2376         return "Este listado de herencia está ordenado de forma general, pero no está en orden alfabético estricto:";
2377     }
2378     virtual QCString trExceptionDocumentation()
2379     {
2380         return "Documentación de excepciones";
2381     }
2382     virtual QCString trCompoundReferenceSlice(const QCString &clName, ClassDef::CompoundType compType, bool isLocal)
2383     {
2384       QCString result="Referencia de";
2385       switch(compType)
2386       {
2387         case ClassDef::Class:      result+=" la clase "; break;
2388         case ClassDef::Struct:     result+=" la estructura "; break;
2389         case ClassDef::Union:      result+=" la unión "; break;
2390         case ClassDef::Interface:  result+=" la interface "; break;
2391         case ClassDef::Protocol:   result+="l protocolo "; break;
2392         case ClassDef::Category:   result+=" la categoría "; break;
2393         case ClassDef::Exception:  result+=" la excepción "; break;
2394         default: break;
2395       }
2396       if (isLocal) result+=" local ";
2397       result+=clName;
2398       return result;
2399     }
2400     virtual QCString trOperations()
2401     {
2402         return "Operaciones";
2403     }
2404     virtual QCString trOperationDocumentation()
2405     {
2406         return "Documentación de operaciones";
2407     }
2408     virtual QCString trDataMembers()
2409     {
2410         return "Datos miembro";
2411     }
2412     virtual QCString trDataMemberDocumentation()
2413     {
2414         return "Documentación de datos miembro";
2415     }
2416
2417 //////////////////////////////////////////////////////////////////////////
2418 // new since 1.8.19
2419 //////////////////////////////////////////////////////////////////////////
2420
2421     /** VHDL design unit documentation */
2422     virtual QCString trDesignUnitDocumentation()
2423     { return "Documentación de unidades de diseño"; }
2424
2425 //////////////////////////////////////////////////////////////////////////
2426 // new since 1.9.2
2427 //////////////////////////////////////////////////////////////////////////
2428
2429     /** C++20 concept */
2430     virtual QCString trConcept(bool first_capital, bool singular)
2431     {
2432       QCString result((first_capital ? "Concepto" : "concepto"));
2433       if (!singular) result+="s";
2434       return result;
2435     }
2436     /*! used as the title of the HTML page of a C++20 concept page */
2437     virtual QCString trConceptReference(const QCString &conceptName)
2438     {
2439       QCString result="Referencia del concepto ";
2440       result+=conceptName;
2441       return result;
2442     }
2443
2444     /*! used as the title of page containing all the index of all concepts. */
2445     virtual QCString trConceptList()
2446     { return "Lista de conceptos"; }
2447
2448     /*! used as the title of chapter containing the index listing all concepts. */
2449     virtual QCString trConceptIndex()
2450     { return "Índice de conceptos"; }
2451
2452     /*! used as the title of chapter containing all information about concepts. */
2453     virtual QCString trConceptDocumentation()
2454     { return "Documentación de conceptos"; }
2455
2456     /*! used as an introduction to the concept list */
2457     virtual QCString trConceptListDescription(bool extractAll)
2458     {
2459       QCString result="Esta es la lista de todos los conceptos ";
2460       if (!extractAll) result+="documentados ";
2461       result+="con breves descripciones:";
2462       return result;
2463     }
2464
2465     /*! used to introduce the definition of the C++20 concept */
2466     virtual QCString trConceptDefinition()
2467     {
2468       return "Definición de concepto";
2469     }
2470
2471 //////////////////////////////////////////////////////////////////////////
2472 // new since 1.9.4
2473 //////////////////////////////////////////////////////////////////////////
2474
2475     virtual QCString trPackageList()
2476     { return "Lista de paquetes"; }
2477
2478 //////////////////////////////////////////////////////////////////////////
2479 // new since 1.9.6
2480 //////////////////////////////////////////////////////////////////////////
2481
2482     /*! This is used for translation of the word that will be
2483      *  followed by a single name of the VHDL process flowchart.
2484      */
2485     virtual QCString trFlowchart()
2486     { return "Diagrama de flujo: "; }
2487
2488     /*! Please translate also updated body of the method
2489      *  trMemberFunctionDocumentation(), now better adapted for
2490      *  VHDL sources documentation.
2491      */
2492
2493 //////////////////////////////////////////////////////////////////////////
2494 // new since 1.9.7
2495 //////////////////////////////////////////////////////////////////////////
2496     /*! used in the compound documentation before a list of related symbols.
2497      *
2498      *  Supersedes trRelatedFunctions
2499      */
2500     virtual QCString trRelatedSymbols()
2501     { return "Símbolos relacionados"; }
2502
2503     /*! subscript for the related symbols
2504      *
2505      *  Supersedes trRelatedSubscript
2506      */
2507     virtual QCString trRelatedSymbolsSubscript()
2508     { return "(Observar que estos no son símbolos miembro.)"; }
2509
2510     /*! used in the class documentation as a header before the list of all
2511      * related classes.
2512      *
2513      * Supersedes trRelatedFunctionDocumentation
2514      */
2515     virtual QCString trRelatedSymbolDocumentation()
2516     { return "Documentación de símbolos amigos y relacionados"; }
2517
2518     /*! the compound type as used for the xrefitems */
2519     virtual QCString trCompoundType(ClassDef::CompoundType compType, SrcLangExt lang)
2520     {
2521       QCString result;
2522       switch(compType)
2523       {
2524         case ClassDef::Class:
2525           if (lang == SrcLangExt_Fortran) trType(true,true);
2526           else result=trClass(true,true);
2527           break;
2528         case ClassDef::Struct:     result="Estructura"; break;
2529         case ClassDef::Union:      result="Unión"; break;
2530         case ClassDef::Interface:  result="Interface"; break;
2531         case ClassDef::Protocol:   result="Protocolo"; break;
2532         case ClassDef::Category:   result="Categoría"; break;
2533         case ClassDef::Exception:  result="Excepción"; break;
2534         case ClassDef::Service:    result="Servicio"; break;
2535         case ClassDef::Singleton:  result="Singleton"; break;
2536         default: break;
2537       }
2538       return result;
2539     }
2540
2541     virtual QCString trFileMembersDescriptionTotal(FileMemberHighlight::Enum hl)
2542     {
2543       bool extractAll = Config_getBool(EXTRACT_ALL);
2544       bool masculine = SpanishTranslatorUtils::isFileMemberHighlightMasculine(hl);
2545       QCString result="Lista de ";
2546       result+=(masculine ? "todos los " : "todas las ");
2547       switch (hl)
2548       {
2549         case FileMemberHighlight::All:
2550           if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
2551           {
2552             result+="funciones, variables, «defines», enumeraciones y «typedefs»";
2553           }
2554           else
2555           {
2556             result+="miembros de los archivos";
2557           }
2558           break;
2559         case FileMemberHighlight::Functions:
2560           result+="funciones";
2561           break;
2562         case FileMemberHighlight::Variables:
2563           result+="variables";
2564           break;
2565         case FileMemberHighlight::Typedefs:
2566           result+="«typedefs»";
2567           break;
2568         case FileMemberHighlight::Sequences:
2569           result+="secuencias";
2570           break;
2571         case FileMemberHighlight::Dictionaries:
2572           result+="diccionarios";
2573           break;
2574         case FileMemberHighlight::Enums:
2575           result+="enumeraciones";
2576           break;
2577         case FileMemberHighlight::EnumValues:
2578           result+="valores enumerados";
2579           break;
2580         case FileMemberHighlight::Defines:
2581           result+="macros";
2582           break;
2583         case FileMemberHighlight::Total: // for completeness
2584           break;
2585       }
2586       if (!extractAll) result+=(masculine ? "documentados " : "documentadas ");
2587       result+=" con enlaces ";
2588       if (extractAll)
2589         result+="a los archivos a los que corresponden:";
2590       else
2591         result+="a la documentación:";
2592       return result;
2593     }
2594
2595     virtual QCString trCompoundMembersDescriptionTotal(ClassMemberHighlight::Enum hl)
2596     {
2597       bool extractAll = Config_getBool(EXTRACT_ALL);
2598       bool masculine = SpanishTranslatorUtils::isClassMemberHighlightMasculine(hl);
2599       QCString result="Lista de ";
2600       result+=(masculine ? "todos los " : "todas las ");
2601       switch (hl)
2602       {
2603         case ClassMemberHighlight::All:
2604           if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
2605           {
2606             result+="estructuras y uniones";
2607           }
2608           else
2609           {
2610             result+="miembros de clases";
2611           }
2612           break;
2613         case ClassMemberHighlight::Functions:
2614           result+="funciones";
2615           break;
2616         case ClassMemberHighlight::Variables:
2617           result+="variables";
2618           break;
2619         case ClassMemberHighlight::Typedefs:
2620           result+="«typedefs»";
2621           break;
2622         case ClassMemberHighlight::Enums:
2623           result+="enumeraciones";
2624           break;
2625         case ClassMemberHighlight::EnumValues:
2626           result+="valores enumerados";
2627           break;
2628         case ClassMemberHighlight::Properties:
2629           result+="propiedades";
2630           break;
2631         case ClassMemberHighlight::Events:
2632           result+="eventos";
2633           break;
2634         case ClassMemberHighlight::Related:
2635           result+="símbolos relacionados";
2636           break;
2637         case ClassMemberHighlight::Total: // for completeness
2638           break;
2639       }
2640       if (!extractAll) result+=(masculine ? "documentados " : "documentadas ");
2641       result+=" con enlaces ";
2642       if (!extractAll)
2643       {
2644         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
2645         {
2646           result+="a la documentación de la estructura/unión para cada campo:";
2647         }
2648         else
2649         {
2650           result+="a la documentación de la clase para cada miembro:";
2651         }
2652       }
2653       else
2654       {
2655         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
2656         {
2657           result+="a las estructuras/uniones a las que pertenecen:";
2658         }
2659         else
2660         {
2661           result+="a las clases a las que pertenecen:";
2662         }
2663       }
2664       return result;
2665     }
2666
2667     virtual QCString trNamespaceMembersDescriptionTotal(NamespaceMemberHighlight::Enum hl)
2668     {
2669       bool extractAll = Config_getBool(EXTRACT_ALL);
2670       bool masculine = SpanishTranslatorUtils::isNamespaceMemberHighlightMasculine(hl);
2671       QCString result="Lista de ";
2672       result+=(masculine ? "todos los " : "todas las ");
2673       QCString singularResult = "";
2674       QCString pluralResult = "";
2675       switch (hl)
2676       {
2677         case NamespaceMemberHighlight::All:
2678           singularResult="miembro";
2679           pluralResult="miembros";
2680           break;
2681         case NamespaceMemberHighlight::Functions:
2682           singularResult="función";
2683           pluralResult="funciones";
2684           break;
2685         case NamespaceMemberHighlight::Variables:
2686           singularResult="variable";
2687           pluralResult="variables";
2688           break;
2689         case NamespaceMemberHighlight::Typedefs:
2690           singularResult="«typedef»";
2691           pluralResult="«typedefs»";
2692           break;
2693         case NamespaceMemberHighlight::Sequences:
2694           singularResult="secuencia";
2695           pluralResult="secuencias";
2696           break;
2697         case NamespaceMemberHighlight::Dictionaries:
2698           singularResult="diccionario";
2699           pluralResult="diccionarios";
2700           break;
2701         case NamespaceMemberHighlight::Enums:
2702           singularResult="enumeración";
2703           pluralResult="enumeraciones";
2704           break;
2705         case NamespaceMemberHighlight::EnumValues:
2706           singularResult="valor enumerado";
2707           pluralResult="valores enumerados";
2708           break;
2709         case NamespaceMemberHighlight::Total: // for completeness
2710           break;
2711       }
2712       result+=(pluralResult.isEmpty() ? singularResult+"s" : pluralResult);
2713
2714       result+="del espacio de nombres ";
2715       if (!extractAll) result+=(masculine ? "documentados " : "documentadas ");
2716       result+=" con enlaces ";
2717       if (extractAll)
2718         result+="a la documentación del espacio de nombres de cada " + singularResult + ":";
2719       else
2720         result+="a los espacios de nombres a los que pertenecen:";
2721       return result;
2722     }
2723 };
2724
2725 #endif