1 /*
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
4 * Copyright (C) 2007 Holger Hans Peter Freyther
5 * Copyright (C) 2008 Christian Dywan <christian@imendio.com>
6 * Copyright (C) 2008 Nuanti Ltd.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30 #include "config.h"
31
32 #include "LocalizedStrings.h"
33 #include "CString.h"
34 #include "GOwnPtr.h"
35 #include "IntSize.h"
36 #include "NotImplemented.h"
37 #include "PlatformString.h"
38
39 #include <glib/gi18n-lib.h>
40 #include <gtk/gtk.h>
41
42 namespace WebCore {
43
gtkStockLabel(const char * stockID)44 static const char* gtkStockLabel(const char* stockID)
45 {
46 GtkStockItem item;
47 if (!gtk_stock_lookup(stockID, &item))
48 return stockID;
49 return item.label;
50 }
51
submitButtonDefaultLabel()52 String submitButtonDefaultLabel()
53 {
54 return String::fromUTF8(_("Submit"));
55 }
56
inputElementAltText()57 String inputElementAltText()
58 {
59 return String::fromUTF8(_("Submit"));
60 }
61
resetButtonDefaultLabel()62 String resetButtonDefaultLabel()
63 {
64 return String::fromUTF8(_("Reset"));
65 }
66
searchableIndexIntroduction()67 String searchableIndexIntroduction()
68 {
69 return String::fromUTF8(_("_Searchable Index"));
70 }
71
fileButtonChooseFileLabel()72 String fileButtonChooseFileLabel()
73 {
74 return String::fromUTF8(_("Choose File"));
75 }
76
fileButtonNoFileSelectedLabel()77 String fileButtonNoFileSelectedLabel()
78 {
79 return String::fromUTF8(_("(None)"));
80 }
81
contextMenuItemTagOpenLinkInNewWindow()82 String contextMenuItemTagOpenLinkInNewWindow()
83 {
84 return String::fromUTF8(_("Open Link in New _Window"));
85 }
86
contextMenuItemTagDownloadLinkToDisk()87 String contextMenuItemTagDownloadLinkToDisk()
88 {
89 return String::fromUTF8(_("_Download Linked File"));
90 }
91
contextMenuItemTagCopyLinkToClipboard()92 String contextMenuItemTagCopyLinkToClipboard()
93 {
94 return String::fromUTF8(_("Copy Link Loc_ation"));
95 }
96
contextMenuItemTagOpenImageInNewWindow()97 String contextMenuItemTagOpenImageInNewWindow()
98 {
99 return String::fromUTF8(_("Open _Image in New Window"));
100 }
101
contextMenuItemTagDownloadImageToDisk()102 String contextMenuItemTagDownloadImageToDisk()
103 {
104 return String::fromUTF8(_("Sa_ve Image As"));
105 }
106
contextMenuItemTagCopyImageToClipboard()107 String contextMenuItemTagCopyImageToClipboard()
108 {
109 return String::fromUTF8(_("Cop_y Image"));
110 }
111
contextMenuItemTagOpenFrameInNewWindow()112 String contextMenuItemTagOpenFrameInNewWindow()
113 {
114 return String::fromUTF8(_("Open _Frame in New Window"));
115 }
116
contextMenuItemTagCopy()117 String contextMenuItemTagCopy()
118 {
119 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_COPY));
120 return stockLabel;
121 }
122
contextMenuItemTagDelete()123 String contextMenuItemTagDelete()
124 {
125 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_DELETE));
126 return stockLabel;
127 }
128
contextMenuItemTagSelectAll()129 String contextMenuItemTagSelectAll()
130 {
131 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_SELECT_ALL));
132 return stockLabel;
133 }
134
contextMenuItemTagUnicode()135 String contextMenuItemTagUnicode()
136 {
137 return String::fromUTF8(_("_Insert Unicode Control Character"));
138 }
139
contextMenuItemTagInputMethods()140 String contextMenuItemTagInputMethods()
141 {
142 return String::fromUTF8(_("Input _Methods"));
143 }
144
contextMenuItemTagGoBack()145 String contextMenuItemTagGoBack()
146 {
147 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_GO_BACK));
148 return stockLabel;
149 }
150
contextMenuItemTagGoForward()151 String contextMenuItemTagGoForward()
152 {
153 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_GO_FORWARD));
154 return stockLabel;
155 }
156
contextMenuItemTagStop()157 String contextMenuItemTagStop()
158 {
159 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_STOP));
160 return stockLabel;
161 }
162
contextMenuItemTagReload()163 String contextMenuItemTagReload()
164 {
165 return String::fromUTF8(_("_Reload"));
166 }
167
contextMenuItemTagCut()168 String contextMenuItemTagCut()
169 {
170 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_CUT));
171 return stockLabel;
172 }
173
contextMenuItemTagPaste()174 String contextMenuItemTagPaste()
175 {
176 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_PASTE));
177 return stockLabel;
178 }
179
contextMenuItemTagNoGuessesFound()180 String contextMenuItemTagNoGuessesFound()
181 {
182 return String::fromUTF8(_("No Guesses Found"));
183 }
184
contextMenuItemTagIgnoreSpelling()185 String contextMenuItemTagIgnoreSpelling()
186 {
187 return String::fromUTF8(_("_Ignore Spelling"));
188 }
189
contextMenuItemTagLearnSpelling()190 String contextMenuItemTagLearnSpelling()
191 {
192 return String::fromUTF8(_("_Learn Spelling"));
193 }
194
contextMenuItemTagSearchWeb()195 String contextMenuItemTagSearchWeb()
196 {
197 return String::fromUTF8(_("_Search the Web"));
198 }
199
contextMenuItemTagLookUpInDictionary()200 String contextMenuItemTagLookUpInDictionary()
201 {
202 return String::fromUTF8(_("_Look Up in Dictionary"));
203 }
204
contextMenuItemTagOpenLink()205 String contextMenuItemTagOpenLink()
206 {
207 return String::fromUTF8(_("_Open Link"));
208 }
209
contextMenuItemTagIgnoreGrammar()210 String contextMenuItemTagIgnoreGrammar()
211 {
212 return String::fromUTF8(_("Ignore _Grammar"));
213 }
214
contextMenuItemTagSpellingMenu()215 String contextMenuItemTagSpellingMenu()
216 {
217 return String::fromUTF8(_("Spelling and _Grammar"));
218 }
219
contextMenuItemTagShowSpellingPanel(bool show)220 String contextMenuItemTagShowSpellingPanel(bool show)
221 {
222 return String::fromUTF8(show ? _("_Show Spelling and Grammar") : _("_Hide Spelling and Grammar"));
223 }
224
contextMenuItemTagCheckSpelling()225 String contextMenuItemTagCheckSpelling()
226 {
227 return String::fromUTF8(_("_Check Document Now"));
228 }
229
contextMenuItemTagCheckSpellingWhileTyping()230 String contextMenuItemTagCheckSpellingWhileTyping()
231 {
232 return String::fromUTF8(_("Check Spelling While _Typing"));
233 }
234
contextMenuItemTagCheckGrammarWithSpelling()235 String contextMenuItemTagCheckGrammarWithSpelling()
236 {
237 return String::fromUTF8(_("Check _Grammar With Spelling"));
238 }
239
contextMenuItemTagFontMenu()240 String contextMenuItemTagFontMenu()
241 {
242 return String::fromUTF8(_("_Font"));
243 }
244
contextMenuItemTagBold()245 String contextMenuItemTagBold()
246 {
247 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_BOLD));
248 return stockLabel;
249 }
250
contextMenuItemTagItalic()251 String contextMenuItemTagItalic()
252 {
253 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_ITALIC));
254 return stockLabel;
255 }
256
contextMenuItemTagUnderline()257 String contextMenuItemTagUnderline()
258 {
259 static String stockLabel = String::fromUTF8(gtkStockLabel(GTK_STOCK_UNDERLINE));
260 return stockLabel;
261 }
262
contextMenuItemTagOutline()263 String contextMenuItemTagOutline()
264 {
265 return String::fromUTF8(_("_Outline"));
266 }
267
contextMenuItemTagInspectElement()268 String contextMenuItemTagInspectElement()
269 {
270 return String::fromUTF8(_("Inspect _Element"));
271 }
272
searchMenuNoRecentSearchesText()273 String searchMenuNoRecentSearchesText()
274 {
275 return String::fromUTF8(_("No recent searches"));
276 }
277
searchMenuRecentSearchesText()278 String searchMenuRecentSearchesText()
279 {
280 return String::fromUTF8(_("Recent searches"));
281 }
282
searchMenuClearRecentSearchesText()283 String searchMenuClearRecentSearchesText()
284 {
285 return String::fromUTF8(_("_Clear recent searches"));
286 }
287
AXDefinitionListTermText()288 String AXDefinitionListTermText()
289 {
290 return String::fromUTF8(_("term"));
291 }
292
AXDefinitionListDefinitionText()293 String AXDefinitionListDefinitionText()
294 {
295 return String::fromUTF8(_("definition"));
296 }
297
AXButtonActionVerb()298 String AXButtonActionVerb()
299 {
300 return String::fromUTF8(_("press"));
301 }
302
AXRadioButtonActionVerb()303 String AXRadioButtonActionVerb()
304 {
305 return String::fromUTF8(_("select"));
306 }
307
AXTextFieldActionVerb()308 String AXTextFieldActionVerb()
309 {
310 return String::fromUTF8(_("activate"));
311 }
312
AXCheckedCheckBoxActionVerb()313 String AXCheckedCheckBoxActionVerb()
314 {
315 return String::fromUTF8(_("uncheck"));
316 }
317
AXUncheckedCheckBoxActionVerb()318 String AXUncheckedCheckBoxActionVerb()
319 {
320 return String::fromUTF8(_("check"));
321 }
322
AXLinkActionVerb()323 String AXLinkActionVerb()
324 {
325 return String::fromUTF8(_("jump"));
326 }
327
multipleFileUploadText(unsigned numberOfFiles)328 String multipleFileUploadText(unsigned numberOfFiles)
329 {
330 // FIXME: If this file gets localized, this should really be localized as one string with a wildcard for the number.
331 return String::number(numberOfFiles) + String::fromUTF8(_(" files"));
332 }
333
unknownFileSizeText()334 String unknownFileSizeText()
335 {
336 return String::fromUTF8(_("Unknown"));
337 }
338
imageTitle(const String & filename,const IntSize & size)339 String imageTitle(const String& filename, const IntSize& size)
340 {
341 GOwnPtr<gchar> string(g_strdup_printf(C_("Title string for images", "%s (%dx%d pixels)"),
342 filename.utf8().data(),
343 size.width(), size.height()));
344
345 return String::fromUTF8(string.get());
346 }
347
mediaElementLoadingStateText()348 String mediaElementLoadingStateText()
349 {
350 return String::fromUTF8(_("Loading..."));
351 }
352
mediaElementLiveBroadcastStateText()353 String mediaElementLiveBroadcastStateText()
354 {
355 return String::fromUTF8(_("Live Broadcast"));
356 }
357
358 }
359