Source/WebCore: AXDescription for HTML5 footer
[WebKit-https.git] / Source / WebKit / chromium / src / LocalizedStrings.cpp
1 /*
2  * Copyright (C) 2009 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  *     * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *     * Redistributions in binary form must reproduce the above
11  * copyright notice, this list of conditions and the following disclaimer
12  * in the documentation and/or other materials provided with the
13  * distribution.
14  *     * Neither the name of Google Inc. nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30
31 #include "config.h"
32 #include "LocalizedStrings.h"
33
34 #include "IntSize.h"
35 #include "NotImplemented.h"
36
37 #include "WebKit.h"
38 #include "platform/WebKitPlatformSupport.h"
39 #include "platform/WebLocalizedString.h"
40 #include "platform/WebString.h"
41
42 #include <wtf/text/StringBuilder.h>
43 #include <wtf/text/WTFString.h>
44
45 using WebKit::WebLocalizedString;
46 using WebKit::WebString;
47
48 namespace WebCore {
49
50 static String query(WebLocalizedString::Name name)
51 {
52     return WebKit::webKitPlatformSupport()->queryLocalizedString(name);
53 }
54
55 static String query(WebLocalizedString::Name name, const WebString& parameter)
56 {
57     return WebKit::webKitPlatformSupport()->queryLocalizedString(name, parameter);
58 }
59
60 static String query(WebLocalizedString::Name name, const WebString& parameter1, const WebString& parameter2)
61 {
62     return WebKit::webKitPlatformSupport()->queryLocalizedString(name, parameter1, parameter2);
63 }
64
65 String searchableIndexIntroduction()
66 {
67     return query(WebLocalizedString::SearchableIndexIntroduction);
68 }
69
70 String submitButtonDefaultLabel()
71 {
72     return query(WebLocalizedString::SubmitButtonDefaultLabel);
73 }
74
75 String inputElementAltText()
76 {
77     return query(WebLocalizedString::InputElementAltText);
78 }
79
80 String resetButtonDefaultLabel()
81 {
82     return query(WebLocalizedString::ResetButtonDefaultLabel);
83 }
84
85 String fileButtonChooseFileLabel()
86 {
87     return query(WebLocalizedString::FileButtonChooseFileLabel);
88 }
89
90 String fileButtonChooseMultipleFilesLabel()
91 {
92     return query(WebLocalizedString::FileButtonChooseMultipleFilesLabel);
93 }
94
95 String defaultDetailsSummaryText()
96 {
97     return query(WebLocalizedString::DetailsLabel);
98 }
99
100 String fileButtonNoFileSelectedLabel()
101 {
102     return query(WebLocalizedString::FileButtonNoFileSelectedLabel);
103 }
104
105 String fileButtonNoFilesSelectedLabel()
106 {
107     return query(WebLocalizedString::FileButtonNoFileSelectedLabel);
108 }
109
110 String searchMenuNoRecentSearchesText()
111 {
112     return query(WebLocalizedString::SearchMenuNoRecentSearchesText);
113 }
114 String searchMenuRecentSearchesText()
115 {
116     return query(WebLocalizedString::SearchMenuRecentSearchesText);
117 }
118
119 String searchMenuClearRecentSearchesText()
120 {
121     return query(WebLocalizedString::SearchMenuClearRecentSearchesText);
122 }
123
124 String AXWebAreaText()
125 {
126     return query(WebLocalizedString::AXWebAreaText);
127 }
128
129 String AXLinkText()
130 {
131     return query(WebLocalizedString::AXLinkText);
132 }
133
134 String AXListMarkerText()
135 {
136     return query(WebLocalizedString::AXListMarkerText);
137 }
138
139 String AXImageMapText()
140 {
141     return query(WebLocalizedString::AXImageMapText);
142 }
143
144 String AXHeadingText()
145 {
146     return query(WebLocalizedString::AXHeadingText);
147 }
148
149 String AXDefinitionListTermText()
150 {
151     notImplemented();
152     return String("term");
153 }
154
155 String AXDefinitionListDefinitionText()
156 {
157     notImplemented();
158     return String("definition");
159 }
160
161 String AXFooterRoleDescriptionText()
162 {
163     notImplemented();
164     return String("footer");
165 }
166
167 String AXButtonActionVerb()
168 {
169     return query(WebLocalizedString::AXButtonActionVerb);
170 }
171
172 String AXRadioButtonActionVerb()
173 {
174     return query(WebLocalizedString::AXRadioButtonActionVerb);
175 }
176
177 String AXTextFieldActionVerb()
178 {
179     return query(WebLocalizedString::AXTextFieldActionVerb);
180 }
181
182 String AXCheckedCheckBoxActionVerb()
183 {
184     return query(WebLocalizedString::AXCheckedCheckBoxActionVerb);
185 }
186
187 String AXUncheckedCheckBoxActionVerb()
188 {
189     return query(WebLocalizedString::AXUncheckedCheckBoxActionVerb);
190 }
191
192 String AXLinkActionVerb()
193 {
194     return query(WebLocalizedString::AXLinkActionVerb);
195 }
196
197 String AXMenuListPopupActionVerb()
198 {
199     return String();
200 }
201
202 String AXMenuListActionVerb()
203 {
204     return String();
205 }
206     
207 String missingPluginText()
208 {
209     notImplemented();
210     return String("Missing Plug-in");
211 }
212
213 String crashedPluginText()
214 {
215     notImplemented();
216     return String("Plug-in Failure");
217 }
218
219 String multipleFileUploadText(unsigned numberOfFiles)
220 {
221     return query(WebLocalizedString::MultipleFileUploadText, String::number(numberOfFiles));
222 }
223
224 // Used in FTPDirectoryDocument.cpp
225 String unknownFileSizeText()
226 {
227     return String();
228 }
229
230 // The following two functions are not declared in LocalizedStrings.h.
231 // They are used by the menu for the HTML keygen tag.
232 String keygenMenuHighGradeKeySize()
233 {
234     return query(WebLocalizedString::KeygenMenuHighGradeKeySize);
235 }
236
237 String keygenMenuMediumGradeKeySize()
238 {
239     return query(WebLocalizedString::KeygenMenuMediumGradeKeySize);
240 }
241
242 // Used in ImageDocument.cpp as the title for pages when that page is an image.
243 String imageTitle(const String& filename, const IntSize& size)
244 {
245     StringBuilder result;
246     result.append(filename);
247     result.append(" (");
248     result.append(String::number(size.width()));
249     result.append(static_cast<UChar>(0xD7));  // U+00D7 (multiplication sign)
250     result.append(String::number(size.height()));
251     result.append(')');
252     return result.toString();
253 }
254
255 // We don't use these strings, so they return an empty String. We can't just
256 // make them asserts because webcore still calls them.
257 String contextMenuItemTagOpenLinkInNewWindow() { return String(); }
258 String contextMenuItemTagDownloadLinkToDisk() { return String(); }
259 String contextMenuItemTagCopyLinkToClipboard() { return String(); }
260 String contextMenuItemTagOpenImageInNewWindow() { return String(); }
261 String contextMenuItemTagDownloadImageToDisk() { return String(); }
262 String contextMenuItemTagCopyImageToClipboard() { return String(); }
263 String contextMenuItemTagOpenFrameInNewWindow() { return String(); }
264 String contextMenuItemTagCopy() { return String(); }
265 String contextMenuItemTagGoBack() { return String(); }
266 String contextMenuItemTagGoForward() { return String(); }
267 String contextMenuItemTagStop() { return String(); }
268 String contextMenuItemTagReload() { return String(); }
269 String contextMenuItemTagCut() { return String(); }
270 String contextMenuItemTagPaste() { return String(); }
271 String contextMenuItemTagNoGuessesFound() { return String(); }
272 String contextMenuItemTagIgnoreSpelling() { return String(); }
273 String contextMenuItemTagLearnSpelling() { return String(); }
274 String contextMenuItemTagSearchWeb() { return String(); }
275 String contextMenuItemTagLookUpInDictionary(const String&) { return String(); }
276 String contextMenuItemTagOpenLink() { return String(); }
277 String contextMenuItemTagIgnoreGrammar() { return String(); }
278 String contextMenuItemTagSpellingMenu() { return String(); }
279 String contextMenuItemTagCheckSpelling() { return String(); }
280 String contextMenuItemTagCheckSpellingWhileTyping() { return String(); }
281 String contextMenuItemTagCheckGrammarWithSpelling() { return String(); }
282 String contextMenuItemTagFontMenu() { return String(); }
283 String contextMenuItemTagBold() { return String(); }
284 String contextMenuItemTagItalic() { return String(); }
285 String contextMenuItemTagUnderline() { return String(); }
286 String contextMenuItemTagOutline() { return String(); }
287 String contextMenuItemTagWritingDirectionMenu() { return String(); }
288 String contextMenuItemTagTextDirectionMenu() { return String(); }
289 String contextMenuItemTagDefaultDirection() { return String(); }
290 String contextMenuItemTagLeftToRight() { return String(); }
291 String contextMenuItemTagRightToLeft() { return String(); }
292 String contextMenuItemTagInspectElement() { return String(); }
293 String contextMenuItemTagShowSpellingPanel(bool show) { return String(); }
294 String mediaElementLiveBroadcastStateText() { return String(); }
295 String mediaElementLoadingStateText() { return String(); }
296 String contextMenuItemTagOpenVideoInNewWindow() { return String(); }
297 String contextMenuItemTagOpenAudioInNewWindow() { return String(); }
298 String contextMenuItemTagCopyVideoLinkToClipboard() { return String(); }
299 String contextMenuItemTagCopyAudioLinkToClipboard() { return String(); }
300 String contextMenuItemTagToggleMediaControls() { return String(); }
301 String contextMenuItemTagToggleMediaLoop() { return String(); }
302 String contextMenuItemTagEnterVideoFullscreen() { return String(); }
303 String contextMenuItemTagMediaPlay() { return String(); }
304 String contextMenuItemTagMediaPause() { return String(); }
305 String contextMenuItemTagMediaMute() { return String(); }
306
307 String localizedMediaControlElementString(const String& /*name*/)
308 {
309     // FIXME: to be fixed.
310     return String();
311 }
312
313 String localizedMediaControlElementHelpText(const String& /*name*/)
314 {
315     // FIXME: to be fixed.
316     return String();
317 }
318
319 String localizedMediaTimeDescription(float /*time*/)
320 {
321     // FIXME: to be fixed.
322     return String();
323 }
324
325 String validationMessageValueMissingText()
326 {
327     return query(WebLocalizedString::ValidationValueMissing);
328 }
329
330 String validationMessageValueMissingForCheckboxText()
331 {
332     return query(WebLocalizedString::ValidationValueMissingForCheckbox);
333 }
334
335 String validationMessageValueMissingForFileText()
336 {
337     return query(WebLocalizedString::ValidationValueMissingForFile);
338 }
339
340 String validationMessageValueMissingForMultipleFileText()
341 {
342     return query(WebLocalizedString::ValidationValueMissingForMultipleFile);
343 }
344
345 String validationMessageValueMissingForRadioText()
346 {
347     return query(WebLocalizedString::ValidationValueMissingForRadio);
348 }
349
350 String validationMessageValueMissingForSelectText()
351 {
352     return query(WebLocalizedString::ValidationValueMissingForSelect);
353 }
354
355 String validationMessageTypeMismatchText()
356 {
357     return query(WebLocalizedString::ValidationTypeMismatch);
358 }
359
360 String validationMessageTypeMismatchForEmailText()
361 {
362     return query(WebLocalizedString::ValidationTypeMismatchForEmail);
363 }
364
365 String validationMessageTypeMismatchForMultipleEmailText()
366 {
367     return query(WebLocalizedString::ValidationTypeMismatchForMultipleEmail);
368 }
369
370 String validationMessageTypeMismatchForURLText()
371 {
372     return query(WebLocalizedString::ValidationTypeMismatchForURL);
373 }
374
375 String validationMessagePatternMismatchText()
376 {
377     return query(WebLocalizedString::ValidationPatternMismatch);
378 }
379
380 String validationMessageTooLongText(int valueLength, int maxLength)
381 {
382     return query(WebLocalizedString::ValidationTooLong, String::number(valueLength), String::number(maxLength));
383 }
384
385 String validationMessageRangeUnderflowText(const String& minimum)
386 {
387     return query(WebLocalizedString::ValidationRangeUnderflow, minimum);
388 }
389
390 String validationMessageRangeOverflowText(const String& maximum)
391 {
392     return query(WebLocalizedString::ValidationRangeOverflow, maximum);
393 }
394
395 String validationMessageStepMismatchText(const String& base, const String& step)
396 {
397     return query(WebLocalizedString::ValidationStepMismatch, base, step);
398 }
399
400 } // namespace WebCore