Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_adapter.h
1 #ifndef TRANSLATOR_ADAPTER_H
2 #define TRANSLATOR_ADAPTER_H
3
4 #include "version.h"
5
6 /** Base of the translator adapter tree.
7  *
8  *  This abstract class provides access to the english
9  *  translations, to be used as a substitute for not implemented
10  *  local translations. 
11  */
12 class TranslatorAdapterBase : public Translator
13 {
14   protected:
15     virtual ~TranslatorAdapterBase() {}
16     TranslatorEnglish english;
17
18     /*! An auxiliary inline method used by the updateNeededMessage()
19      *  for building a warning message.
20      */
21     inline QCString createUpdateNeededMessage(const QCString & languageName,
22                                               const QCString & versionString)
23     {
24       return QCString("Warning: The selected output language \"")
25              + languageName 
26              + "\" has not been updated\nsince "
27              + versionString
28              + ".  As a result some sentences may appear in English.\n\n";
29     }
30   
31   public:
32     /*! This method is used to generate a warning message to signal
33      *  the user that the translation of his/her language of choice
34      *  needs updating.  It must be implemented by the translator
35      *  adapter class (pure virtual).
36      * 
37      *  \sa createUpdateNeededMessage()
38      */
39     virtual QCString updateNeededMessage() = 0;
40
41 };
42
43 class TranslatorAdapter_1_8_2 : public TranslatorAdapterBase
44 {
45   public:
46     virtual QCString updateNeededMessage()
47     { return createUpdateNeededMessage(idLanguage(),"release 1.8.2"); }
48
49     virtual QCString trPanelSynchronisationTooltip(bool enable)
50     { return english.trPanelSynchronisationTooltip(enable); }
51
52     virtual QCString trProvidedByCategory()
53     { return english.trProvidedByCategory(); }
54
55     virtual QCString trExtendsClass()
56     { return english.trExtendsClass(); }
57
58     virtual QCString trClassMethods()
59     { return english.trClassMethods(); }
60
61     virtual QCString trInstanceMethods()
62     { return english.trInstanceMethods(); }
63
64     virtual QCString trMethodDocumentation()
65     { return english.trMethodDocumentation(); }
66
67     virtual QCString trDesignOverview()
68     { return english.trDesignOverview(); }
69 };
70
71
72 /** Adapter class for languages that only contain translations upto 
73  *  version 1.8.0. 
74  */
75 class TranslatorAdapter_1_8_0 : public TranslatorAdapter_1_8_2
76 {
77   public:
78     virtual QCString updateNeededMessage()
79     { return createUpdateNeededMessage(idLanguage(),"release 1.8.0"); }
80
81     virtual QCString trDetailLevel()
82     { return english.trDetailLevel(); }
83
84     virtual QCString trTemplateParameters()
85     { return english.trTemplateParameters(); }
86
87     virtual QCString trAndMore(const QCString &number)
88     { return english.trAndMore(number); }
89
90     virtual QCString trEnumGeneratedFromFiles(bool single)
91     { return english.trEnumGeneratedFromFiles(single); }
92
93     virtual QCString trEnumReference(const char *name)
94     { return english.trEnumReference(name); }
95
96     virtual QCString trInheritedFrom(const char *members,const char *what)
97     { return english.trInheritedFrom(members,what); }
98
99     virtual QCString trAdditionalInheritedMembers()
100     { return english.trAdditionalInheritedMembers(); }
101
102 };
103
104 /** Adapter class for languages that only contain translations upto 
105  *  version 1.7.5.
106  */
107 class TranslatorAdapter_1_7_5 : public TranslatorAdapter_1_8_0
108 {
109   public:
110     virtual QCString updateNeededMessage()
111     { return createUpdateNeededMessage(idLanguage(),"release 1.7.5"); }
112
113     virtual QCString trCiteReferences()
114     { return english.trCiteReferences(); }
115
116     virtual QCString trCopyright()
117     { return english.trCopyright(); }
118
119     virtual QCString trDirDepGraph(const char *name)
120     { return english.trDirDepGraph(name); }
121 };
122
123 /** Adapter class for languages that only contain translations upto 
124  *  version 1.6.3.
125  */
126 class TranslatorAdapter_1_6_3 : public TranslatorAdapter_1_7_5
127 {
128   public:
129     virtual QCString updateNeededMessage()
130     { return createUpdateNeededMessage(idLanguage(),"release 1.6.3"); }
131
132     virtual QCString trDirDependency(const char *name)
133     { return english.trDirDependency(name); }
134     virtual QCString trFileIn(const char *name)
135     { return english.trFileIn(name); }
136     virtual QCString trIncludesFileIn(const char *name)
137     { return english.trIncludesFileIn(name); }
138     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
139                                 int hour,int minutes,int seconds,
140                                 bool includeTime)
141     { return english.trDateTime(year,month,day,dayOfWeek,hour,minutes,seconds,includeTime); }
142 };
143
144 /** Adapter class for languages that only contain translations upto 
145  *  version 1.6.0.
146  */
147 class TranslatorAdapter_1_6_0 : public TranslatorAdapter_1_6_3
148 {
149   public:
150     virtual QCString updateNeededMessage()
151     { return createUpdateNeededMessage(idLanguage(),"release 1.6.0"); }
152
153     virtual QCString trDirRelation(const char *name)
154     { return english.trDirRelation(name); }
155
156     virtual QCString trLoading()
157     { return english.trLoading(); }
158
159     virtual QCString trGlobalNamespace()
160     { return english.trGlobalNamespace(); }
161
162     virtual QCString trSearching()
163     { return english.trSearching(); }
164
165     virtual QCString trNoMatches()
166     { return english.trNoMatches(); }
167 };
168
169 /** Adapter class for languages that only contain translations upto 
170  *  version 1.5.4
171  */
172 class TranslatorAdapter_1_5_4 : public TranslatorAdapter_1_6_0
173 {
174   public:
175     virtual QCString updateNeededMessage()
176     { return createUpdateNeededMessage(idLanguage(),"release 1.5.4"); }
177
178     virtual QCString trMemberFunctionDocumentationFortran()
179     { return english.trMemberFunctionDocumentationFortran(); }
180
181     virtual QCString trCompoundListFortran()
182     { return english.trCompoundListFortran(); }
183
184     virtual QCString trCompoundMembersFortran()
185     { return english.trCompoundMembersFortran(); }
186
187     virtual QCString trCompoundListDescriptionFortran()
188     { return english.trCompoundListDescriptionFortran(); }
189
190     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
191     { return english.trCompoundMembersDescriptionFortran(extractAll); }
192
193     virtual QCString trCompoundIndexFortran()
194     { return english.trCompoundIndexFortran(); }
195
196     virtual QCString trTypeDocumentation()
197     { return english.trTypeDocumentation(); }
198
199     virtual QCString trSubprograms()
200     { return english.trSubprograms(); }
201
202     virtual QCString trSubprogramDocumentation()
203     { return english.trSubprogramDocumentation(); }
204
205     virtual QCString trDataTypes()
206     { return english.trDataTypes(); }
207
208     virtual QCString trModulesList()
209     { return english.trModulesList(); }
210
211     virtual QCString trModulesListDescription(bool extractAll)
212     { return english.trModulesListDescription(extractAll); }
213
214     virtual QCString trCompoundReferenceFortran(const char *clName,
215                                  ClassDef::CompoundType compType,
216                                  bool isTemplate)
217     { return english.trCompoundReferenceFortran(clName,compType,isTemplate); }
218
219     virtual QCString trModuleReference(const char *namespaceName)
220     { return english.trModuleReference(namespaceName); }
221
222     virtual QCString trModulesMembers()
223     { return english.trModulesMembers(); }
224
225     virtual QCString trModulesMemberDescription(bool extractAll)
226     { return english.trModulesMemberDescription(extractAll); }
227
228     virtual QCString trModulesIndex()
229     { return english.trModulesIndex(); }
230
231     virtual QCString trModule(bool first_capital, bool singular)
232     { return english.trModule(first_capital,singular); }
233
234     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
235                      bool single)
236     { return english.trGeneratedFromFilesFortran(compType,single); }
237
238     virtual QCString trType(bool first_capital, bool singular)
239     { return english.trType(first_capital,singular); }
240
241     virtual QCString trSubprogram(bool first_capital, bool singular)
242     { return english.trSubprogram(first_capital,singular); }
243
244     virtual QCString trTypeConstraints()
245     { return english.trTypeConstraints(); }
246 };
247
248 /** Adapter class for languages that only contain translations upto 
249  *  version 1.4.6
250  */
251 class TranslatorAdapter_1_4_6 : public TranslatorAdapter_1_5_4
252 {
253   public:
254     virtual QCString updateNeededMessage()
255     { return createUpdateNeededMessage(idLanguage(),"release 1.4.6"); }
256
257     virtual QCString trCallerGraph()
258     {
259       return english.trCallerGraph();
260     }
261     virtual QCString trEnumerationValueDocumentation()
262     {
263       return english.trEnumerationValueDocumentation();
264     }
265 };
266
267 /** Adapter class for languages that only contain translations upto 
268  *  version 1.4.1
269  */
270 class TranslatorAdapter_1_4_1 : public TranslatorAdapter_1_4_6
271 {
272   public:
273     virtual QCString updateNeededMessage()
274     { return createUpdateNeededMessage(idLanguage(),"release 1.4.1"); }
275     
276     virtual QCString trOverloadText()
277     { return english.trOverloadText(); }
278 };
279
280 #endif
281