diff options
author | Ben Murdoch <benm@google.com> | 2009-08-11 17:01:47 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2009-08-11 18:21:02 +0100 |
commit | 0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5 (patch) | |
tree | 2943df35f62d885c89d01063cc528dd73b480fea /WebKit/gtk | |
parent | 7e7a70bfa49a1122b2597a1e6367d89eb4035eca (diff) | |
download | external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.zip external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.gz external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.bz2 |
Merge in WebKit r47029.
Diffstat (limited to 'WebKit/gtk')
74 files changed, 15777 insertions, 800 deletions
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog index 3691b4b..4d49861 100644 --- a/WebKit/gtk/ChangeLog +++ b/WebKit/gtk/ChangeLog @@ -1,3 +1,2079 @@ +2009-08-10 Brady Eidson <beidson@apple.com> + + GTK build fix. + + * webkit/webkitdownload.cpp: + (webkit_download_get_suggested_filename): + +2009-08-08 Xan Lopez <xlopez@igalia.com> + + Roll out r46928, since it wasn't done in accordance with the + agreed naming. + + * ChangeLog: + + Remove the ChangeLog entry, since it was added at the bottom of + the file. + + * gdom/GdomDOMObject.h: Removed. + * gdom/GdomDOMObjectPrivate.h: Removed. + +2009-08-08 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [Gtk] Enable accessibility in Gtk DRT + https://bugs.webkit.org/show_bug.cgi?id=25989 + + Add SPI to get the focused accessible element to be used by DRT. + + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + (webkit_web_frame_get_focused_accessible_element): + +2009-07-30 Martin Robinson <mrobinson@appcelerator.com> + + Reviewed by Xan Lopez, Gustavo Noronha and Jan Alonzo. + + [GTK] new-window-policy-decision-requested provides no information about the target frame + https://bugs.webkit.org/show_bug.cgi?id=27792 + + Add frameName property to the WebKitWebNavigation object. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::getNavigationAction): + (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): + (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): + * webkit/webkitwebnavigationaction.cpp: + (webkit_web_navigation_action_get_property): + (webkit_web_navigation_action_set_property): + (webkit_web_navigation_action_class_init): + (webkit_web_navigation_action_get_target_frame): + (webkit_web_navigation_action_set_target_frame): + * webkit/webkitwebnavigationaction.h: + +2009-07-29 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Darin Adler. + + Added foundation work to allow a testing infrastructure for the Web + Inspector. + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::InspectorClient::inspectorWindowObjectCleared): + * WebCoreSupport/InspectorClientGtk.h: + +2009-07-29 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Eric Seidel and Xan Lopez. + + [Gtk] Enable http/tests/appcache tests + https://bugs.webkit.org/show_bug.cgi?id=27674 + + Add 'enable-offline-web-application-cache' WebSetting to enable + or disable the appcache. Also, Add appcache SPI for DRT to use. + + * webkit/webkitapplicationcache.cpp: Added. + (webkit_application_cache_set_maximum_size): + * webkit/webkitprivate.cpp: + (webkit_init): + * webkit/webkitprivate.h: + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-07-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Add information about the regression fix for WEBKIT_DEBUG. + + * NEWS: + +2009-07-28 Priit Laes <plaes@plaes.org> + + Reviewed by Xan Lopez. + + Fix mnemonics in the soup authentication dialog. + + * webkit/webkitsoupauthdialog.c: + (show_auth_dialog): + +2009-07-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + * NEWS: update for 1.1.12 release. + +2009-07-27 Alexey Proskuryakov <ap@webkit.org> + + Build fix. + + * webkit/webkitwebframe.cpp: (webkit_gc_count_javascript_objects): Added a namespace to + SilenceAssertionsOnly. + +2009-07-27 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=27735 + Give a helpful name to JSLock constructor argument + + * webkit/webkitwebframe.cpp: + (webkit_gc_count_javascript_objects): + +2009-07-24 Priit Laes <plaes@plaes.org> + + Reviewed by Xan Lopez. + + [Gtk] Password is saved into gnome-keyring even if auth. fails + https://bugs.webkit.org/show_bug.cgi?id=27560 + + Check authentication result and save password only when authentication + succeeds. + + * webkit/webkitsoupauthdialog.c: + (free_authData): + (response_callback): + (save_password_callback): + +2009-07-24 Andrei Popescu <andreip@google.com> + + Reviewed by Anders Carlsson. + + ApplicationCache should have size limit + https://bugs.webkit.org/show_bug.cgi?id=22700 + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::reachedMaxAppCacheSize): + Adds empty implementation of reachedMaxAppCacheSize. + * WebCoreSupport/ChromeClientGtk.h: + +2009-07-23 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Eric Seidel. + + [Gtk] Add implementation of GCController for DRT + https://bugs.webkit.org/show_bug.cgi?id=27636 + + Add SPI for GCController to use. + + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + (webkit_gc_collect_javascript_objects): + (webkit_gc_collect_javascript_objects_on_alternate_thread): + (webkit_gc_count_javascript_objects): + +2009-07-22 Xan Lopez <xlopez@igalia.com> + + Reviewed by Mark Rowe. + + Fix compiler warning. + + * tests/testwebsettings.c: + (test_webkit_web_settings_user_agent): + +2009-07-22 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Remove unused variables. + + * webkit/webkitwebview.cpp: + (webkit_web_view_grab_focus): + (webkit_web_view_focus_in_event): + +2009-07-21 Priit Laes <plaes@plaes.org> + + Reviewed by Holger Freyther. + + [GTK+] Missing accelerator in authentication dialog + https://bugs.webkit.org/show_bug.cgi?id=25509 + + Add accelerator to checkbox text. + + * WebKit/gtk/webkit/webkitsoupauthdialog.c: + (show_auth_dialog): + +2009-07-21 Priit Laes <plaes@plaes.org> + + Reviewed by Holger Freyther. + + [GTK] http auth dialog pops up twice after a cancelled atempt + https://bugs.webkit.org/show_bug.cgi?id=24818 + + Remove workaround required for libsoup versions <=2.26.2 as we depend + on 2.27.4 now. + + * webkit/webkitsoupauthdialog.c: + (session_authenticate): + +2009-07-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + [GTK] Widget size negotiation + https://bugs.webkit.org/show_bug.cgi?id=17154 + + Implement proper size request for the WebView widget. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::contentsSizeChanged): + * webkit/webkitwebview.cpp: + (webkit_web_view_size_request): + (webkit_web_view_class_init): + +2009-07-16 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Jan Alonzo. + + [GTK+] Update the focus handling code. + + Change focus-in to always call setActive(true), call + FocusController::setFocusedFrame when no focused frame exists + other SelectionController::setActive. This is matching Windows + and Qt. + + On focus-out call FocusController::setActive(false) and + SelectionController::setFocued(false). This is matching Windows + and Qt as well. + + * webkit/webkitwebview.cpp: + (webkit_web_view_focus_in_event): + (webkit_web_view_focus_out_event): + +2009-07-16 Xiaomei Ji <xji@chromium.org> + + Reviewed by Dan Bernstein. + + This is the 2nd part of fixing "RTL: tooltip does not get its directionlity from its element's." + https://bugs.webkit.org/show_bug.cgi?id=24187 + + Add one extra parameter to the callee of HitTestResult::title() due to the signature change. + + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::mouseDidMoveOverElement): Add direction as a parameter to the callee of HitTestResult::title(). + +2009-07-16 Xiaomei Ji <xji@chromium.org> + + Reviewed by Darin Adler. + + Fix tooltip does not get its directionality from its element's directionality. + https://bugs.webkit.org/show_bug.cgi?id=24187 + + Per mitz's suggestion in comment #6, while getting the plain-text + title, we also get the directionality of the title. How to handle + the directionality is up to clients. Clients could ignore it, + or use attribute or unicode control characters to display the title + as what they want. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::setToolTip): Add directionality as 2nd parameter to setToopTip() (without handling it yet). + * WebCoreSupport/ChromeClientGtk.h: Add directionality as 2nd parameter to setToolTip(). + +2009-07-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Jan Alonzo. + + Fix enable-xss-auditor property documentation, and default value + to match the fact that it is now enabled by default. + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + +2009-07-14 Zoltan Horvath <hzoltan@inf.u-szeged.hu> + + Reviewed by Darin Adler. + + Change all Noncopyable inheriting visibility to public. + https://bugs.webkit.org/show_bug.cgi?id=27225 + + Change all Noncopyable inheriting visibility to public because + it is needed to the custom allocation framework (bug #20422). + + * webkit/webkitdownload.cpp: + +2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Late NEWS file for 1.1.11. + + * NEWS: + +2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Changes to the doc control files for 1.1.11. + + * docs/webkitgtk-docs.sgml: + * docs/webkitgtk-sections.txt: + +2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Holger Freyther. + + Fix unit test to use the correct assumption that the SoupMessage + will be NULL when WebKitNetworkRequest is created from an URI. + + * tests/testnetworkrequest.c: + (test_network_request_create_destroy): + +2009-07-13 Jan Michael Alonzo <jmalonzo@webkit.org> + + <https://bugs.webkit.org/show_bug.cgi?id=27171> [Gtk] + REGRESSION (r45440): fails at fast/events/frame-programmatic-focus.html + + Reviewed by Gustavo Noronha. + + focus-in and focus-out events only get triggered when there's user + interaction, hence setFocused(bool) never gets called when + focusEvent is triggered when running the layout tests. The + solution seems to be to implement grab-focus too so we can call + setFocused(bool) when a widget has focus. + + * webkit/webkitwebview.cpp: + (webkit_web_view_grab_focus): + (webkit_web_view_focus_in_event): + (webkit_web_view_class_init): + +2009-07-13 Jan Michael Alonzo <jmalonzo@webkit.org> + + https://bugs.webkit.org/show_bug.cgi?id=26718 [Gtk] Add support for javascript windows for DRT + + Reviewed by Gustavo Noronha and Xan Lopez. + + Add API to support opening and closing of JavaScript windows automatically. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::closeWindowSoon): + * webkit/webkitprivate.h: + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_real_close_web_view): + (webkit_web_view_class_init): + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + (webkit_web_view_set_group_name): + * webkit/webkitwebview.h: + +2009-07-12 Brent Fulgham <bfulgham@gmail.com> + + Speculative build fix after http://trac.webkit.org/changeset/45786. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::addMessageToConsole): + * WebCoreSupport/ChromeClientGtk.h: + +2009-07-09 Beth Dakin and Jon Honeycutt <bdakin@apple.com> + + Reviewed by Dave Hyatt. + + Make Widget RefCounted to fix: + + <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs + at WebCore::Widget::afterMouseDown() after clicking To Do's close + box + <rdar://problem/6978804> WER #16: Repro Access Violation in + WebCore::PluginView::bindingInstance (1310178023) + -and- + <rdar://problem/6991251> WER #13: Crash in WebKit! + WebCore::PluginView::performRequest+203 (1311461169) + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::createPlugin): + (WebKit::FrameLoaderClient::createJavaAppletWidget): + * WebCoreSupport/FrameLoaderClientGtk.h: + +2009-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Jan Alonzo. + + Use soup's content sniffing + https://bugs.webkit.org/show_bug.cgi?id=26982 + + Add the new Content Sniffing feature provided by libsoup. + + * webkit/webkitprivate.cpp: + (webkit_init): + +2009-07-05 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + Always initialize WebCore. + + It is possible that WebKitWebSettings and other classes get + constructed before the WebKitWebView. In this case WebCore is + not yet properly initialized. Add webkit_init to every class + that can be constructed by API users. + + * webkit/webkitdownload.cpp: + (webkit_download_class_init): + * webkit/webkitnetworkrequest.cpp: + (webkit_network_request_class_init): + * webkit/webkitwebbackforwardlist.cpp: + (webkit_web_back_forward_list_class_init): + * webkit/webkitwebhistoryitem.cpp: + (webkit_web_history_item_class_init): + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + * webkit/webkitwebwindowfeatures.cpp: + (webkit_web_window_features_class_init): + +2009-07-03 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez and Gustavo Noronha. + + Set user-agent from application + https://bugs.webkit.org/show_bug.cgi?id=17375 + + Add 'user-agent' setter/getter API to WebSettings. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::FrameLoaderClient): + (WebKit::FrameLoaderClient::userAgent): + * WebCoreSupport/FrameLoaderClientGtk.h: + * webkit/webkitprivate.h: + * webkit/webkitversion.h.in: + * webkit/webkitwebsettings.cpp: + (webkit_get_user_agent): + (webkit_web_settings_class_init): + (webkit_web_settings_finalize): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + (webkit_web_settings_get_user_agent): + * webkit/webkitwebsettings.h: + * webkit/webkitwebview.cpp: + (webkit_web_view_dispose): + +2009-07-02 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + Update the new boolean property in FocusController that keeps + track of whether or not the Page is focused. + + * webkit/webkitwebview.cpp: + (webkit_web_view_focus_in_event): + (webkit_web_view_focus_out_event): + +2009-06-29 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + Fix a couple of compiler warnings. + + * webkit/webkitwebnavigationaction.cpp: + * webkit/webkitwebview.cpp: + (webkit_web_view_real_move_cursor): + +2009-06-28 Xan Lopez <xlopez@igalia.com> + + Fix the GTK+ build. + + * WebCoreSupport/ContextMenuClientGtk.cpp: + (WebKit::ContextMenuClient::isSpeaking): + * WebCoreSupport/ContextMenuClientGtk.h: + +2009-06-24 Jiahua Huang <jhuangjiahua@gmail.com> + + Reviewed by Holger Freyther. + + [Gtk] Add Undo/Redo support to WebKitGtk + https://bugs.webkit.org/show_bug.cgi?id=26573 + + Implement EditorClient::undo and other interested funcs. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::registerCommandForUndo): + (WebKit::EditorClient::registerCommandForRedo): + (WebKit::EditorClient::clearUndoRedoOperations): + (WebKit::EditorClient::canUndo): + (WebKit::EditorClient::canRedo): + (WebKit::EditorClient::undo): + (WebKit::EditorClient::redo): + (WebKit::EditorClient::EditorClient): + * WebCoreSupport/EditorClientGtk.h: + +2009-06-20 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha and Xan Lopez. + + [Gtk] Implement DRT XSS auditor support + https://bugs.webkit.org/show_bug.cgi?id=26571 + + Add a setting "enable-xss-auditor" to enable this feature. + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-06-20 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha and Xan Lopez. + + webkit_web_back_forward_list_add_item() should add a ref for the history item + https://bugs.webkit.org/show_bug.cgi?id=26517 + + Add a ref to the WebHistoryItem when it's added to the back + forward list through webkit_web_back_forward_list_add_item. + This keeps the history item alive and prevents pywebkitgtk from + crashing + + * tests/testwebbackforwardlist.c: + (test_webkit_web_history_item_lifetime): + (test_webkit_web_back_forward_list_order): + (test_webkit_web_back_forward_list_add_item): + * webkit/webkitwebbackforwardlist.cpp: + (webkit_web_back_forward_list_add_item): + +2009-06-20 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Jan Alonzo. + + Initial test case for loading statuses. + + * tests/testloading.c: Added. + (load_finished_cb): + (status_changed_cb): + (test_loading_status): + (main): + +2009-06-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Jan Alonzo. + + Fix the ordering in which the new load status goes into the enum + to avoid ABI breakage. + + * webkit/webkitwebframe.h: + +2009-06-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez and Christian Dywan. + + Add a new load status to report that the first visually non-empty + layout has been done. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout): + * webkit/webkitwebframe.h: + +2009-06-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Fix parameters of navigation-policy-decision-requested callback, + to be correct in number and type + + * tests/testhttpbackend.c: + (navigation_policy_decision_requested_cb): + +2009-06-18 Christian Dywan <christian@twotoasts.de> + + Reviewed by Gustavo Noronha. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::loadDone): + (WebKit::FrameLoaderClient::dispatchDidFinishLoad): + (WebKit::FrameLoaderClient::dispatchDidFailProvisionalLoad): + (WebKit::FrameLoaderClient::dispatchDidFailLoad): Introduce the static + function loadDone to emit "load-done" and update the status and update + the relevent places. We missed some status notifications before. + +2009-06-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Xan Lopez. + + Be consistent in always using the term URI instead of URL in the + documentation of WebKitWebView signals. + + * webkit/webkitwebview.cpp: + (webkit_web_view_class_init): + +2009-06-16 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Do not use g_assert_cmpint to test for NULL pointer, just + g_assert. + + * tests/testnetworkrequest.c: + (test_network_request_create_destroy): + +2009-06-15 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=26377 + [GTK] Confusion about range of 'progress' property + + Range for the progress property is 0.0 .. 1.0, don't multiply it + by 100 to make it a percentage. + + * webkit/webkitwebview.cpp: + (webkit_web_view_get_progress): + +2009-06-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Add new symbols list for 1.1.10 release. + + * docs/webkitgtk-docs.sgml: + +2009-06-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Xan Lopez. + + Fix Since tags for the new uri and message properties. + + * webkit/webkitnetworkrequest.cpp: + (webkit_network_request_class_init): + +2009-06-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Adding new documented API to the generated + documentation. + + * docs/webkitgtk-sections.txt: + +2009-06-15 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Update NEWS for 1.1.10 release. + + * NEWS: + +2009-06-11 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + Add a test to perform an actual download. + + * tests/testdownload.c: + (navigation_policy_decision_requested_cb): + (notify_status_cb): + (download_requested_cb): + (test_webkit_download_perform): + (main): + +2009-06-11 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + Fix crash when downloading, caused by assuming SoupMessage would + be there. This change factors the logic required to create a + ResourceRequest from a WebKitNetworkRequest into a core() + function, like we have for some other classes. + + * webkit/webkitdownload.cpp: + (webkit_download_start): + * webkit/webkitprivate.cpp: + (WebKit::core): + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + (webkit_web_frame_load_request): + +2009-06-10 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + Make WebKitNetworkRequest a proper GObject, making URI and + SoupMessage properties. Also adding unit tests for creation and + destruction. + + * tests/testnetworkrequest.c: Added. + (test_network_request_create_destroy): + (test_network_request_properties): + (main): + * webkit/webkitnetworkrequest.cpp: + (webkit_network_request_get_property): + (webkit_network_request_set_property): + (webkit_network_request_class_init): + (webkit_network_request_init): + (webkit_network_request_constructor): + (webkit_network_request_new_with_core_request): + (webkit_network_request_new): + (webkit_network_request_set_uri): + (webkit_network_request_get_uri): + * webkit/webkitnetworkrequest.h: + +2009-06-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + News for 1.1.9. + + * NEWS: + +2009-06-09 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha. + + Clear the frame name before we run each tests so we don't get + "someFloaString" or "3" in the target frame name. + + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + (webkit_web_frame_clear_main_frame_name): + + +2009-06-10 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=25415 + [GTK][ATK] Please implement support for get_text_at_offset + + Update test for new implementation (it fixes two bugs and adds + actual implementations for LINE boundaries). + + * tests/testatk.c: + (test_webkit_atk_get_text_at_offset): + +2009-06-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=26104 + [GTK] Make NetworkRequest a proper GObject and expose SoupMessage + + Refactor how SoupMessage is handled, so that our ResourceRequest + object doesn't have to store it as a member, which complicates + managing ResourceRequest's lifetime. + + * tests/testhttpbackend.c: + (navigation_policy_decision_requested_cb): + (test_soup_message_lifetime): + * webkit/webkitnetworkrequest.cpp: + (WTF::SoupMessage): + (webkit_network_request_new_with_core_request): + +2009-06-08 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=26240 + [GTK] Try again button loses query strings + + Only trigger reload, when try again is clicked, this way we do not + lose the query strings, like we did when also triggering a form + submission. + + * resources/error.html: + +2009-06-06 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=26175 + [GTK] Download progress notification should be throttled, for the benefit of download managers + + Throttle notifications for the 'progress' property of the Download + object, and update documentation to note the fact that this is + being done, and how to get all notifications if you really care + about them. + + * webkit/webkitdownload.cpp: + (webkit_download_class_init): + (webkit_download_received_data): + +2009-05-29 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha. + + Fixed compile warning when comparing the different navigation types + + * webkit/webkitwebnavigationaction.cpp: + (webkit_web_navigation_action_class_init): + +2009-05-29 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=26075 + [GTK] Refactor key scrolling code + + After the scrolling changes in r44177 we can now use the + FrameView::scroll method like the other ports, keeping the magic + constants for the scrolling amounts inside WebCore proper. + + * webkit/webkitwebview.cpp: + (webkit_web_view_real_move_cursor): + +2009-05-29 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Jan Alonzo. + + Make NetworkRequest carry a reference of the SoupMessage used by + ResourceRequest, and use that to create new ResourceRequests where + needed, so that no information is lost while passing around + NetworkRequest objects. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): + (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): + (WebKit::FrameLoaderClient::startDownload): + * webkit/webkitdownload.cpp: + (webkit_download_start): + * webkit/webkitnetworkrequest.cpp: + (webkit_network_request_finalize): + (webkit_network_request_new_with_core_request): + (webkit_network_request_new): + (webkit_network_request_get_message): + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + (webkit_web_frame_load_request): + +2009-05-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=26048 + navigation-policy-decision-requested documentation incomplete + + Fix documentation for all policy decision request signals, to + mention that an actual decision is expected when you return TRUE, + meaning that you handled the signal. + + * webkit/webkitwebview.cpp: + (webkit_web_view_class_init): + +2009-05-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Mention the implementation of the new AtkText methods. + + * NEWS: + +2009-05-19 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo and Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25415 + [GTK][ATK] Please implement support for get_text_at_offset + + New test file for ATK functionality. + + * tests/testatk.c: Added. + (bail_out): + (test_get_text_function): + (test_webkit_atk_get_text_at_offset): + (main): + +2009-05-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Document changes worth noting for 1.1.8. + + * NEWS: + +2009-05-27 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=26039 + [GTK] WebKitWebHistoryItem lifetime fixes + + Modify the management of history items by the BackForward list. + + Having the objects add themselves to a hash table with an extra + reference made impossible for the cleanup code in the dispose + method to be ever called in normal conditions, since dispose is + called before getting rid of the last reference, which the objects + were making to themselves. Get rid of this extra reference and + move the responsibility of the cleanup to the BackForward list + itself, which effectively owns the WebKitWebHistoryItems now. + + Also, update the tests to reflect this change. + + * tests/testwebbackforwardlist.c: + (test_webkit_web_history_item_lifetime): + (test_webkit_web_back_forward_list_order): + (test_webkit_web_back_forward_list_add_item): + * tests/testwebhistoryitem.c: + (web_history_item_fixture_setup): + (web_history_item_fixture_teardown): + * webkit/webkitprivate.h: + * webkit/webkitwebbackforwardlist.cpp: + (webkit_web_back_forward_list_dispose): + (webkit_web_back_forward_list_class_init): + * webkit/webkitwebhistoryitem.cpp: + (webkit_history_items): + (webkit_history_item_add): + (webkit_web_history_item_dispose): + (WebKit::kit): + +2009-05-26 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=26039 + [GTK] WebKitWebHistoryItem lifetime fixes + + Delete the BackForwardList before the Page, otherwise the references + to the WebKitWebHistoryItems will be gone. + + * webkit/webkitwebview.cpp: + (webkit_web_view_dispose): + +2009-05-27 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + Add comment to clarify why scrolling is done as it is and not with + gdk_window_scroll. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::scroll): + +2009-05-27 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Adding new symbols index for 1.1.8. + + * docs/webkitgtk-docs.sgml: + +2009-05-26 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + Add a new signal called "create-plugin-widget" and emit it from + within the FrameLoaderClientGtk::createPlugin method. If a + GtkWidget gets returned it will be embedded as a WebCore::Widget + using the new GtkPluginWidget. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::createPlugin): + * webkit/webkitwebview.cpp: + (webkit_signal_accumulator_object_handled): + (webkit_web_view_class_init): + * webkitmarshal.list: + +2009-05-24 Xan Lopez <xlopez@igalia.com> + + Reviewed by Mark Rowe. + + https://bugs.webkit.org/show_bug.cgi?id=25987 + [GTK] Clarify WebKitWebView::download-requested documentation + + Explain a bit why this signal is not emitted by default and offer + a common solution/setup for that issue. + + * webkit/webkitwebview.cpp: + (webkit_web_view_class_init): + +2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org> + + Rubber-stamped by Gustavo Noronha. + + Break the switch once private browsing is selected. + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + +2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha and Xan Lopez. + + [Gtk] Enable database and localStorage support + https://bugs.webkit.org/show_bug.cgi?id=25629 + + Add settings to enable or disable database and localStorage + support and enable them by default. This allows databases to be + shown in the WebInspector as well as allow us to run the storage + layout tests. + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Part 2 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr + + <https://bugs.webkit.org/show_bug.cgi?id=25495> + + Reviewed by Oliver Hunt. + + * WebCoreSupport/ChromeClientGtk.h: + (WebKit::ChromeClient::createHTMLParserQuirks): Return a + PassOwnPtr<> instead of a raw HTMLParserQuirks pointer. + +2009-05-22 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Jan Alonzo. + + Improve NetworkRequest documentation. + + * webkit/webkitnetworkrequest.cpp: + (webkit_network_request_class_init): + (webkit_network_request_init): + +2009-05-21 Xan Lopez <xlopez@igalia.com> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=24818 + [GTK] http auth dialog pops up twice after a cancelled atempt + + Workaround libsoup bug + http://bugzilla.gnome.org/show_bug.cgi?id=583462, which made + libsoup emit the 'authenticate' signal more often than it was + expected. + + We'll be able to remove this when we depend on libsoup > 2.26.2. + + * webkit/webkitsoupauthdialog.c: + (session_authenticate): + +2009-05-21 Darin Fisher <darin@chromium.org> + + Fix build bustage. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::getAutoCorrectSuggestionForMisspelledWord): Add stub for method. + * WebCoreSupport/EditorClientGtk.h: + +2009-05-20 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25834 + + Make ChromeClient a interface again + + With recent additions to ChromeClient.h empty defaults were + added. This is bad for porters as these changes go unnoticed + and at runtime no notImplemented warning is logged and grepping + for notImplemented will not show anything. Change this Client + to be like the other Clients again and always have pure virtuals + (but for stuff inside #ifdef PLATFORM(MAC)). + + Update the various WebKit/* implementations to compile again. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::setCursor): + (WebKit::ChromeClient::requestGeolocationPermissionForFrame): + * WebCoreSupport/ChromeClientGtk.h: + (WebKit::ChromeClient::scrollRectIntoView): + +2009-05-19 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + Do not try to free enchant broker and dictionary if they do not + exist, those functions aren't NULL-safe. + + * webkit/webkitwebsettings.cpp: + (free_spell_checking_language): + +2009-05-15 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Jan Alonzo. + + Plug memory leak. + + * webkit/webkitwebsettings.cpp: + (free_spell_checking_language): + (webkit_web_settings_finalize): + (webkit_web_settings_set_property): + +2009-05-15 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Jan Alonzo. + + Converting filename to uri by concatenating strings is broken + on Windows. Use proper glib conversion functions. + + * webkit/webkitwebview.cpp: + (webkit_web_view_open): + * tests/testdownload.c: + (test_webkit_download_create): + +2009-05-13 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Do not handle KeyEvents with Ctrl or Alt modifiers that we + otherwise know nothing about. Otherwise shortcuts defined in the + WebView will never be executed. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::handleEditingKeyboardEvent): + +2009-05-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Add information about the SVG index bounds check committed in + r43590. + + * NEWS: + +2009-05-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Note changes since 1.1.6. + + * NEWS: + +2009-05-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Updated control file, and main file for the 1.1.7 + release. + + * docs/webkitgtk-docs.sgml: + * docs/webkitgtk-sections.txt: + +2009-05-11 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=25685 + [GTK] Middle click paste form the pasteboard + + For paste from middle button (button==2) we want to use + the GDK_PRIMARY_SELECTION. Implement the new getCurrentTarget + method in PasteboardHelperGtk by asking the WebView which + clipboard to use. + + * WebCoreSupport/PasteboardHelperGtk.cpp: + (WebKit::PasteboardHelperGtk::getCurrentTarget): + * WebCoreSupport/PasteboardHelperGtk.h: + * webkit/webkitprivate.h: + * webkit/webkitwebview.cpp: + (webkit_web_view_button_press_event): + (webkit_web_view_use_primary_for_paste): + +2009-05-12 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Holger Freyther. + + [Gtk] Various autotools build refactoring and fixes + https://bugs.webkit.org/show_bug.cgi?id=25286 + + Add glib-2.0 to the list of required package. + + * webkit.pc.in: + +2009-05-11 Christian Dywan <christian@twotoasts.de> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25697 + [GTK] Warnings building WebKit/gtk/tests/testwebframe.c + + * tests/testwebframe.c: + (test_webkit_web_frame_create_destroy): Declare webView as a GtkWidget* + to fix pointer type incompatibility warnings. + +2009-05-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Make the scan program call g_thread_init(NULL) in addition to + g_type_init(), so that it actually works. + + * docs/GNUmakefile.am: + +2009-05-08 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Unify scrolling code via adjustments and keys. Use the WebCore + defined constants, since that's what people are most used to at + this point. + + * ChangeLog: + * webkit/webkitwebview.cpp: + (webkit_web_view_real_move_cursor): + +2009-05-07 Christian Dywan <christian@twotoasts.de> + + Reviewed by Gustavo Noronha. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidChangeLocationWithinPage): + (WebKit::FrameLoaderClient::dispatchDidCommitLoad): Add missing + call to notifyStatus in the committed case and a missing property notify. + +2009-05-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=24786 + WebKitDownload sometimes suggests peculiar filenames + + When a download is requested by an ongoing request, use the already + provided response to set the suggested filename for the WebKitDownload + object, if available. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::download): + * webkit/webkitdownload.cpp: + (_WebKitDownloadPrivate::webkit_download_set_property): + (_WebKitDownloadPrivate::webkit_download_get_suggested_filename): + (_WebKitDownloadPrivate::webkit_download_set_suggested_filename): + * webkit/webkitprivate.h: + * webkit/webkitwebview.cpp: + +2009-05-06 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Holger Freyther. + + GTK+ API implementation files have bogus extern "C" entries + https://bugs.webkit.org/show_bug.cgi?id=24322 + + Remove bogus extern "C" from the source files. + + * webkit/webkitdownload.cpp: + (DownloadClient::cannotShowURL): + * webkit/webkiterror.cpp: + (webkit_plugin_error_quark): + * webkit/webkitnetworkrequest.cpp: + (webkit_network_request_get_uri): + * webkit/webkitprivate.cpp: + (webkit_init): + * webkit/webkitversion.cpp: + (webkit_micro_version): + * webkit/webkitwebbackforwardlist.cpp: + * webkit/webkitwebframe.cpp: + (webkit_web_frame_get_load_status): + * webkit/webkitwebhistoryitem.cpp: + * webkit/webkitwebinspector.cpp: + (webkit_web_inspector_set_inspector_client): + * webkit/webkitwebnavigationaction.cpp: + (webkit_web_navigation_action_get_modifier_state): + * webkit/webkitwebpolicydecision.cpp: + (webkit_web_policy_decision_cancel): + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_get_spell_languages): + * webkit/webkitwebview.cpp: + * webkit/webkitwebwindowfeatures.cpp: + (webkit_web_window_features_equal): + +2009-05-06 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Holger Freyther. + + Misc fixes to InspectorClientGtk. + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::InspectorClient::createPage): use g_filename_to_uri to + get the URI and use web_view_load_uri instead of the deprecated + web_view_open method for loading the URI. + (WebKit::InspectorClient::localizedStringsURL): implement. + +2009-05-05 Ben Murdoch <benm@google.com> + + Reviewed by Eric Seidel. + + Add #if ENABLE(DATABASE) guards around database code so toggling ENABLE_DATABASE off does not break builds. + https://bugs.webkit.org/show_bug.cgi?id=24776 + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::exceededDatabaseQuota): + * WebCoreSupport/ChromeClientGtk.h: + +2009-05-06 Christian Dywan <christian@twotoasts.de> + + Reviewed by Gustavo Noronha. + + http://bugs.webkit.org/show_bug.cgi?id=17066 + [GTK] Improve frameloader signals + + Implement load-status and progress properties on the view, as well as + load-status on the frame. This supersedes the different load signals + load-progress-changed, load-committed, load-done, load-started and + load-finished which are not only misnamed but broken by design. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::notifyStatus): + (WebKit::FrameLoaderClient::postProgressStartedNotification): + (WebKit::FrameLoaderClient::postProgressEstimateChangedNotification): + (WebKit::FrameLoaderClient::dispatchDidFinishLoad): + (WebKit::FrameLoaderClient::dispatchDidStartProvisionalLoad): + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + * webkit/webkitwebframe.h: + * webkit/webkitwebview.cpp: + * webkit/webkitwebview.h: + +2009-05-05 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + Fix memory leaks. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::checkSpellingOfString): + +2009-05-02 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25466 + WebKitGtk+ 1.1.6 prints weird error messages in Liferea + + Use strlen instead of g_utf8_strlen when calculating the size of + the data that is being given to webkit_web_frame_load_string to be + loaded, so that we don't miss any of the content. + + * webkit/webkitwebframe.cpp: + +2009-05-01 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, bulid fix. + + Fix mis-applied patch. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): + +2009-05-01 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Add a FrameLoaderClient callback for the ResourceRetrievedByXMLHttpRequest. + + https://bugs.webkit.org/show_bug.cgi?id=25347 + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest): + * WebCoreSupport/FrameLoaderClientGtk.h: + +2009-04-30 David Kilzer <ddkilzer@apple.com> + + Provide a mechanism to create a quirks delegate for HTMLParser + + Reviewed by David Hyatt. + + * WebCoreSupport/ChromeClientGtk.h: + (WebKit::ChromeClient::createHTMLParserQuirks): Added. The + default implementation of this factory method returns 0. + +2009-04-30 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25342 + Add MessageSource and MessageLevel parameters to the ChromeClient::addMessageToConsole. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::addMessageToConsole): + * WebCoreSupport/ChromeClientGtk.h: + +2009-04-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Update gtk-doc control and base sgml files for 1.1.6. + + * docs/webkitgtk-docs.sgml: + * docs/webkitgtk-sections.txt: + +2009-04-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Updated with news for the 1.1.6 release. + + * NEWS: + +2009-04-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Leave a bit of space from the previous page when advacing a whole + page. This matches the behavior of our scrollbar scrolling code + and is just nicer in general. + + * webkit/webkitwebview.cpp: + +2009-04-28 Xan Lopez <xlopez@igalia.com> + + Unreviewed: committed a few bits by mistake, remove them. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::handleEditingKeyboardEvent): + +2009-04-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=16135 + [GTK] Support caret browsing + + Refactor keyboard event handling to work properly under caret + browsing mode. Most of the code comes from the Windows port. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::): + (WebKit::interpretKeyEvent): + (WebKit::handleEditingKeyboardEvent): + (WebKit::EditorClient::handleKeyboardEvent): + +2009-04-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=16135 + [GTK] Support caret browsing + + Based on a patch by Alp Toker. + + Add enable-caret-browsing setting to WebKitWebView. + + * webkit/webkitwebsettings.cpp: + (_WebKitWebSettingsPrivate::): + (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): + (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): + (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): + (_WebKitWebSettingsPrivate::webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + +2009-04-27 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=25409 + [GTK] incorrectly fallsback on cancellation + + Check whether we should fallback also on didFailLoad, so that we + don't get error pages showing up in parts of the content of some + sites because of, for instance, location changes. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidFailLoad): + +2009-04-27 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=25409 + [GTK] incorrectly fallsback on cancellation + + Correctly handle cancellation and frame loading interruption + caused by policy change. This also fixes + fast/frames/location-change.html. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::shouldFallBack): + +2009-04-26 Xan Lopez <xlopez@igalia.com> + + Reviewed by Mark Rowe. + + Plug memory leak. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidFailLoad): + +2009-04-26 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25391 + G_SIGNAL_ACTION flag in WebKitWebView signals + + Most of the signals in WebKitGTK+ have the G_SIGNAL_ACTION flag, + but I don't think this makes sense. The flag is meant for those + signals that can be emitted by the user to trigger some action in + the view, as if it were a normal API, which is not the case for + most of them. + + * webkit/webkitdownload.cpp: + (_WebKitDownloadPrivate::webkit_download_class_init): + * webkit/webkitwebframe.cpp: + * webkit/webkitwebinspector.cpp: + (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): + * webkit/webkitwebview.cpp: + +2009-04-26 Xan Lopez <xlopez@igalia.com> + + Unreviewed, actually apply the right patch. + + * webkit/webkitwebview.cpp: + (webkit_web_view_move_cursor): + +2009-04-26 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Pass a variable to hold the return value of the 'move-cursor' + signal, otherwise a crash can happen. + + * webkit/webkitwebview.cpp: + (webkit_web_view_move_cursor): + +2009-04-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=24786 + WebKitDownload sometimes suggests peculiar filenames + + Refactor the emission of the download-requested signal so that we + have less code duplication. + + * WebCoreSupport/ContextMenuClientGtk.cpp: + (WebKit::ContextMenuClient::downloadURL): + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::startDownload): + * webkit/webkitprivate.h: + * webkit/webkitwebview.cpp: + +2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [GTK] Error reporting + https://bugs.webkit.org/show_bug.cgi?id=18344 + + Update FrameLoad errors to use WebKitErrors. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::cancelledError): + (WebKit::FrameLoaderClient::blockedError): + (WebKit::FrameLoaderClient::cannotShowURLError): + (WebKit::FrameLoaderClient::interruptForPolicyChangeError): + (WebKit::FrameLoaderClient::cannotShowMIMETypeError): + (WebKit::FrameLoaderClient::fileDoesNotExistError): + (WebKit::FrameLoaderClient::pluginWillHandleLoadError): + (WebKit::FrameLoaderClient::shouldFallBack): + * webkit/webkiterror.h: Added. + * webkit/webkiterror.cpp: Added. + +2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [GTK] Error reporting + https://bugs.webkit.org/show_bug.cgi?id=18344 + + Display a default error page for load errors. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidFailLoad): + * resources/error.html: Added. + +2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [GTK] Error reporting + https://bugs.webkit.org/show_bug.cgi?id=18344 + + Add a WebKitWebFrame API to load alternate content for unreachable URLs. + Also add a new signal "load-error" for handling load errors. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::postProgressFinishedNotification): + (WebKit::FrameLoaderClient::dispatchDidFailLoading): + (WebKit::FrameLoaderClient::dispatchDidFailProvisionalLoad): + (WebKit::FrameLoaderClient::dispatchDidFailLoad): + * webkit/webkitwebframe.cpp: + * webkit/webkitwebframe.h: + * webkit/webkitwebview.cpp: + +2009-04-24 Jan Michael Alonzo <jmalonzo@webkit.org> + + Rubber-stamped by Gustavo Noronha. + + Fix braces to comply with style guidelines. + + * WebCoreSupport/PasteboardHelperGtk.cpp: + (WebKit::PasteboardHelperGtk::getClipboard): + (WebKit::PasteboardHelperGtk::getCopyTargetList): + (WebKit::PasteboardHelperGtk::getPasteTargetList): + +2009-04-24 Sergio García-Cuevas <sergio_gcg@telefonica.net> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=17267 + [GTK] Primary selection/clipboard support + + Add a method for getting the primary selection. + + * WebCoreSupport/PasteboardHelperGtk.cpp: + (WebKit::PasteboardHelperGtk::getPrimary): + * WebCoreSupport/PasteboardHelperGtk.h: + +2009-04-24 Johan Bilien <jobi@via.ecp.fr> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=25373 + Popup menu has the wrong size when popped up near the edge + of the screen + + * webkit/webkitwebview.cpp: + (webkit_web_view_forward_context_menu_event): Let GTK place + the popup menu instead of trying to do better and failing + +2009-04-24 Christian Dywan <christian@twotoasts.de> + + Rubber-stamped by Gustavo Noronha. + + * webkit/webkitwebsettings.cpp: + (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): Reword the + description of the enable-spell-checking property and correct the + mentioning of the default language used. + +2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=15616 + [GTK] Add spell checking + + Implement EditorClient::ignoreWordInSpellDocument, + EditorClient::learnWord and EditorClient::getGuessesForWord. This + enables the corresponding user actions. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::ignoreWordInSpellDocument): + (WebKit::EditorClient::learnWord): + (WebKit::EditorClient::getGuessesForWord): + +2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=15616 + [GTK] Add spell checking + + Implement EditorClient::checkSpellingOfString; enabling spell checking + to actually happen, this is the basis for other spelling functions. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::checkSpellingOfString): + +2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=15616 + [GTK] Add spell checking + + Add spell-checking-languages property to WebKitWebSettings. + + * webkit/webkitprivate.h: + * webkit/webkitwebsettings.cpp: + (_WebKitWebSettingsPrivate::): + (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): + (_WebKitWebSettingsPrivate::webkit_web_settings_init): + (_WebKitWebSettingsPrivate::webkit_web_settings_finalize): + (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): + (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): + (_WebKitWebSettingsPrivate::webkit_web_settings_copy): + (_WebKitWebSettingsPrivate::webkit_web_settings_get_spell_languages): + +2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=15616 + [GTK] Add spell checking + + Add enable-spell-checking property to WebKitWebSettings and implement + EditorClient::isContinuousSpellCheckingEnabled and + EditorClient::toggleContinuousSpellChecking to allow the UI to + enable check as you type spell checking. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::isContinuousSpellCheckingEnabled): + (WebKit::EditorClient::toggleContinuousSpellChecking): + * webkit/webkitwebsettings.cpp: + (_WebKitWebSettingsPrivate::): + (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): + (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): + (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): + (_WebKitWebSettingsPrivate::webkit_web_settings_copy): + +2009-04-21 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Implement window<->screen coordinate transformation functions. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::widgetScreenPosition): + (WebKit::ChromeClient::windowToScreen): + (WebKit::ChromeClient::screenToWindow): + +2009-04-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=24786 + WebKitDownload sometimes suggests peculiar filenames + + Remove query and ref from the URI that is to be downloaded when + using it to provide a file name suggestion. + + * webkit/webkitdownload.cpp: + (_WebKitDownloadPrivate::webkit_download_set_property): + +2009-04-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Handle the case when the plugin view is destroyed during + didReceiveResponse, to avoid crashing. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::committedLoad): + +2009-04-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=25251 + Crash when frame creation removes it from the parent + + This brings us up-to-date with the expectations of sub-frame + creation, following what Mac has done. It fixes crashes when + calling init on the child frame removes it from the page. + + This makes the following test pass instead of crash: + + fast/loader/frame-creation-removal.html + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::createFrame): + +2009-04-16 Christian Dywan <christian@twotoasts.de> + + Reviewed by Holger Freyther. + + http://bugs.webkit.org/show_bug.cgi?id=25042 + destroying webview widget directly causes crash. + + * tests/testwebframe.c: + (test_webkit_web_frame_create_destroy): Add a test case for destroying + a web view shortly after packing it in a window. + +2009-04-16 Xan Lopez <xlopez@igalia.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=25241 + Remove superfluous NotImplemented.h includes. + + * webkit/webkitprivate.cpp: + +2009-04-14 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Update gtk-doc control and base sgml files for 1.1.5. + + * docs/webkitgtk-docs.sgml: + * docs/webkitgtk-sections.txt: + +2009-04-14 Xan Lopez <xlopez@igalia.com> + + * NEWS: updated for 1.1.5 release. + +2009-04-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=22898 + [GTK] need proper API for printing + + Added simple printing unit tests. + + * tests/testwebframe.c: + (print_requested_cb): + (print_timeout): + (test_webkit_web_frame_printing): + (main): + +2009-04-13 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=22898 + [GTK] need proper API for printing + + Implement proper printing API, using the GTK+ printing API. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::print): + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + * webkit/webkitwebframe.h: + * webkit/webkitwebview.cpp: + +2009-04-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25124 + [GTK] many strings still missing translation calls + + Mark the missing strings for translation. + + * webkit/webkitdownload.cpp: + (_WebKitDownloadPrivate::webkit_download_cancel): + * webkit/webkitsoupauthdialog.c: + (show_auth_dialog): + * webkit/webkitwebhistoryitem.cpp: + (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): + * webkit/webkitwebinspector.cpp: + (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): + * webkit/webkitwebnavigationaction.cpp: + (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_class_init): + * webkit/webkitwebsettings.cpp: + (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): + * webkit/webkitwebview.cpp: + +2009-04-08 Alejandro Piñeiro <apinheiro@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Use getOrCreate instead of just get, as we need to actually create + the wrapper object the first time this function is called. + + * webkit/webkitwebview.cpp: + +2009-04-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=20575 + No localization in WebKitGtk + + Implemented localization support for WebKitGTK+. + + * WebCoreSupport/ChromeClientGtk.cpp: + * WebCoreSupport/ContextMenuClientGtk.cpp: + * po/POTFILES: Added. + * po/README: Added. + * po/webkit.pot: Added. + * webkit/webkitdownload.cpp: + (_WebKitDownloadPrivate::webkit_download_class_init): + * webkit/webkitprivate.cpp: + (webkit_init): + * webkit/webkitwebframe.cpp: + +2009-04-05 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25042 + destroying webview widget directly causes crash. + + Do not connect the WebView to its own screen-changed signal, set a + default handler instead. + + * webkit/webkitwebview.cpp: + +2009-04-05 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25042 + destroying webview widget directly causes crash. + + GtkWidget::screen-changed can be emitted when a widget is being + destroyed, protect against it. + + * webkit/webkitwebview.cpp: + +2009-04-05 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Holger Freyther. + + [Gtk] Implement LayoutTestControllerGtk::setPrivateBrowsingEnabled + https://bugs.webkit.org/show_bug.cgi?id=24487 + + Updated documentation and put more information about the + private-browsing setting for WebKitGtk. + + * webkit/webkitwebsettings.cpp: + (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): + +2009-04-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + Remove pre-processor checks for GTK+ >= 2.10, since we now require + at least that version. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::clipboard_clear_contents_cb): + (WebKit::EditorClient::respondToChangedSelection): + * webkit/webkitwebframe.cpp: + * webkit/webkitwebview.cpp: + +2009-04-02 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=24844 + Unit test WebKitDownload + + Extra checks to avoid crashing and a critical message when + property accessor functions are called before the download is + started. + + * webkit/webkitdownload.cpp: + (_WebKitDownloadPrivate::webkit_download_get_progress): + (_WebKitDownloadPrivate::webkit_download_get_elapsed_time): + +2009-04-01 Christian Dywan <christian@twotoasts.de> + + Reviewed by Holger Freyther. + + * tests/testdownload.c: Added. + (test_webkit_download_create): + (main): Add an initial unit test for downloading. + +2009-04-01 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed typo fixes, and naming normalization in the + documentation. + + * docs/webkitenvironment.xml: + * webkit/webkitwebview.cpp: + +2009-03-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + Updated gtk-doc configuration files for the 1.1.1, 1.1.2, 1.1.3, + and 1.1.4 versions of WebKitGTK+. + + * docs/webkitgtk-docs.sgml: + * docs/webkitgtk-sections.txt: + +2009-03-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=17045 + [GTK] Documentation + + Added header documentation for WebKitWebNavigationAction and + WebKitWebPolicyDecision. + + Added missing documentation pieces for WebKitSoupAuthDialog, + WebKitDownload and WebKitWebPolicyDecision. + + Wrote a section about using the WEBKIT_DEBUG environment variable. + + * docs/GNUmakefile.am: + * docs/webkitenvironment.xml: Added. + * docs/webkitgtk-docs.sgml: + * webkit/webkitdownload.cpp: + * webkit/webkitsoupauthdialog.c: + * webkit/webkitwebnavigationaction.cpp: + * webkit/webkitwebpolicydecision.cpp: + +2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + Integrate gtk-doc into the Gtk+ buildsystem. + + Based on original work by Holger Freyther. + + Integrate gtk-doc into our buildsystem. We are forced to + use recursive make for gtk-doc itself as the to be installed + gtk-doc.make (done by gtkdocize) is not working in a non + recursive environment. + + The documentation can only be generated when srcdir == builddir. + In all other cases the generated files will not be found. This + limitation can be found in pango and gtk+ as well. There is no + easy way around. The resulting html documentation will be saved + in the srcdir as well. + + * docs/GNUmakefile.am: Added. + * docs/version.xml.in: Added. + * docs/webkitgtk-docs.sgml: + +2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Documenting what changed since the 1.1.3 release, in + the GTK+ port. + + * NEWS: + +2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Add information on the bug-fix-only 1.1.3 release. + + * NEWS: + +2009-03-30 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=24878 + [GTK] Use GtkBinding system to handle key events in WebView + + Use GtkBinding system for key events in WebKitWebView. Allows the + user to reconfigure the bindings and fixes a bunch of bugs along + the way (we were not checking modifier keys in most actions). + + * webkit/webkitwebview.cpp: + (webkit_web_view_move_cursor): + * webkit/webkitwebview.h: + * webkitmarshal.list: + +2009-03-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Mark Rowe. + + https://bugs.webkit.org/show_bug.cgi?id=24790 + [GTK] webkitsoupauthdialog.h lacks WEBKIT_API before function + + Set the right visibility to the WebKitSoupAuthDialog get_type + function. + + * webkit/webkitsoupauthdialog.h: + +2009-03-28 Jan Michael Alonzo <jmalonzo@webkit.org> + + Gtk build fix. Not reviewed. + + FrameLoader::loadURL and FrameLoader::detachChildren went private + per changes in http://trac.webkit.org/changeset/42055. Follow + Mac's behaviour and use FrameLoader::loadURLIntoChildFrame for + loadURL and FrameLoader::detachParent for detachChildrem. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::createFrame): + * webkit/webkitwebview.cpp: + 2009-03-25 Gustavo Noronha Silva <gns@gnome.org> Reviewed by Holger Freyther. diff --git a/WebKit/gtk/NEWS b/WebKit/gtk/NEWS index c8f656c..39a54ff 100644 --- a/WebKit/gtk/NEWS +++ b/WebKit/gtk/NEWS @@ -1,3 +1,181 @@ +================= +WebKitGTK+ 1.1.12 +================= + +What's new in WebKitGTK+ 1.1.12? + + - Fix WebKitSoupAuthDialog to only save passwords in gnome-keyring + (if enabled) when authentication succeeds. + - Implement a proper size_request method for WebKitWebView. The + widget will request the size of the whole page as its size + requisition. + - Many a11y improvements. + - The usual amount of other misc fixes. + - WEBKIT_DEBUG variable now accepts channel names in any case + again. + +================= +WebKitGTK+ 1.1.11 +================= + +What's new in WebKitGTK+ 1.1.11? + + - WebKit has got a new feature - a XSS auditor, that should improve + security; this feature is still experimental, and disabled by + default, but applications can enable it using the setting. + - The hackish content sniffing code that was beig used to avoid + pages requesting downloads instead of displaying content has been + replaced by usage of a new Soup feature, which implements proper + content sniffing. + - More accessibility work, including fixes for problems which were + critical for a possible GNOME 2.28 release. + - Pasting rich text from other browsers should now work as expected. + - The usual amount of misc fixes. + +================= +WebKitGTK+ 1.1.10 +================= + +What's new in WebKitGTK+ 1.1.10? + + - WebKitNetworkRequest has now GObject properties for its URI and + the SoupMessage that backs it up. + - Fix AtkText methods get_selection and get_n_selections to not use + the global selection but only the selection that belongs to the + object being used. + - Fix a crasher when emitting the a11y signal 'text-caret-moved' in + some situations with debug builds. + +================ +WebKitGTK+ 1.1.9 +================ + +What's new in WebKitGTK+ 1.1.9? + + - Scrolling once again received a lot of love, and many subtle + problems and bugs were killed, and we now get correct behavior in + acid2; a number of smaller improvements are in the queue. + - Accessibility keeps gaining better support. On this release a lot + of work was done on the AtkText interface implementation. + - WebKitNetworkRequest now carries with it all the information + regarding the request, not only the URI. This means you will no + longer miss headers such as Referer when passing NetworkRequest + objects from a callback to webkit_web_frame_load_request. + +================ +WebKitGTK+ 1.1.8 +================ + +What's new in WebKitGTK+ 1.1.8? + + - We found out that WebKitWebHistoryItems were being kept with a + reference count of 2 instead of 1 as they should; nobody should be + relying on that, but if you hit reference counting problems with + items you were creating yourself, this is for you. + - You can now copy images from the web page to the clipboard. + - Improvements were made to the Plugin handling code. + - Scroll events will now be correctly reported to web applications. + - You can now embed arbitrary widgets as if it was a plugin, with + the new "create-plugin-widget" signal. + - The atk_text_get_text_{at,after,before}_offset methods are now + implemented for all boundary types except LINE_AFTER and + LINE_BEFORE. + - The usual stream of minor fixes and improvements, as always. + +================ +WebKitGTK+ 1.1.7 +================ + +What's new in WebKitGTK+ 1.1.7? + + - This release includes a security fix: + SVGList::insertItemBefore would not perform a bounds check on the + index it was provided, potentially leading to a buffer overflow. + - New frame loading properties supersede various load-* signals, and + are also accessible in the WebView, for convenience, making this + API saner. + - JIT is now supported for X86-64 on Linux, and enabled by default! + - A regression on webkit_web_view_load_string has been fixed, making + it work correctly again when the document uses encodings which may + use more than 1 byte per character. + - Yet more work has been done to the ATK support, caret browsing + support improvements in particular. + - Filenames suggested by the Download functionality now correctly + use the filename given by the host, if available. + - Build fixes for IA64, and AMD64 + - gtk-doc support has also improved, and you should now be able to + cd WebKit/gtk/docs and type make docs, if you --enable-gtk-doc on + configure, as long as you build with srcdir == builddir. + - More crashes and other bugs fixed, and small improvements made + under the hood. + +================ +WebKitGTK+ 1.1.6 +================ + +What's new in WebKitGTK+ 1.1.6? + + - Several ATK support additions and fixes got landed, with many + roles being now implemented, providing better accessibility. + - Caret browsing is now available. + - Spelling check has been implemented using Enchant; the API is + still lacking, and some of the functionality still needs to be + improved, though. + - Error reporting is now available, with default error pages, and + API that allows the application to override the default behavior; + localization of those pages is still not supported, but planned. + - More crashes and other bugs fixed. + +================ +WebKitGTK+ 1.1.5 +================ + +What's new in WebKitGTK+ 1.1.5? + + - Added gtk-doc support to the build system. It is not fully + integrated yet, so some manual tweaking is still needed. + - Minimum required GTK+ version is now 2.10. + - Added l10n support with gettext. Translations are stored in + WebKit/gtk/po/. + - Many improvements to the ATK support. It's good enough to provide + a basic user experience with Accerciser now, but we'll keep + improving it in further releases. + - New printing API that allows applications to control and monitor + the printing process, when requested by javascript or started by + the user. + - Many bugfixes. + +================ +WebKitGTK+ 1.1.4 +================ + +What's new in WebKitGTK+ 1.1.4? + + - WebKitWebView gained uri and title properties, deprecating the + usage of the title-changed signal. + - Basic functionality for HTML5 media tags has been achieved; there + are many unimplented methods, and rough edges still, though. + - Font rendering received quite some love, with layouting, and + memory handling fixes, and at least one less crash. + - A new signal, new-window-policy-decision-requested, has been added + to WebKitWebView, that makes it possible for the application to + correctly decide what to do when new windows are requested. + - A bug that made tooltips for consecutive links not update their + location was fixed. + - Several improvements were made to the HTTP backend, including + making it more robust when talking to servers which send bad + Content-Type headers. + - WebKitWebView now uses the GtkBinding system to handle key events, + which means that the user is now able to customize the keys used + for various operations, and that many subtle bugs have been fixed. + +================ +WebKitGTK+ 1.1.3 +================ + +The 1.1.3 release was just a quick bug fix release, because we made a +mistake in library versioning. + ================ WebKitGTK+ 1.1.2 ================ diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp index 7125305..1292e99 100644 --- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp @@ -23,6 +23,7 @@ #include "config.h" #include "ChromeClientGtk.h" +#include "Console.h" #include "FileSystem.h" #include "FileChooser.h" #include "FloatRect.h" @@ -42,7 +43,7 @@ #endif #include <glib.h> -#include <glib/gi18n.h> +#include <glib/gi18n-lib.h> #include <gtk/gtk.h> using namespace WebCore; @@ -214,7 +215,18 @@ void ChromeClient::setResizable(bool) void ChromeClient::closeWindowSoon() { - notImplemented(); + webkit_web_view_stop_loading(m_webView); + + gboolean isHandled = false; + g_signal_emit_by_name(m_webView, "close-web-view", &isHandled); + + if (isHandled) + return; + + // FIXME: should we clear the frame group name here explicitly? Mac does it. + // But this gets cleared in Page's destructor anyway. + // webkit_web_view_set_group_name(m_webView, ""); + g_object_unref(m_webView); } bool ChromeClient::canTakeFocus(FocusDirection) @@ -237,7 +249,7 @@ bool ChromeClient::runBeforeUnloadConfirmPanel(const WebCore::String& message, W return runJavaScriptConfirm(frame, message); } -void ChromeClient::addMessageToConsole(const WebCore::String& message, unsigned int lineNumber, const WebCore::String& sourceId) +void ChromeClient::addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, WebCore::MessageLevel level, const WebCore::String& message, unsigned int lineNumber, const WebCore::String& sourceId) { gboolean retval; g_signal_emit_by_name(m_webView, "console-message", message.utf8().data(), lineNumber, sourceId.utf8().data(), &retval); @@ -313,6 +325,9 @@ void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, con if (!window) return; + // We cannot use gdk_window_scroll here because it is only able to + // scroll the whole window at once, and we often need to scroll + // portions of the window only (think frames). GdkRectangle area = clipRect; GdkRectangle moveRect; @@ -334,16 +349,38 @@ void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, con gdk_region_destroy(invalidRegion); } +// FIXME: this does not take into account the WM decorations +static IntPoint widgetScreenPosition(GtkWidget* widget) +{ + GtkWidget* window = gtk_widget_get_toplevel(widget); + int widgetX = 0, widgetY = 0; + + gtk_widget_translate_coordinates(widget, window, 0, 0, &widgetX, &widgetY); + + IntPoint result(widgetX, widgetY); + int originX, originY; + gdk_window_get_origin(window->window, &originX, &originY); + result.move(originX, originY); + + return result; +} + IntRect ChromeClient::windowToScreen(const IntRect& rect) const { - notImplemented(); - return rect; + IntRect result(rect); + IntPoint screenPosition = widgetScreenPosition(GTK_WIDGET(m_webView)); + result.move(screenPosition.x(), screenPosition.y()); + + return result; } IntPoint ChromeClient::screenToWindow(const IntPoint& point) const { - notImplemented(); - return point; + IntPoint result(point); + IntPoint screenPosition = widgetScreenPosition(GTK_WIDGET(m_webView)); + result.move(-screenPosition.x(), -screenPosition.y()); + + return result; } PlatformWidget ChromeClient::platformWindow() const @@ -351,9 +388,15 @@ PlatformWidget ChromeClient::platformWindow() const return GTK_WIDGET(m_webView); } -void ChromeClient::contentsSizeChanged(Frame*, const IntSize&) const +void ChromeClient::contentsSizeChanged(Frame* frame, const IntSize& size) const { - notImplemented(); + // We need to queue a resize request only if the size changed, + // otherwise we get into an infinite loop! + GtkWidget* widget = GTK_WIDGET(m_webView); + if (GTK_WIDGET_REALIZED(widget) && + (widget->requisition.height != size.height()) && + (widget->requisition.width != size.width())) + gtk_widget_queue_resize_no_redraw(widget); } void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned modifierFlags) @@ -377,7 +420,8 @@ void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned mo if (isLink) { KURL url = hit.absoluteLinkURL(); if (!url.isEmpty() && url != m_hoveredLinkURL) { - CString titleString = hit.title().utf8(); + TextDirection dir; + CString titleString = hit.title(dir).utf8(); CString urlString = url.prettyURL().utf8(); g_signal_emit_by_name(m_webView, "hovering-over-link", titleString.data(), urlString.data()); m_hoveredLinkURL = url; @@ -388,7 +432,7 @@ void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned mo } } -void ChromeClient::setToolTip(const String& toolTip) +void ChromeClient::setToolTip(const String& toolTip, TextDirection) { #if GTK_CHECK_VERSION(2,12,0) if (toolTip.isEmpty()) @@ -404,7 +448,14 @@ void ChromeClient::setToolTip(const String& toolTip) void ChromeClient::print(Frame* frame) { - webkit_web_frame_print(kit(frame)); + WebKitWebFrame* webFrame = kit(frame); + gboolean isHandled = false; + g_signal_emit_by_name(m_webView, "print-requested", webFrame, &isHandled); + + if (isHandled) + return; + + webkit_web_frame_print(webFrame); } #if ENABLE(DATABASE) @@ -461,4 +512,16 @@ void ChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser) gtk_widget_destroy(dialog); } +bool ChromeClient::setCursor(PlatformCursorHandle) +{ + notImplemented(); + return false; +} + +void ChromeClient::requestGeolocationPermissionForFrame(Frame*, Geolocation*) +{ + // See the comment in WebCore/page/ChromeClient.h + notImplemented(); +} + } diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h index bac9940..0f35e52 100644 --- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h @@ -67,8 +67,9 @@ namespace WebKit { virtual void setResizable(bool); - virtual void addMessageToConsole(const WebCore::String& message, unsigned int lineNumber, - const WebCore::String& sourceID); + virtual void addMessageToConsole(WebCore::MessageSource source, WebCore::MessageType type, + WebCore::MessageLevel level, const WebCore::String& message, + unsigned int lineNumber, const WebCore::String& sourceID); virtual bool canRunBeforeUnloadConfirmPanel(); virtual bool runBeforeUnloadConfirmPanel(const WebCore::String& message, WebCore::Frame* frame); @@ -93,7 +94,7 @@ namespace WebKit { virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags); - virtual void setToolTip(const WebCore::String&); + virtual void setToolTip(const WebCore::String&, WebCore::TextDirection); virtual void print(WebCore::Frame*); #if ENABLE(DATABASE) @@ -106,6 +107,13 @@ namespace WebKit { virtual void formStateDidChange(const WebCore::Node*) { } + virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; } + + virtual bool setCursor(WebCore::PlatformCursorHandle); + + virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const {} + virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*); + private: WebKitWebView* m_webView; WebCore::KURL m_hoveredLinkURL; diff --git a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp index 42d4813..bf47ca8 100644 --- a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp @@ -26,8 +26,8 @@ #include "KURL.h" #include "NotImplemented.h" +#include <glib/gi18n-lib.h> #include <glib-object.h> -#include <glib/gi18n.h> #include <gtk/gtk.h> #include "webkitprivate.h" @@ -165,20 +165,10 @@ void ContextMenuClient::contextMenuItemSelected(ContextMenuItem*, const ContextM void ContextMenuClient::downloadURL(const KURL& url) { - WebKitNetworkRequest* network_request = webkit_network_request_new(url.string().utf8().data()); - WebKitDownload* download = webkit_download_new(network_request); - g_object_unref(network_request); + WebKitNetworkRequest* networkRequest = webkit_network_request_new(url.string().utf8().data()); - gboolean handled; - g_signal_emit_by_name(m_webView, "download-requested", download, &handled); - - if (!handled) { - webkit_download_cancel(download); - g_object_unref(download); - return; - } - - webkit_download_start(download); + webkit_web_view_request_download(m_webView, networkRequest); + g_object_unref(networkRequest); } void ContextMenuClient::copyImageToClipboard(const HitTestResult&) @@ -206,5 +196,11 @@ void ContextMenuClient::stopSpeaking() notImplemented(); } +bool ContextMenuClient::isSpeaking() +{ + notImplemented(); + return false; +} + } diff --git a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h index 52f7ad7..d320c0e 100644 --- a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h @@ -52,6 +52,7 @@ namespace WebKit { virtual void lookUpInDictionary(WebCore::Frame*); virtual void speak(const WebCore::String&); virtual void stopSpeaking(); + virtual bool isSpeaking(); private: WebKitWebView* m_webView; diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp index a1f2509..b5148d8 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp @@ -1,6 +1,9 @@ /* * Copyright (C) 2007 Alp Toker <alp@atoker.com> * Copyright (C) 2008 Nuanti Ltd. + * Copyright (C) 2009 Diego Escalante Urrelo <diegoe@gnome.org> + * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2009, Igalia S.L. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,8 +26,11 @@ #include "CString.h" #include "EditCommand.h" #include "Editor.h" +#include <enchant.h> +#include "EventNames.h" #include "FocusController.h" #include "Frame.h" +#include <glib.h> #include "KeyboardCodes.h" #include "KeyboardEvent.h" #include "NotImplemented.h" @@ -33,6 +39,12 @@ #include "markup.h" #include "webkitprivate.h" +// Arbitrary depth limit for the undo stack, to keep it from using +// unbounded memory. This is the maximum number of distinct undoable +// actions -- unbroken stretches of typed characters are coalesced +// into a single action. +#define maximumUndoStackDepth 1000 + using namespace WebCore; namespace WebKit { @@ -102,8 +114,12 @@ bool EditorClient::shouldShowDeleteInterface(HTMLElement*) bool EditorClient::isContinuousSpellCheckingEnabled() { - notImplemented(); - return false; + WebKitWebSettings* settings = webkit_web_view_get_settings(m_webView); + + gboolean enabled; + g_object_get(settings, "enable-spell-checking", &enabled, NULL); + + return enabled; } bool EditorClient::isGrammarCheckingEnabled() @@ -164,7 +180,6 @@ void EditorClient::respondToChangedContents() notImplemented(); } -#if GTK_CHECK_VERSION(2,10,0) static void clipboard_get_contents_cb(GtkClipboard* clipboard, GtkSelectionData* selection_data, guint info, gpointer data) { WebKitWebView* webView = reinterpret_cast<WebKitWebView*>(data); @@ -189,7 +204,6 @@ static void clipboard_clear_contents_cb(GtkClipboard* clipboard, gpointer data) // Collapse the selection without clearing it frame->selection()->setBase(frame->selection()->extent(), frame->selection()->affinity()); } -#endif void EditorClient::respondToChangedSelection() { @@ -202,7 +216,6 @@ void EditorClient::respondToChangedSelection() if (targetFrame->editor()->ignoreCompositionSelectionChange()) return; -#if GTK_CHECK_VERSION(2,10,0) GtkClipboard* clipboard = gtk_widget_get_clipboard(GTK_WIDGET(m_webView), GDK_SELECTION_PRIMARY); if (targetFrame->selection()->isRange()) { GtkTargetList* targetList = webkit_web_view_get_copy_target_list(m_webView); @@ -213,7 +226,6 @@ void EditorClient::respondToChangedSelection() gtk_target_table_free(targets, targetCount); } else if (gtk_clipboard_get_owner(clipboard) == G_OBJECT(m_webView)) gtk_clipboard_clear(clipboard); -#endif if (!targetFrame->editor()->hasComposition()) return; @@ -247,41 +259,58 @@ bool EditorClient::isEditable() return webkit_web_view_get_editable(m_webView); } -void EditorClient::registerCommandForUndo(WTF::PassRefPtr<WebCore::EditCommand>) +void EditorClient::registerCommandForUndo(WTF::PassRefPtr<WebCore::EditCommand> command) { - notImplemented(); + if (undoStack.size() == maximumUndoStackDepth) + undoStack.removeFirst(); + if (!m_isInRedo) + redoStack.clear(); + undoStack.append(command); } -void EditorClient::registerCommandForRedo(WTF::PassRefPtr<WebCore::EditCommand>) +void EditorClient::registerCommandForRedo(WTF::PassRefPtr<WebCore::EditCommand> command) { - notImplemented(); + redoStack.append(command); } void EditorClient::clearUndoRedoOperations() { - notImplemented(); + undoStack.clear(); + redoStack.clear(); } bool EditorClient::canUndo() const { - notImplemented(); - return false; + return !undoStack.isEmpty(); } bool EditorClient::canRedo() const { - notImplemented(); - return false; + return !redoStack.isEmpty(); } void EditorClient::undo() { - notImplemented(); + if (canUndo()) { + RefPtr<WebCore::EditCommand> command(*(--undoStack.end())); + undoStack.remove(--undoStack.end()); + // unapply will call us back to push this command onto the redo stack. + command->unapply(); + } } void EditorClient::redo() { - notImplemented(); + if (canRedo()) { + RefPtr<WebCore::EditCommand> command(*(--redoStack.end())); + redoStack.remove(--redoStack.end()); + + ASSERT(!m_isInRedo); + m_isInRedo = true; + // reapply will call us back to push this command onto the undo stack. + command->reapply(); + m_isInRedo = false; + } } bool EditorClient::shouldInsertNode(Node*, Range*, EditorInsertAction) @@ -309,150 +338,197 @@ bool EditorClient::isSelectTrailingWhitespaceEnabled() void EditorClient::toggleContinuousSpellChecking() { - notImplemented(); + WebKitWebSettings* settings = webkit_web_view_get_settings(m_webView); + + gboolean enabled; + g_object_get(settings, "enable-spell-checking", &enabled, NULL); + + g_object_set(settings, "enable-spell-checking", !enabled, NULL); } void EditorClient::toggleGrammarChecking() { } -void EditorClient::handleKeyboardEvent(KeyboardEvent* event) -{ - Frame* frame = core(m_webView)->focusController()->focusedOrMainFrame(); - if (!frame || !frame->document()->focusedNode()) - return; +static const unsigned CtrlKey = 1 << 0; +static const unsigned AltKey = 1 << 1; +static const unsigned ShiftKey = 1 << 2; + +struct KeyDownEntry { + unsigned virtualKey; + unsigned modifiers; + const char* name; +}; + +struct KeyPressEntry { + unsigned charCode; + unsigned modifiers; + const char* name; +}; + +static const KeyDownEntry keyDownEntries[] = { + { VK_LEFT, 0, "MoveLeft" }, + { VK_LEFT, ShiftKey, "MoveLeftAndModifySelection" }, + { VK_LEFT, CtrlKey, "MoveWordLeft" }, + { VK_LEFT, CtrlKey | ShiftKey, "MoveWordLeftAndModifySelection" }, + { VK_RIGHT, 0, "MoveRight" }, + { VK_RIGHT, ShiftKey, "MoveRightAndModifySelection" }, + { VK_RIGHT, CtrlKey, "MoveWordRight" }, + { VK_RIGHT, CtrlKey | ShiftKey, "MoveWordRightAndModifySelection" }, + { VK_UP, 0, "MoveUp" }, + { VK_UP, ShiftKey, "MoveUpAndModifySelection" }, + { VK_PRIOR, ShiftKey, "MovePageUpAndModifySelection" }, + { VK_DOWN, 0, "MoveDown" }, + { VK_DOWN, ShiftKey, "MoveDownAndModifySelection" }, + { VK_NEXT, ShiftKey, "MovePageDownAndModifySelection" }, + { VK_PRIOR, 0, "MovePageUp" }, + { VK_NEXT, 0, "MovePageDown" }, + { VK_HOME, 0, "MoveToBeginningOfLine" }, + { VK_HOME, ShiftKey, "MoveToBeginningOfLineAndModifySelection" }, + { VK_HOME, CtrlKey, "MoveToBeginningOfDocument" }, + { VK_HOME, CtrlKey | ShiftKey, "MoveToBeginningOfDocumentAndModifySelection" }, + + { VK_END, 0, "MoveToEndOfLine" }, + { VK_END, ShiftKey, "MoveToEndOfLineAndModifySelection" }, + { VK_END, CtrlKey, "MoveToEndOfDocument" }, + { VK_END, CtrlKey | ShiftKey, "MoveToEndOfDocumentAndModifySelection" }, + + { VK_BACK, 0, "DeleteBackward" }, + { VK_BACK, ShiftKey, "DeleteBackward" }, + { VK_DELETE, 0, "DeleteForward" }, + { VK_BACK, CtrlKey, "DeleteWordBackward" }, + { VK_DELETE, CtrlKey, "DeleteWordForward" }, + + { 'B', CtrlKey, "ToggleBold" }, + { 'I', CtrlKey, "ToggleItalic" }, + + { VK_ESCAPE, 0, "Cancel" }, + { VK_OEM_PERIOD, CtrlKey, "Cancel" }, + { VK_TAB, 0, "InsertTab" }, + { VK_TAB, ShiftKey, "InsertBacktab" }, + { VK_RETURN, 0, "InsertNewline" }, + { VK_RETURN, CtrlKey, "InsertNewline" }, + { VK_RETURN, AltKey, "InsertNewline" }, + { VK_RETURN, AltKey | ShiftKey, "InsertNewline" }, + + // It's not quite clear whether Undo/Redo should be handled + // in the application or in WebKit. We chose WebKit. + { 'Z', CtrlKey, "Undo" }, + { 'Z', CtrlKey | ShiftKey, "Redo" }, +}; + +static const KeyPressEntry keyPressEntries[] = { + { '\t', 0, "InsertTab" }, + { '\t', ShiftKey, "InsertBacktab" }, + { '\r', 0, "InsertNewline" }, + { '\r', CtrlKey, "InsertNewline" }, + { '\r', AltKey, "InsertNewline" }, + { '\r', AltKey | ShiftKey, "InsertNewline" }, +}; + +static const char* interpretKeyEvent(const KeyboardEvent* evt) +{ + ASSERT(evt->type() == eventNames().keydownEvent || evt->type() == eventNames().keypressEvent); + + static HashMap<int, const char*>* keyDownCommandsMap = 0; + static HashMap<int, const char*>* keyPressCommandsMap = 0; + + if (!keyDownCommandsMap) { + keyDownCommandsMap = new HashMap<int, const char*>; + keyPressCommandsMap = new HashMap<int, const char*>; + + for (unsigned i = 0; i < G_N_ELEMENTS(keyDownEntries); i++) + keyDownCommandsMap->set(keyDownEntries[i].modifiers << 16 | keyDownEntries[i].virtualKey, keyDownEntries[i].name); + + for (unsigned i = 0; i < G_N_ELEMENTS(keyPressEntries); i++) + keyPressCommandsMap->set(keyPressEntries[i].modifiers << 16 | keyPressEntries[i].charCode, keyPressEntries[i].name); + } - const PlatformKeyboardEvent* kevent = event->keyEvent(); - if (!kevent || kevent->type() == PlatformKeyboardEvent::KeyUp) - return; + unsigned modifiers = 0; + if (evt->shiftKey()) + modifiers |= ShiftKey; + if (evt->altKey()) + modifiers |= AltKey; + if (evt->ctrlKey()) + modifiers |= CtrlKey; + + if (evt->type() == eventNames().keydownEvent) { + int mapKey = modifiers << 16 | evt->keyCode(); + return mapKey ? keyDownCommandsMap->get(mapKey) : 0; + } - Node* start = frame->selection()->start().node(); - if (!start) - return; + int mapKey = modifiers << 16 | evt->charCode(); + return mapKey ? keyPressCommandsMap->get(mapKey) : 0; +} + +static bool handleEditingKeyboardEvent(KeyboardEvent* evt) +{ + Node* node = evt->target()->toNode(); + ASSERT(node); + Frame* frame = node->document()->frame(); + ASSERT(frame); + + const PlatformKeyboardEvent* keyEvent = evt->keyEvent(); + if (!keyEvent) + return false; - // FIXME: Use GtkBindingSet instead of this hard-coded switch - // http://bugs.webkit.org/show_bug.cgi?id=15911 - - if (start->isContentEditable()) { - switch (kevent->windowsVirtualKeyCode()) { - case VK_BACK: - frame->editor()->deleteWithDirection(SelectionController::BACKWARD, - kevent->ctrlKey() ? WordGranularity : CharacterGranularity, false, true); - break; - case VK_DELETE: - frame->editor()->deleteWithDirection(SelectionController::FORWARD, - kevent->ctrlKey() ? WordGranularity : CharacterGranularity, false, true); - break; + bool caretBrowsing = frame->settings()->caretBrowsingEnabled(); + if (caretBrowsing) { + switch (keyEvent->windowsVirtualKeyCode()) { case VK_LEFT: - frame->selection()->modify(kevent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, SelectionController::LEFT, - kevent->ctrlKey() ? WordGranularity : CharacterGranularity, + keyEvent->ctrlKey() ? WordGranularity : CharacterGranularity, true); - break; + return true; case VK_RIGHT: - frame->selection()->modify(kevent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, SelectionController::RIGHT, - kevent->ctrlKey() ? WordGranularity : CharacterGranularity, + keyEvent->ctrlKey() ? WordGranularity : CharacterGranularity, true); - break; + return true; case VK_UP: - frame->selection()->modify(kevent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, SelectionController::BACKWARD, - kevent->ctrlKey() ? ParagraphGranularity : LineGranularity, + keyEvent->ctrlKey() ? ParagraphGranularity : LineGranularity, true); - break; + return true; case VK_DOWN: - frame->selection()->modify(kevent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, SelectionController::FORWARD, - kevent->ctrlKey() ? ParagraphGranularity : LineGranularity, + keyEvent->ctrlKey() ? ParagraphGranularity : LineGranularity, true); - break; - case VK_PRIOR: // PageUp - frame->editor()->command(kevent->shiftKey() ? "MovePageUpAndModifySelection" : "MovePageUp").execute(); - break; - case VK_NEXT: // PageDown - frame->editor()->command(kevent->shiftKey() ? "MovePageDownAndModifySelection" : "MovePageDown").execute(); - break; - case VK_HOME: - if (kevent->ctrlKey() && kevent->shiftKey()) - frame->editor()->command("MoveToBeginningOfDocumentAndModifySelection").execute(); - else if (kevent->ctrlKey()) - frame->editor()->command("MoveToBeginningOfDocument").execute(); - else if (kevent->shiftKey()) - frame->editor()->command("MoveToBeginningOfLineAndModifySelection").execute(); - else - frame->editor()->command("MoveToBeginningOfLine").execute(); - break; - case VK_END: - if (kevent->ctrlKey() && kevent->shiftKey()) - frame->editor()->command("MoveToEndOfDocumentAndModifySelection").execute(); - else if (kevent->ctrlKey()) - frame->editor()->command("MoveToEndOfDocument").execute(); - else if (kevent->shiftKey()) - frame->editor()->command("MoveToEndOfLineAndModifySelection").execute(); - else - frame->editor()->command("MoveToEndOfLine").execute(); - break; - case VK_RETURN: - frame->editor()->command("InsertLineBreak").execute(); - break; - case VK_TAB: - return; - default: - if (!kevent->ctrlKey() && !kevent->altKey() && !kevent->text().isEmpty()) { - if (kevent->text().length() == 1) { - UChar ch = kevent->text()[0]; - // Don't insert null or control characters as they can result in unexpected behaviour - if (ch < ' ') - break; - } - frame->editor()->insertText(kevent->text(), event); - } else if (kevent->ctrlKey()) { - switch (kevent->windowsVirtualKeyCode()) { - case VK_B: - frame->editor()->command("ToggleBold").execute(); - break; - case VK_I: - frame->editor()->command("ToggleItalic").execute(); - break; - case VK_Y: - frame->editor()->command("Redo").execute(); - break; - case VK_Z: - frame->editor()->command("Undo").execute(); - break; - default: - return; - } - } else return; - } - } else { - switch (kevent->windowsVirtualKeyCode()) { - case VK_UP: - frame->editor()->command("MoveUp").execute(); - break; - case VK_DOWN: - frame->editor()->command("MoveDown").execute(); - break; - case VK_PRIOR: // PageUp - frame->editor()->command("MovePageUp").execute(); - break; - case VK_NEXT: // PageDown - frame->editor()->command("MovePageDown").execute(); - break; - case VK_HOME: - if (kevent->ctrlKey()) - frame->editor()->command("MoveToBeginningOfDocument").execute(); - break; - case VK_END: - if (kevent->ctrlKey()) - frame->editor()->command("MoveToEndOfDocument").execute(); - break; - default: - return; + return true; } } - event->setDefaultHandled(); + + Editor::Command command = frame->editor()->command(interpretKeyEvent(evt)); + + if (keyEvent->type() == PlatformKeyboardEvent::RawKeyDown) { + // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated, + // so we leave it upon WebCore to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated + // (e.g. Tab that inserts a Tab character, or Enter). + return !command.isTextInsertion() && command.execute(evt); + } + + if (command.execute(evt)) + return true; + + // Don't insert null or control characters as they can result in unexpected behaviour + if (evt->charCode() < ' ') + return false; + + // Don't insert anything if a modifier is pressed + if (keyEvent->ctrlKey() || keyEvent->altKey()) + return false; + + return frame->editor()->insertText(evt->keyEvent()->text(), evt); +} + +void EditorClient::handleKeyboardEvent(KeyboardEvent* event) +{ + if (handleEditingKeyboardEvent(event)) + event->setDefaultHandled(); } void EditorClient::handleInputMethodKeydown(KeyboardEvent* event) @@ -468,7 +544,8 @@ void EditorClient::handleInputMethodKeydown(KeyboardEvent* event) } EditorClient::EditorClient(WebKitWebView* webView) - : m_webView(webView) + : m_isInRedo(false) + , m_webView(webView) { WebKitWebViewPrivate* priv = m_webView->priv; g_signal_connect(priv->imContext, "commit", G_CALLBACK(imContextCommitted), this); @@ -509,19 +586,90 @@ void EditorClient::textDidChangeInTextArea(Element*) notImplemented(); } -void EditorClient::ignoreWordInSpellDocument(const String&) +void EditorClient::ignoreWordInSpellDocument(const String& text) { - notImplemented(); + GSList* langs = webkit_web_settings_get_spell_languages(m_webView); + + for (; langs; langs = langs->next) { + SpellLanguage* lang = static_cast<SpellLanguage*>(langs->data); + + enchant_dict_add_to_session(lang->speller, text.utf8().data(), -1); + } } -void EditorClient::learnWord(const String&) +void EditorClient::learnWord(const String& text) { - notImplemented(); + GSList* langs = webkit_web_settings_get_spell_languages(m_webView); + + for (; langs; langs = langs->next) { + SpellLanguage* lang = static_cast<SpellLanguage*>(langs->data); + + enchant_dict_add_to_personal(lang->speller, text.utf8().data(), -1); + } } -void EditorClient::checkSpellingOfString(const UChar*, int, int*, int*) +void EditorClient::checkSpellingOfString(const UChar* text, int length, int* misspellingLocation, int* misspellingLength) +{ + gchar* ctext = g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0); + int utflen = g_utf8_strlen(ctext, -1); + + PangoLanguage* language = pango_language_get_default(); + PangoLogAttr* attrs = g_new(PangoLogAttr, utflen+1); + + // pango_get_log_attrs uses an aditional position at the end of the text. + pango_get_log_attrs(ctext, -1, -1, language, attrs, utflen+1); + + for (int i = 0; i < length+1; i++) { + // We go through each character until we find an is_word_start, + // then we get into an inner loop to find the is_word_end corresponding + // to it. + if (attrs[i].is_word_start) { + int start = i; + int end = i; + int wordLength; + GSList* langs = webkit_web_settings_get_spell_languages(m_webView); + + while (attrs[end].is_word_end < 1) + end++; + + wordLength = end - start; + // Set the iterator to be at the current word end, so we don't + // check characters twice. + i = end; + + for (; langs; langs = langs->next) { + SpellLanguage* lang = static_cast<SpellLanguage*>(langs->data); + gchar* cstart = g_utf8_offset_to_pointer(ctext, start); + gint bytes = static_cast<gint>(g_utf8_offset_to_pointer(ctext, end) - cstart); + gchar* word = g_new0(gchar, bytes+1); + int result; + + g_utf8_strncpy(word, cstart, end - start); + + result = enchant_dict_check(lang->speller, word, -1); + g_free(word); + if (result) { + *misspellingLocation = start; + *misspellingLength = wordLength; + } else { + // Stop checking, this word is ok in at least one dict. + *misspellingLocation = -1; + *misspellingLength = 0; + break; + } + } + } + } + + g_free(attrs); + g_free(ctext); +} + +String EditorClient::getAutoCorrectSuggestionForMisspelledWord(const String& inputWord) { - notImplemented(); + // This method can be implemented using customized algorithms for the particular browser. + // Currently, it computes an empty string. + return String(); } void EditorClient::checkGrammarOfString(const UChar*, int, Vector<GrammarDetail>&, int*, int*) @@ -550,9 +698,24 @@ bool EditorClient::spellingUIIsShowing() return false; } -void EditorClient::getGuessesForWord(const String&, Vector<String>&) +void EditorClient::getGuessesForWord(const String& word, WTF::Vector<String>& guesses) { - notImplemented(); + GSList* langs = webkit_web_settings_get_spell_languages(m_webView); + guesses.clear(); + + for (; langs; langs = langs->next) { + size_t numberOfSuggestions; + size_t i; + + SpellLanguage* lang = static_cast<SpellLanguage*>(langs->data); + gchar** suggestions = enchant_dict_suggest(lang->speller, word.utf8().data(), -1, &numberOfSuggestions); + + for (i = 0; i < numberOfSuggestions && i < 10; i++) + guesses.append(String::fromUTF8(suggestions[i])); + + if (numberOfSuggestions > 0) + enchant_dict_free_suggestions(lang->speller, suggestions); + } } } diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h index 14514f5..68034cf 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h @@ -32,6 +32,7 @@ #include "EditorClient.h" +#include <wtf/Deque.h> #include <wtf/Forward.h> typedef struct _WebKitWebView WebKitWebView; @@ -43,6 +44,12 @@ namespace WebCore { namespace WebKit { class EditorClient : public WebCore::EditorClient { + protected: + bool m_isInRedo; + + WTF::Deque<WTF::RefPtr<WebCore::EditCommand> > undoStack; + WTF::Deque<WTF::RefPtr<WebCore::EditCommand> > redoStack; + public: EditorClient(WebKitWebView*); ~EditorClient(); @@ -102,6 +109,7 @@ namespace WebKit { virtual void ignoreWordInSpellDocument(const WebCore::String&); virtual void learnWord(const WebCore::String&); virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength); + virtual WebCore::String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&); virtual void checkGrammarOfString(const UChar*, int length, WTF::Vector<WebCore::GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength); virtual void updateSpellingUIWithGrammarString(const WebCore::String&, const WebCore::GrammarDetail&); virtual void updateSpellingUIWithMisspelledWord(const WebCore::String&); diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp index a54aecc..68c0435 100644 --- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com> - * Copyright (C) 2007, 2008 Holger Hans Peter Freyther + * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther * Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> * Copyright (C) 2008 Collabora Ltd. All rights reserved. * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> @@ -29,6 +29,8 @@ #include "FrameLoader.h" #include "FrameView.h" #include "FrameTree.h" +#include "GOwnPtr.h" +#include "GtkPluginWidget.h" #include "HTMLAppletElement.h" #include "HTMLFormElement.h" #include "HTMLFrameElement.h" @@ -49,18 +51,19 @@ #include "ProgressTracker.h" #include "JSDOMBinding.h" #include "ScriptController.h" -#include "webkitwebview.h" +#include "webkiterror.h" #include "webkitnetworkrequest.h" +#include "webkitprivate.h" #include "webkitwebframe.h" #include "webkitwebnavigationaction.h" #include "webkitwebpolicydecision.h" -#include "webkitprivate.h" +#include "webkitwebview.h" #include <JavaScriptCore/APICast.h> +#include <gio/gio.h> +#include <glib.h> +#include <glib/gi18n-lib.h> #include <stdio.h> -#if PLATFORM(UNIX) -#include <sys/utsname.h> -#endif using namespace WebCore; @@ -68,7 +71,6 @@ namespace WebKit { FrameLoaderClient::FrameLoaderClient(WebKitWebFrame* frame) : m_frame(frame) - , m_userAgent("") , m_policyDecision(0) , m_pluginView(0) , m_hasSentResponseToPlugin(false) @@ -82,86 +84,29 @@ FrameLoaderClient::~FrameLoaderClient() g_object_unref(m_policyDecision); } -static String agentPlatform() -{ -#ifdef GDK_WINDOWING_X11 - return "X11"; -#elif defined(GDK_WINDOWING_WIN32) - return "Windows"; -#elif defined(GDK_WINDOWING_QUARTZ) - return "Macintosh"; -#elif defined(GDK_WINDOWING_DIRECTFB) - return "DirectFB"; -#else - notImplemented(); - return "Unknown"; -#endif -} - -static String agentOS() +String FrameLoaderClient::userAgent(const KURL&) { -#if PLATFORM(DARWIN) -#if PLATFORM(X86) - return "Intel Mac OS X"; -#else - return "PPC Mac OS X"; -#endif -#elif PLATFORM(UNIX) - struct utsname name; - if (uname(&name) != -1) - return String::format("%s %s", name.sysname, name.machine); - else - return "Unknown"; -#elif PLATFORM(WIN_OS) - // FIXME: Compute the Windows version - return "Windows"; -#else - notImplemented(); - return "Unknown"; -#endif + WebKitWebSettings* settings = webkit_web_view_get_settings(getViewFromFrame(m_frame)); + return String::fromUTF8(webkit_web_settings_get_user_agent(settings)); } -static String composeUserAgent() +static void notifyStatus(WebKitWebFrame* frame, WebKitLoadStatus loadStatus) { - // This is a liberal interpretation of http://www.mozilla.org/build/revised-user-agent-strings.html - // See also http://developer.apple.com/internet/safari/faq.html#anchor2 - - String ua; - - // Product - ua += "Mozilla/5.0"; - - // Comment - ua += " ("; - ua += agentPlatform(); // Platform - ua += "; U; "; // Security - ua += agentOS(); // OS-or-CPU - ua += "; "; - ua += defaultLanguage(); // Localization information - ua += ") "; - - // WebKit Product - // FIXME: The WebKit version is hardcoded - static const String webKitVersion = "528.5+"; - ua += "AppleWebKit/" + webKitVersion; - ua += " (KHTML, like Gecko, "; - // We mention Safari since many broken sites check for it (OmniWeb does this too) - // We re-use the WebKit version, though it doesn't seem to matter much in practice - ua += "Safari/" + webKitVersion; - ua += ") "; + frame->priv->loadStatus = loadStatus; + g_object_notify(G_OBJECT(frame), "load-status"); - // Vendor Product - ua += g_get_prgname(); - - return ua; + WebKitWebView* webView = getViewFromFrame(frame); + if (frame == webkit_web_view_get_main_frame(webView)) { + webView->priv->loadStatus = loadStatus; + g_object_notify(G_OBJECT(webView), "load-status"); + } } -String FrameLoaderClient::userAgent(const KURL&) +static void loadDone(WebKitWebFrame* frame, bool didSucceed) { - if (m_userAgent.isEmpty()) - m_userAgent = composeUserAgent(); - - return m_userAgent; + // FIXME: load-done is deprecated. Please remove when signal's been removed. + g_signal_emit_by_name(frame, "load-done", didSucceed); + notifyStatus(frame, WEBKIT_LOAD_FINISHED); } WTF::PassRefPtr<WebCore::DocumentLoader> FrameLoaderClient::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData) @@ -201,6 +146,13 @@ void FrameLoaderClient::committedLoad(DocumentLoader* loader, const char* data, m_pluginView->didReceiveResponse(loader->response()); m_hasSentResponseToPlugin = true; } + + // FIXME: We may want to investigate refactoring our plugin loading + // code to be similar to mac's. + // Also, see http://trac.webkit.org/changeset/24118. + if (!m_pluginView) + return; + m_pluginView->didReceiveData(data, length); } } @@ -236,6 +188,8 @@ void FrameLoaderClient::postProgressStartedNotification() { WebKitWebView* webView = getViewFromFrame(m_frame); g_signal_emit_by_name(webView, "load-started", m_frame); + + g_object_notify(G_OBJECT(webView), "progress"); } void FrameLoaderClient::postProgressEstimateChangedNotification() @@ -244,6 +198,8 @@ void FrameLoaderClient::postProgressEstimateChangedNotification() Page* corePage = core(webView); g_signal_emit_by_name(webView, "load-progress-changed", lround(corePage->progress()->estimatedProgress()*100)); + + g_object_notify(G_OBJECT(webView), "progress"); } void FrameLoaderClient::postProgressFinishedNotification() @@ -282,7 +238,7 @@ void FrameLoaderClient::dispatchDecidePolicyForMIMEType(FramePolicyFunction poli } WebKitWebView* page = getViewFromFrame(m_frame); - WebKitNetworkRequest* request = webkit_network_request_new(resourceRequest.url().string().utf8().data()); + WebKitNetworkRequest* request = webkit_network_request_new_with_core_request(resourceRequest); WebKitWebPolicyDecision* policyDecision = webkit_web_policy_decision_new(m_frame, policyFunction); if (m_policyDecision) @@ -303,7 +259,7 @@ void FrameLoaderClient::dispatchDecidePolicyForMIMEType(FramePolicyFunction poli webkit_web_policy_decision_ignore (policyDecision); } -static WebKitWebNavigationAction* getNavigationAction(const NavigationAction& action) +static WebKitWebNavigationAction* getNavigationAction(const NavigationAction& action, const char* targetFrame) { gint button = -1; @@ -333,10 +289,11 @@ static WebKitWebNavigationAction* getNavigationAction(const NavigationAction& ac "original-uri", action.url().string().utf8().data(), "button", button, "modifier-state", modifierFlags, + "target-frame", targetFrame, NULL)); } -void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>, const String& s) +void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>, const String& frameName) { ASSERT(policyFunction); if (!policyFunction) @@ -355,7 +312,7 @@ void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFuncti WebKitWebView* webView = getViewFromFrame(m_frame); WebKitNetworkRequest* request = webkit_network_request_new(resourceRequest.url().string().utf8().data()); - WebKitWebNavigationAction* navigationAction = getNavigationAction(action); + WebKitWebNavigationAction* navigationAction = getNavigationAction(action, frameName.utf8().data()); gboolean isHandled = false; g_signal_emit_by_name(webView, "new-window-policy-decision-requested", m_frame, request, navigationAction, policyDecision, &isHandled); @@ -381,7 +338,7 @@ void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunct } WebKitWebView* webView = getViewFromFrame(m_frame); - WebKitNetworkRequest* request = webkit_network_request_new(resourceRequest.url().string().utf8().data()); + WebKitNetworkRequest* request = webkit_network_request_new_with_core_request(resourceRequest); WebKitNavigationResponse response; /* * We still support the deprecated navigation-requested signal, if the @@ -403,7 +360,7 @@ void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunct g_object_unref(m_policyDecision); m_policyDecision = policyDecision; - WebKitWebNavigationAction* navigationAction = getNavigationAction(action); + WebKitWebNavigationAction* navigationAction = getNavigationAction(action, NULL); gboolean isHandled = false; g_signal_emit_by_name(webView, "navigation-policy-decision-requested", m_frame, request, navigationAction, policyDecision, &isHandled); @@ -415,9 +372,27 @@ void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunct webkit_web_policy_decision_use(m_policyDecision); } -Widget* FrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) +PassRefPtr<Widget> FrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) { - PluginView* pluginView = PluginView::create(core(m_frame), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually); + /* Check if we want to embed a GtkWidget, fallback to plugins later */ + CString urlString = url.string().utf8(); + CString mimeTypeString = mimeType.utf8(); + + ASSERT(paramNames.size() == paramValues.size()); + GOwnPtr<GHashTable> hash(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free)); + for (unsigned i = 0; i < paramNames.size(); ++i) { + g_hash_table_insert(hash.get(), + g_strdup(paramNames[i].utf8().data()), + g_strdup(paramValues[i].utf8().data())); + } + + GtkWidget* gtkWidget = 0; + g_signal_emit_by_name(getViewFromFrame(m_frame), "create-plugin-widget", + mimeTypeString.data(), urlString.data(), hash.get(), >kWidget); + if (gtkWidget) + return adoptRef(new GtkPluginWidget(gtkWidget)); + + RefPtr<PluginView> pluginView = PluginView::create(core(m_frame), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually); if (pluginView->status() == PluginStatusLoadedSuccessfully) return pluginView; @@ -438,7 +413,12 @@ PassRefPtr<Frame> FrameLoaderClient::createFrame(const KURL& url, const String& childFrame->tree()->setName(name); childFrame->init(); - childFrame->loader()->loadURL(url, referrer, String(), false, FrameLoadTypeRedirectWithLockedBackForwardList, 0, 0); + + // The creation of the frame may have run arbitrary JavaScript that removed it from the page already. + if (!childFrame->page()) + return 0; + + childFrame->loader()->loadURLIntoChildFrame(url, referrer, childFrame.get()); // The frame's onload handler may have removed it from the document. if (!childFrame->tree()->parent()) @@ -454,7 +434,7 @@ void FrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget) m_hasSentResponseToPlugin = false; } -Widget* FrameLoaderClient::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, +PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) { notImplemented(); @@ -540,7 +520,7 @@ bool FrameLoaderClient::hasWebView() const void FrameLoaderClient::dispatchDidFinishLoad() { - g_signal_emit_by_name(m_frame, "load-done", true); + loadDone(m_frame, true); } void FrameLoaderClient::frameLoadCompleted() @@ -624,6 +604,9 @@ void FrameLoaderClient::dispatchDidChangeLocationWithinPage() g_free(priv->uri); priv->uri = g_strdup(core(m_frame)->loader()->url().prettyURL().utf8().data()); g_object_notify(G_OBJECT(m_frame), "uri"); + WebKitWebView* webView = getViewFromFrame(m_frame); + if (m_frame == webkit_web_view_get_main_frame(webView)) + g_object_notify(G_OBJECT(webView), "uri"); } void FrameLoaderClient::dispatchWillClose() @@ -640,6 +623,7 @@ void FrameLoaderClient::dispatchDidReceiveIcon() void FrameLoaderClient::dispatchDidStartProvisionalLoad() { + notifyStatus(m_frame, WEBKIT_LOAD_PROVISIONAL); } void FrameLoaderClient::dispatchDidReceiveTitle(const String& title) @@ -674,6 +658,7 @@ void FrameLoaderClient::dispatchDidCommitLoad() g_object_notify(G_OBJECT(m_frame), "title"); g_signal_emit_by_name(m_frame, "load-committed"); + notifyStatus(m_frame, WEBKIT_LOAD_COMMITTED); WebKitWebView* webView = getViewFromFrame(m_frame); if (m_frame == webkit_web_view_get_main_frame(webView)) { @@ -699,7 +684,7 @@ void FrameLoaderClient::dispatchDidFirstLayout() void FrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout() { - notImplemented(); + notifyStatus(m_frame, WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT); } void FrameLoaderClient::dispatchShow() @@ -799,7 +784,13 @@ void FrameLoaderClient::dispatchDidFinishLoading(DocumentLoader*, unsigned long notImplemented(); } -void FrameLoaderClient::dispatchDidFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError&) +void FrameLoaderClient::dispatchDidFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError& error) +{ + // FIXME: when does this occur and what should happen? + notImplemented(); +} + +void FrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest(unsigned long, const ScriptString&) { notImplemented(); } @@ -810,73 +801,122 @@ bool FrameLoaderClient::dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, return false; } -void FrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError&) +void FrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error) { - g_signal_emit_by_name(m_frame, "load-done", false); + dispatchDidFailLoad(error); + + loadDone(m_frame, false); } -void FrameLoaderClient::dispatchDidFailLoad(const ResourceError&) +void FrameLoaderClient::dispatchDidFailLoad(const ResourceError& error) { - g_signal_emit_by_name(m_frame, "load-done", false); + WebKitWebView* webView = getViewFromFrame(m_frame); + GError* webError = g_error_new_literal(g_quark_from_string(error.domain().utf8().data()), + error.errorCode(), + error.localizedDescription().utf8().data()); + gboolean isHandled = false; + g_signal_emit_by_name(webView, "load-error", m_frame, error.failingURL().utf8().data(), webError, &isHandled); + + if (isHandled) { + g_error_free(webError); + return; + } + + if (!shouldFallBack(error)) { + g_error_free(webError); + loadDone(m_frame, false); + return; + } + + String content; + gchar* fileContent = 0; + gchar* errorURI = g_filename_to_uri(DATA_DIR"/webkit-1.0/resources/error.html", NULL, NULL); + GFile* errorFile = g_file_new_for_uri(errorURI); + g_free(errorURI); + + if (!errorFile) + content = String::format("<html><body>%s</body></html>", webError->message); + else { + gboolean loaded = g_file_load_contents(errorFile, 0, &fileContent, 0, 0, 0); + if (!loaded) + content = String::format("<html><body>%s</body></html>", webError->message); + else + content = String::format(fileContent, error.failingURL().utf8().data(), webError->message); + } + + webkit_web_frame_load_alternate_string(m_frame, content.utf8().data(), 0, error.failingURL().utf8().data()); + + g_free(fileContent); + + if (errorFile) + g_object_unref(errorFile); + + g_error_free(webError); + + loadDone(m_frame, false); } -void FrameLoaderClient::download(ResourceHandle* handle, const ResourceRequest& request, const ResourceRequest&, const ResourceResponse&) +void FrameLoaderClient::download(ResourceHandle* handle, const ResourceRequest& request, const ResourceRequest&, const ResourceResponse& response) { // FIXME: We could reuse the same handle here, but when I tried // implementing that the main load would fail and stop, so I have // simplified this case for now. handle->cancel(); - startDownload(request); + + WebKitNetworkRequest* networkRequest = webkit_network_request_new(request.url().string().utf8().data()); + WebKitWebView* view = getViewFromFrame(m_frame); + + webkit_web_view_request_download(view, networkRequest, response); + g_object_unref(networkRequest); } -ResourceError FrameLoaderClient::cancelledError(const ResourceRequest&) +ResourceError FrameLoaderClient::cancelledError(const ResourceRequest& request) { - notImplemented(); - ResourceError error("", 0, "", ""); - error.setIsCancellation(true); - return error; + return ResourceError(g_quark_to_string(WEBKIT_NETWORK_ERROR), WEBKIT_NETWORK_ERROR_CANCELLED, + request.url().string(), _("Load request cancelled")); } -ResourceError FrameLoaderClient::blockedError(const ResourceRequest&) +ResourceError FrameLoaderClient::blockedError(const ResourceRequest& request) { - notImplemented(); - return ResourceError("", 0, "", ""); + return ResourceError(g_quark_to_string(WEBKIT_POLICY_ERROR), WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT, + request.url().string(), _("Not allowed to use restricted network port")); } -ResourceError FrameLoaderClient::cannotShowURLError(const ResourceRequest&) +ResourceError FrameLoaderClient::cannotShowURLError(const ResourceRequest& request) { - notImplemented(); - return ResourceError("", 0, "", ""); + return ResourceError(g_quark_to_string(WEBKIT_POLICY_ERROR), WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL, + request.url().string(), _("URL cannot be shown")); } -ResourceError FrameLoaderClient::interruptForPolicyChangeError(const ResourceRequest&) +ResourceError FrameLoaderClient::interruptForPolicyChangeError(const ResourceRequest& request) { - notImplemented(); - return ResourceError("", 0, "", ""); + return ResourceError(g_quark_to_string(WEBKIT_POLICY_ERROR), WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE, + request.url().string(), _("Frame load was interrupted")); } -ResourceError FrameLoaderClient::cannotShowMIMETypeError(const ResourceResponse&) +ResourceError FrameLoaderClient::cannotShowMIMETypeError(const ResourceResponse& response) { - notImplemented(); - return ResourceError("", 0, "", ""); + return ResourceError(g_quark_to_string(WEBKIT_POLICY_ERROR), WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE, + response.url().string(), _("Content with the specified MIME type cannot be shown")); } -ResourceError FrameLoaderClient::fileDoesNotExistError(const ResourceResponse&) +ResourceError FrameLoaderClient::fileDoesNotExistError(const ResourceResponse& response) { - notImplemented(); - return ResourceError("", 0, "", ""); + return ResourceError(g_quark_to_string(WEBKIT_NETWORK_ERROR), WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST, + response.url().string(), _("File does not exist")); } -ResourceError FrameLoaderClient::pluginWillHandleLoadError(const ResourceResponse&) +ResourceError FrameLoaderClient::pluginWillHandleLoadError(const ResourceResponse& response) { - notImplemented(); - return ResourceError("", 0, "", ""); + return ResourceError(g_quark_to_string(WEBKIT_PLUGIN_ERROR), WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD, + response.url().string(), _("Plugin will handle load")); } -bool FrameLoaderClient::shouldFallBack(const ResourceError&) +bool FrameLoaderClient::shouldFallBack(const ResourceError& error) { - notImplemented(); - return false; + // FIXME: Mac checks for WebKitErrorPlugInWillHandleLoad here to avoid + // loading plugin content twice. Do we need it? + return !(error.isCancellation() || error.errorCode() == WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE); } bool FrameLoaderClient::canCachePage() const @@ -914,21 +954,11 @@ void FrameLoaderClient::setMainDocumentError(DocumentLoader*, const ResourceErro void FrameLoaderClient::startDownload(const ResourceRequest& request) { - WebKitNetworkRequest* networkRequest = webkit_network_request_new(request.url().string().utf8().data()); - WebKitDownload* download = webkit_download_new(networkRequest); - g_object_unref(networkRequest); - + WebKitNetworkRequest* networkRequest = webkit_network_request_new_with_core_request(request); WebKitWebView* view = getViewFromFrame(m_frame); - gboolean handled; - g_signal_emit_by_name(view, "download-requested", download, &handled); - if (!handled) { - webkit_download_cancel(download); - g_object_unref(download); - return; - } - - webkit_download_start(download); + webkit_web_view_request_download(view, networkRequest); + g_object_unref(networkRequest); } void FrameLoaderClient::updateGlobalHistory() diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h index cb4786d..bc64c2f 100644 --- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h @@ -69,6 +69,7 @@ namespace WebKit { virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier); virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&); virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length); + virtual void dispatchDidLoadResourceByXMLHttpRequest(unsigned long, const WebCore::ScriptString&); virtual void dispatchDidHandleOnloadEvents(); virtual void dispatchDidReceiveServerRedirectForProvisionalLoad(); @@ -109,9 +110,9 @@ namespace WebKit { virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight); - virtual WebCore::Widget* createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WebCore::String>&, const WTF::Vector<WebCore::String>&, const WebCore::String&, bool); + virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WebCore::String>&, const WTF::Vector<WebCore::String>&, const WebCore::String&, bool); virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget); - virtual WebCore::Widget* createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues); + virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues); virtual WebCore::String overrideMediaType() const; virtual void windowObjectCleared(); virtual void documentElementAvailable(); @@ -172,7 +173,6 @@ namespace WebKit { private: WebKitWebFrame* m_frame; WebCore::ResourceResponse m_response; - WebCore::String m_userAgent; WebKitWebPolicyDecision* m_policyDecision; // Plugin view to redirect data to diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp index faa3e28..908bffa 100644 --- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp @@ -92,7 +92,10 @@ Page* InspectorClient::createPage() g_signal_connect(m_webView, "destroy", G_CALLBACK(notifyWebViewDestroyed), (gpointer)this); - webkit_web_view_open(m_webView, "file://"DATA_DIR"/webkit-1.0/webinspector/inspector.html"); + gchar* inspectorURI = g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/inspector.html", NULL, NULL); + webkit_web_view_load_uri(m_webView, inspectorURI); + g_free(inspectorURI); + gtk_widget_show(GTK_WIDGET(m_webView)); return core(m_webView); @@ -100,8 +103,8 @@ Page* InspectorClient::createPage() String InspectorClient::localizedStringsURL() { - notImplemented(); - return String(); + // FIXME: support l10n of localizedStrings.js + return String::fromUTF8(g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/localizedStrings.js", NULL, NULL)); } String InspectorClient::hiddenPanels() @@ -173,6 +176,12 @@ void InspectorClient::inspectedURLChanged(const String& newURL) webkit_web_inspector_set_inspected_uri(m_webInspector, newURL.utf8().data()); } +void InspectorClient::inspectorWindowObjectCleared() +{ + notImplemented(); +} + + void InspectorClient::populateSetting(const String& key, InspectorController::Setting& setting) { notImplemented(); diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h index 43894b3..ed9fe08 100644 --- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h @@ -70,6 +70,8 @@ namespace WebKit { virtual void storeSetting(const WebCore::String& key, const WebCore::InspectorController::Setting&); virtual void removeSetting(const WebCore::String& key); + virtual void inspectorWindowObjectCleared(); + private: WebKitWebView* m_webView; WebKitWebView* m_inspectedWebView; diff --git a/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp b/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp index ad8b077..5a7157e 100644 --- a/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Luca Bruno <lethalman88@gmail.com> + * Copyright (C) 2009 Holger Hans Peter Freyther * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,21 +29,40 @@ using namespace WebCore; -namespace WebKit +namespace WebKit { + +GtkClipboard* PasteboardHelperGtk::getCurrentTarget(Frame* frame) const { + WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame)); + + if (webkit_web_view_use_primary_for_paste(webView)) + return getPrimary(frame); + else + return getClipboard(frame); +} -GtkClipboard* PasteboardHelperGtk::getClipboard(Frame* frame) const { +GtkClipboard* PasteboardHelperGtk::getClipboard(Frame* frame) const +{ WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame)); return gtk_widget_get_clipboard(GTK_WIDGET (webView), GDK_SELECTION_CLIPBOARD); } -GtkTargetList* PasteboardHelperGtk::getCopyTargetList(Frame* frame) const { +GtkClipboard* PasteboardHelperGtk::getPrimary(Frame* frame) const +{ + WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame)); + return gtk_widget_get_clipboard(GTK_WIDGET (webView), + GDK_SELECTION_PRIMARY); +} + +GtkTargetList* PasteboardHelperGtk::getCopyTargetList(Frame* frame) const +{ WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame)); return webkit_web_view_get_copy_target_list(webView); } -GtkTargetList* PasteboardHelperGtk::getPasteTargetList(Frame* frame) const { +GtkTargetList* PasteboardHelperGtk::getPasteTargetList(Frame* frame) const +{ WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame)); return webkit_web_view_get_paste_target_list(webView); } diff --git a/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h b/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h index 77e0457..4e66357 100644 --- a/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h +++ b/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Luca Bruno <lethalman88@gmail.com> + * Copyright (C) 2009 Holger Hans Peter Freyther * All rights reserved. * * This library is free software; you can redistribute it and/or @@ -39,7 +40,9 @@ namespace WebKit { class PasteboardHelperGtk : public PasteboardHelper { public: PasteboardHelperGtk() { } + virtual GtkClipboard* getCurrentTarget(Frame*) const; virtual GtkClipboard* getClipboard(Frame*) const; + virtual GtkClipboard* getPrimary(Frame*) const; virtual GtkTargetList* getCopyTargetList(Frame*) const; virtual GtkTargetList* getPasteTargetList(Frame*) const; }; diff --git a/WebKit/gtk/docs/GNUmakefile.am b/WebKit/gtk/docs/GNUmakefile.am new file mode 100644 index 0000000..b34dace --- /dev/null +++ b/WebKit/gtk/docs/GNUmakefile.am @@ -0,0 +1,104 @@ +## Process this file with automake to produce GNUmakefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=webkitgtk + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR=../webkit + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS="--type-init-func=g_thread_init(NULL);g_type_init()" + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS=--deprecated-guards="WEBKIT_DISABLE_DEPRECATED" --ignore-decorators="WEBKIT_API" + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS=--sgml-mode --output-format=xml --source-suffixes=h,c,cpp + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/WebKit/gtk/webkit/*.h +CFILE_GLOB=$(top_srcdir)/WebKit/gtk/webkit/*.cpp + +# Header files to ignore when scanning. +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES=webkitprivate.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files=webkitenvironment.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +INCLUDES= \ + -I$(top_srcdir)/WebKit/gtk \ + -I$(top_builddir)/WebKit/gtk \ + $(global_cppflags) \ + $(global_cflags) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/JavaScriptCore \ + -I$(top_srcdir)/JavaScriptCore/ForwardingHeaders \ + -I$(top_srcdir)/JavaScriptCore/parser \ + -I$(top_srcdir)/JavaScriptCore/wtf \ + -I$(top_builddir)/DerivedSources \ + $(GLOBALDEPS_CFLAGS) \ + $(CAIRO_CFLAGS) \ + $(GTK_CFLAGS) \ + $(LIBSOUP_CFLAGS) +GTKDOC_LIBS= \ + $(top_builddir)/libwebkit-1.0.la \ + $(GTK_LIBS) \ + $(LIBSOUP_LIBS) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want your docs-status tested during 'make check' +#TESTS = $(GTKDOC_CHECK) + diff --git a/WebKit/gtk/docs/version.xml.in b/WebKit/gtk/docs/version.xml.in new file mode 100644 index 0000000..d78bda9 --- /dev/null +++ b/WebKit/gtk/docs/version.xml.in @@ -0,0 +1 @@ +@VERSION@ diff --git a/WebKit/gtk/docs/webkitenvironment.xml b/WebKit/gtk/docs/webkitenvironment.xml new file mode 100644 index 0000000..03d64b7 --- /dev/null +++ b/WebKit/gtk/docs/webkitenvironment.xml @@ -0,0 +1,98 @@ +<?xml version="1.0"?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<refentry id="webkit-environment"> +<refmeta> +<refentrytitle>Environment</refentrytitle> +<manvolnum>7</manvolnum> +<refmiscinfo>WEBKITGTK Library</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>Environment</refname> +<refpurpose>How does the environment affect applications that use WebKitGTK+</refpurpose> +</refnamediv> + +<refsect2> +<title>Logging</title> + +<para> +You can make WebKitGTK+ log some of what it is doing internally by +using the <literal>WEBKIT_DEBUG</literal> environment variable. It +takes a space-separated list of names, representing the various +aspects of the work the library performs. Notice that most of the +logging is only done in debug builds (that you get when you pass +<literal>--enable-debug</literal> to the <literal>configure</literal> +script). +</para> + +<para> +A list of possible values for the environment variable follows: +</para> + +<variablelist> + <varlistentry> + <term>BackForward</term> + </varlistentry> + <varlistentry> + <term>Editing</term> + </varlistentry> + <varlistentry> + <term>Events</term> + </varlistentry> + <varlistentry> + <term>Frames</term> + </varlistentry> + <varlistentry> + <term>FTP</term> + </varlistentry> + <varlistentry> + <term>History</term> + </varlistentry> + <varlistentry> + <term>IconDatabase</term> + </varlistentry> + <varlistentry> + <term>Loading</term> + </varlistentry> + <varlistentry> + <term>Media</term> + </varlistentry> + <varlistentry> + <term>Network</term> + </varlistentry> + <varlistentry> + <term>NotYetImplemented</term> + </varlistentry> + <varlistentry> + <term>PageCache</term> + </varlistentry> + <varlistentry> + <term>PlatformLeaks</term> + </varlistentry> + <varlistentry> + <term>Plugin</term> + </varlistentry> + <varlistentry> + <term>PopupBlocking</term> + </varlistentry> + <varlistentry> + <term>SpellingAndGrammar</term> + </varlistentry> + <varlistentry> + <term>SQLDatabase</term> + </varlistentry> + <varlistentry> + <term>StorageAPI</term> + </varlistentry> + <varlistentry> + <term>TextConversion</term> + </varlistentry> + <varlistentry> + <term>Threading</term> + </varlistentry> +</variablelist> + +</refsect2> + +</refentry> diff --git a/WebKit/gtk/docs/webkitgtk-docs.sgml b/WebKit/gtk/docs/webkitgtk-docs.sgml index 655a991..402b41a 100644 --- a/WebKit/gtk/docs/webkitgtk-docs.sgml +++ b/WebKit/gtk/docs/webkitgtk-docs.sgml @@ -1,14 +1,12 @@ <?xml version="1.0"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ +<!ENTITY version SYSTEM "version.xml"> +]> <book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> <bookinfo> - <title>webkitgtk Reference Manual</title> - <releaseinfo> - for webkitgtk [VERSION] - The latest version of this documentation can be found on-line at - <ulink role="online-location" url="http://[SERVER]/webkitgtk/index.html">http://[SERVER]/webkitgtk/</ulink>. - </releaseinfo> + <title>WebKitGTK+ Reference Manual</title> + <releaseinfo>for WebKitGTK+ &version;</releaseinfo> </bookinfo> <chapter> @@ -18,16 +16,25 @@ <xi:include href="xml/webkitwebsettings.xml"/> <xi:include href="xml/webkitwebbackforwardlist.xml"/> <xi:include href="xml/webkitwebhistoryitem.xml"/> + <xi:include href="xml/webkitwebnavigationaction.xml"/> + <xi:include href="xml/webkitwebpolicydecision.xml"/> <xi:include href="xml/webkitnetworkrequest.xml"/> <xi:include href="xml/webkitwebinspector.xml"/> + <xi:include href="xml/webkitdownload.xml"/> + <xi:include href="xml/webkitsoupauthdialog.xml"/> <xi:include href="xml/webkitwebwindowfeatures.xml"/> </chapter> + <chapter> + <title>Running WebKitGTK+-based programs</title> + <xi:include href="webkitenvironment.xml"/> + </chapter> + <index id="index-all"> <title>Index</title> </index> <index id="index-deprecated" role="deprecated"> - <title>Index of deprectaed symbols</title> + <title>Index of deprecated symbols</title> </index> <index id="index-1.0.1" role="1.0.1"> <title>Index of new symbols in 1.0.1</title> @@ -38,4 +45,34 @@ <index id="index-1.0.3" role="1.0.3"> <title>Index of new symbols in 1.0.3</title> </index> + <index id="index-1.1.1" role="1.1.1"> + <title>Index of new symbols in 1.1.1</title> + </index> + <index id="index-1.1.2" role="1.1.2"> + <title>Index of new symbols in 1.1.2</title> + </index> + <index id="index-1.1.3" role="1.1.3"> + <title>Index of new symbols in 1.1.3</title> + </index> + <index id="index-1.1.4" role="1.1.4"> + <title>Index of new symbols in 1.1.4</title> + </index> + <index id="index-1.1.5" role="1.1.5"> + <title>Index of new symbols in 1.1.5</title> + </index> + <index id="index-1.1.6" role="1.1.6"> + <title>Index of new symbols in 1.1.6</title> + </index> + <index id="index-1.1.7" role="1.1.7"> + <title>Index of new symbols in 1.1.7</title> + </index> + <index id="index-1.1.8" role="1.1.8"> + <title>Index of new symbols in 1.1.8</title> + </index> + <index id="index-1.1.10" role="1.1.10"> + <title>Index of new symbols in 1.1.10</title> + </index> + <index id="index-1.1.11" role="1.1.11"> + <title>Index of new symbols in 1.1.11</title> + </index> </book> diff --git a/WebKit/gtk/docs/webkitgtk-sections.txt b/WebKit/gtk/docs/webkitgtk-sections.txt index d20bc7a..d038ae9 100644 --- a/WebKit/gtk/docs/webkitgtk-sections.txt +++ b/WebKit/gtk/docs/webkitgtk-sections.txt @@ -4,6 +4,7 @@ WebKitWebSettings webkit_web_settings_copy webkit_web_settings_new +webkit_web_settings_get_user_agent <SUBSECTION Standard> WEBKIT_WEB_SETTINGS WEBKIT_IS_WEB_SETTINGS @@ -22,6 +23,7 @@ WebKitWebSettingsClass <FILE>webkitwebbackforwardlist</FILE> <TITLE>WebKitWebBackForwardList</TITLE> WebKitWebBackForwardList +webkit_web_back_forward_list_add_item webkit_web_back_forward_list_contains_item webkit_web_back_forward_list_get_back_item webkit_web_back_forward_list_get_back_length @@ -80,16 +82,23 @@ WebKitWebHistoryItemClass <SECTION> <FILE>webkitwebframe</FILE> <TITLE>WebKitWebFrame</TITLE> +WebKitLoadStatus WebKitWebFrame webkit_web_frame_find_frame webkit_web_frame_get_global_context +webkit_web_frame_get_load_status webkit_web_frame_get_name webkit_web_frame_get_parent webkit_web_frame_get_title webkit_web_frame_get_uri webkit_web_frame_get_web_view +webkit_web_frame_load_alternate_string webkit_web_frame_load_request +webkit_web_frame_load_string +webkit_web_frame_load_uri webkit_web_frame_new +webkit_web_frame_print +webkit_web_frame_print_full webkit_web_frame_reload webkit_web_frame_stop_loading <SUBSECTION Standard> @@ -108,6 +117,60 @@ WebKitWebFrameClass </SECTION> <SECTION> +<FILE>webkitdownload</FILE> +<TITLE>WebKitDownload</TITLE> +WebKitDownload +webkit_download_cancel +webkit_download_error_get_type +webkit_download_get_current_size +webkit_download_get_destination_uri +webkit_download_get_elapsed_time +webkit_download_get_network_request +webkit_download_get_progress +webkit_download_get_status +webkit_download_get_suggested_filename +webkit_download_get_total_size +webkit_download_get_uri +webkit_download_new +webkit_download_set_destination_uri +webkit_download_start +webkit_download_status_get_type +<SUBSECTION Standard> +WEBKIT_DOWNLOAD +WEBKIT_DOWNLOAD_CLASS +WEBKIT_DOWNLOAD_GET_CLASS +WEBKIT_IS_DOWNLOAD +WEBKIT_IS_DOWNLOAD_CLASS +WEBKIT_TYPE_DOWNLOAD +WEBKIT_TYPE_DOWNLOAD_ERROR +WEBKIT_TYPE_DOWNLOAD_STATUS +<SUBSECTION Private> +webkit_download_get_type +WebKitDownload +WebKitDownloadClass +WebKitDownloadError +WebKitDownloadPrivate +WebKitDownloadStatus +</SECTION> + +<SECTION> +<FILE>webkitsoupauthdialog</FILE> +<TITLE>WebKitSoupAuthDialog</TITLE> +WebKitSoupAuthDialog +<SUBSECTION Standard> +WEBKIT_IS_SOUP_AUTH_DIALOG +WEBKIT_IS_SOUP_AUTH_DIALOG_CLASS +WEBKIT_SOUP_AUTH_DIALOG +WEBKIT_SOUP_AUTH_DIALOG_CLASS +WEBKIT_SOUP_AUTH_DIALOG_GET_CLASS +WEBKIT_TYPE_SOUP_AUTH_DIALOG +<SUBSECTION Private> +webkit_soup_auth_dialog_get_type +WebKitSoupAuthDialog +WebKitSoupAuthDialogClass +</SECTION> + +<SECTION> <FILE>webkitwebinspector</FILE> <TITLE>WebKitWebInspector</TITLE> WebKitWebInspector @@ -128,10 +191,60 @@ WebKitWebInspectorClass </SECTION> <SECTION> +<FILE>webkitwebnavigationaction</FILE> +<TITLE>WebKitWebNavigationAction</TITLE> +WebKitWebNavigationAction +WebKitWebNavigationReason +webkit_web_navigation_action_get_button +webkit_web_navigation_action_get_modifier_state +webkit_web_navigation_action_get_original_uri +webkit_web_navigation_action_get_reason +webkit_web_navigation_action_get_type +webkit_web_navigation_action_set_original_uri +webkit_web_navigation_action_set_reason +webkit_web_navigation_reason_get_type +<SUBSECTION Standard> +WEBKIT_IS_WEB_NAVIGATION_ACTION +WEBKIT_IS_WEB_NAVIGATION_ACTION_CLASS +WEBKIT_TYPE_WEB_NAVIGATION_ACTION +WEBKIT_TYPE_WEB_NAVIGATION_REASON +WEBKIT_WEB_NAVIGATION_ACTION +WEBKIT_WEB_NAVIGATION_ACTION_CLASS +WEBKIT_WEB_NAVIGATION_ACTION_GET_CLASS +<SUBSECTION Private> +WebKitWebNavigationAction +WebKitWebNavigationActionClass +WebKitWebNavigationActionPrivate +</SECTION> + +<SECTION> +<FILE>webkitwebpolicydecision</FILE> +<TITLE>WebKitWebPolicyDecision</TITLE> +WebKitWebPolicyDecision +webkit_web_policy_decision_download +webkit_web_policy_decision_get_type +webkit_web_policy_decision_ignore +webkit_web_policy_decision_use +<SUBSECTION Standard> +WEBKIT_IS_WEB_POLICY_DECISION +WEBKIT_IS_WEB_POLICY_DECISION_CLASS +WEBKIT_TYPE_WEB_POLICY_DECISION +WEBKIT_WEB_POLICY_DECISION +WEBKIT_WEB_POLICY_DECISION_CLASS +WEBKIT_WEB_POLICY_DECISION_GET_CLASS +<SUBSECTION Private> +WebKitWebPolicyDecision +WebKitWebPolicyDecisionClass +WebKitWebPolicyDecisionPrivate +</SECTION> + +<SECTION> <FILE>webkitnetworkrequest</FILE> <TITLE>WebKitNetworkRequest</TITLE> WebKitNetworkRequest webkit_network_request_get_uri +webkit_network_request_get_message +webkit_network_request_set_uri <SUBSECTION Standard> WEBKIT_NETWORK_REQUEST WEBKIT_IS_NETWORK_REQUEST @@ -142,7 +255,6 @@ WEBKIT_NETWORK_REQUEST_GET_CLASS <SUBSECTION Private> webkit_network_request_get_type webkit_network_request_new -webkit_network_request_set_uri WebKitNetworkRequestPrivate WebKitNetworkRequest WebKitNetworkRequestClass @@ -160,20 +272,27 @@ webkit_web_view_can_go_back webkit_web_view_can_go_back_or_forward webkit_web_view_can_go_forward webkit_web_view_can_paste_clipboard +webkit_web_view_can_show_mime_type webkit_web_view_copy_clipboard webkit_web_view_cut_clipboard webkit_web_view_delete_selection webkit_web_view_execute_script webkit_web_view_get_back_forward_list webkit_web_view_get_copy_target_list +webkit_web_view_get_custom_encoding webkit_web_view_get_editable +webkit_web_view_get_encoding webkit_web_view_get_focused_frame webkit_web_view_get_full_content_zoom webkit_web_view_get_inspector +webkit_web_view_get_load_status webkit_web_view_get_main_frame webkit_web_view_get_paste_target_list +webkit_web_view_get_progress webkit_web_view_get_settings +webkit_web_view_get_title webkit_web_view_get_transparent +webkit_web_view_get_uri webkit_web_view_get_zoom_level webkit_web_view_go_back webkit_web_view_go_back_or_forward @@ -181,14 +300,19 @@ webkit_web_view_go_forward webkit_web_view_go_to_back_forward_item webkit_web_view_has_selection webkit_web_view_load_html_string +webkit_web_view_load_request webkit_web_view_load_string +webkit_web_view_load_uri webkit_web_view_mark_text_matches +webkit_web_view_move_cursor webkit_web_view_new webkit_web_view_open webkit_web_view_paste_clipboard webkit_web_view_reload +webkit_web_view_reload_bypass_cache webkit_web_view_search_text webkit_web_view_select_all +webkit_web_view_set_custom_encoding webkit_web_view_set_editable webkit_web_view_set_full_content_zoom webkit_web_view_set_highlight_text_matches @@ -241,6 +365,7 @@ WebKitWebWindowFeaturesPrivate <SECTION> <FILE>webkit</FILE> webkit_init +webkit_get_default_session </SECTION> <SECTION> @@ -257,6 +382,19 @@ webkit_web_inspector_set_inspected_uri </SECTION> <SECTION> +<FILE>webkiterror</FILE> +WEBKIT_NETWORK_ERROR +WEBKIT_PLUGIN_ERROR +WEBKIT_POLICY_ERROR +WebKitNetworkError +WebKitPluginError +WebKitPolicyError +webkit_network_error_quark +webkit_plugin_error_quark +webkit_policy_error_quark +</SECTION> + +<SECTION> <FILE>webkitdefines</FILE> WEBKIT_API webkit_navigation_response_get_type diff --git a/WebKit/gtk/gdom/ConvertToGCharPrivate.h b/WebKit/gtk/gdom/ConvertToGCharPrivate.h new file mode 100644 index 0000000..621fb99 --- /dev/null +++ b/WebKit/gtk/gdom/ConvertToGCharPrivate.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2008, 2009 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef ConvertToGCharPrivate_h +#define ConvertToGCharPrivate_h + +#include "AtomicString.h" +#include "CString.h" +#include "KURL.h" +#include "PlatformString.h" + +inline gchar* copyAsGchar(WebCore::String const& s) +{ + return g_strdup(s.utf8().data()); +} + +inline gchar* copyAsGchar(WebCore::KURL const& s) +{ + return copyAsGchar(s.string()); +} + +inline gchar* copyAsGchar(const JSC::UString& s) +{ + return g_strdup(s.UTF8String().c_str()); +} + +inline gchar* copyAsGchar(WebCore::AtomicString const& s) +{ + return g_strdup(s.string().utf8().data()); +} + +#endif /* ConvertToGCharPrivate_h*/ diff --git a/WebKit/gtk/po/ChangeLog b/WebKit/gtk/po/ChangeLog new file mode 100644 index 0000000..68321ad --- /dev/null +++ b/WebKit/gtk/po/ChangeLog @@ -0,0 +1,123 @@ +2009-07-18 Jorge González <aloriel@gmail.com> + + Rubber-stamped by Jan Alonzo. + + es translation + https://bugs.webkit.org/show_bug.cgi?id=26319 + + * es.po: Added. + +2009-07-15 Aron Xu <aronmalache@163.com> + + Rubber-stamped by Jan Alonzo. + + Simplified Chinese translation + https://bugs.webkit.org/show_bug.cgi?id=27252 + + * zh_CN.po: Added. + +2009-07-15 Bruce Cowan <bugs@bcowan.fastmail.co.uk> + + Rubber-stamped by Jan Alonzo. + + [Gtk] en_GB translation + https://bugs.webkit.org/show_bug.cgi?id=27244 + + * en_GB.po: Added. + +2009-07-13 Reinout van Schouwen <reinouts@gnome.org> + + <https://bugs.webkit.org/show_bug.cgi?id=26980> [Gtk] Updated Dutch translation + + Rubber-stamped by Jan Alonzo. + + * nl.po: Added. + +2009-06-28 Miloš Popović <gpopac@gmail.com> + + Rubber-stamped by Jan Alonzo. + + New Serbian translation. + + * sr.po: Added. + * sr@latin.po: Added. + +2009-06-25 Duy Nguyen <pclouds@gmail.com> + + Rubber-stamped by Jan Alonzo. + + Gtk port Vietnamese translation + https://bugs.webkit.org/show_bug.cgi?id=26739 + + * vi.po: Added. + +2009-05-13 Luca Ferretti <elle.uca@libero.it> + + Rubber-stamped by Xan Lopez. + + New Italian translation. + + * it.po: Added. + +2009-05-11 Anton Shestakov <engored@ya.ru> + + Rubber-stamped by Gustavo Noronha. + + New Russian translation. + + * ru.po: Added. + +2009-05-06 Daniel Nylander <po@danielnylander.se> + + Rubber-stamped by Gustavo Noronha. + + Swedish translation for WebKitGTK+. + + * sv.po: Added. + +2009-04-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Xan Lopez. + + * pt_BR.po: translation update. + +2009-04-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed build fix to generate all .mo files at the correct + location. + + * GNUmakefile.am: + +2009-04-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25124 + [GTK] many strings still missing translation calls + + Extracting translation for the files that got translation calls. + + * POTFILES: + * de.po: + * pt_BR.po: + * webkit.pot: + +2009-04-06 Christian Dywan <christian@twotoasts.de> + + Rubber-stamped by Oliver Hunt. + + * de.po: Added German translation for WebKitGTK+. + +2009-04-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Sam Weinig. + + * pt_BR.po: Added Brazilian Portuguese translation for WebKitGTK+. + +2009-04-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Sam Weinig. + + * GNUmakefile.am, POTFILES, webkit.pot: Initial setup of the + localization infra-structure. + diff --git a/WebKit/gtk/po/GNUmakefile.am b/WebKit/gtk/po/GNUmakefile.am new file mode 100644 index 0000000..b5b0c4c --- /dev/null +++ b/WebKit/gtk/po/GNUmakefile.am @@ -0,0 +1,210 @@ +# Gettext stuff; based on the contents of the Makefile.in.in file +# distributed with GNU Gettext. +# +# The original copyright notice follows: +# +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.17 + +DOMAIN := $(GETTEXT_PACKAGE) + +MSGFMT := $(shell which msgfmt) + +XGETTEXT := $(shell which xgettext) + +MSGMERGE := $(shell which msgmerge) + +MSGMERGE_UPDATE := $(MSGMERGE) --update + +POFILES += $(shell ls $(srcdir)/WebKit/gtk/po/*.po) + +MOFILES += $(shell echo $(POFILES) | tr ' ' '\n' | sed "s,^$(srcdir)/,,g" | sed 's/\.po/.mo/g') + +.po.mo: + test -d WebKit/gtk/po/ || mkdir -p WebKit/gtk/po/ + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o $@ $< + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(MOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/WebKit/gtk/po/$(DOMAIN).pot $(MOFILES) + test ! -f $(srcdir)/WebKit/gtk/po/$(DOMAIN).pot || \ + test -z "$(MOFILES)" || $(MAKE) $(MOFILES) + @test ! -f $(srcdir)/WebKit/gtk/po/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/WebKit/gtk/po/POTFILES + package_gnu=''; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/WebKit/gtk/po/POTFILES \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + --keyword=_ --keyword=N_ -o $(srcdir)/WebKit/gtk/po/webkit.pot \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/WebKit/gtk/po/POTFILES \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + --keyword=_ --keyword=N_ -o $(srcdir)/WebKit/gtk/po/webkit.pot \ + ;; \ + esac + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/WebKit/gtk/po/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/WebKit/gtk/po/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/WebKit/gtk/po/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir)/WebKit/gtk/po && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir)/WebKit/gtk/po && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + +update-po: GNUmakefile + $(MAKE) $(DOMAIN).pot-update + $(MAKE) $(POFILES) + $(MAKE) $(MOFILES) + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# clean rules +stamp_files += \ + stamp-po + +MAINTAINERCLEANFILES += \ + $(MOFILES) + +DISTCLEANFILES += \ + $(MOFILES) + +po-install-data-local: all + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(MOFILES)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.mo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r WebKit/gtk/po/$$cat; then realcat=WebKit/gtk/po/$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +po-installdirs-data-local: + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(MOFILES)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +po-uninstall-local: + catalogs='$(MOFILES)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.mo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done diff --git a/WebKit/gtk/po/POTFILES b/WebKit/gtk/po/POTFILES new file mode 100644 index 0000000..05ba138 --- /dev/null +++ b/WebKit/gtk/po/POTFILES @@ -0,0 +1,12 @@ +# List of source files which contain translatable strings. +WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp +WebKit/gtk/webkit/webkitdownload.cpp +WebKit/gtk/webkit/webkitsoupauthdialog.c +WebKit/gtk/webkit/webkitwebframe.cpp +WebKit/gtk/webkit/webkitwebhistoryitem.cpp +WebKit/gtk/webkit/webkitwebinspector.cpp +WebKit/gtk/webkit/webkitwebnavigationaction.cpp +WebKit/gtk/webkit/webkitwebsettings.cpp +WebKit/gtk/webkit/webkitwebview.cpp +WebCore/platform/gtk/LocalizedStringsGtk.cpp diff --git a/WebKit/gtk/po/README b/WebKit/gtk/po/README new file mode 100644 index 0000000..22dbcc0 --- /dev/null +++ b/WebKit/gtk/po/README @@ -0,0 +1,11 @@ +======================= +WebKitGTK+ Localization +======================= + +WebKitGTK+'s build system is very unorthodox. This means that you will +not get to run the usual make commands in the po directory. + +To refresh the .pot file, go to the root of the build directory, and +run `make webkit.pot-update'. To update the .po files using the new +.pot file run `make update-po'. This will also build the .mo files. + diff --git a/WebKit/gtk/po/de.po b/WebKit/gtk/po/de.po new file mode 100644 index 0000000..f3785af --- /dev/null +++ b/WebKit/gtk/po/de.po @@ -0,0 +1,696 @@ +# German translations for WebKit package. +# Copyright (C) 2009 Christian Dywan <christian@twotoasts.de> +# +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.4\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-04-07 00:27+0100\n" +"Last-Translator: Christian Dywan <christian@twotoasts.de>\n" +"Language-Team: German\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Datei hochladen" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Eingabe_methoden" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM Von-_links-nach-rechts-Marke" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM Von-_rechts-nach-links-Marke" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE Von-links-nach-rechts-_Einbettung" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE Von-rechts-nach-Links-E_inbettung" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO Von-links-nach-rechts-Ü_berschreiben" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO Von-rechts-nach-links-Ü_berschreiben" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "PDF Richtungsformatierungs-_Pop" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "ZWS-Leerraum mit Breite _null" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ-_Verbinder mit Breite null" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ-_Trenner mit Breite null" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Unicode-Steuerzeichen einfügen" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Netzwerkanfrage" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "Die Netzwerkanfrage der URI welche heruntergeladen werden soll" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "Ziel-URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "Die Ziel-URI an welcher die Datei gespeichert werden soll" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Vorgeschlagener Dateiname" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "Der beim Speichern als Standard vorgeschlagene Dateiname" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Fortschritt" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Bestimmt den aktuellen Fortschritt des Herunterladens" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Status" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Bestimmt den aktuellen Status des Herunterladens" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Aktuelle Größe" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "Die Länge der bereits heruntergeladenen Daten" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Gesamtgröße" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "Die Gesamtgröße der Datei" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Name" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Der Name des Rahmens" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Titel" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Der Titel des Dokuments in dem Rahmen" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "Die aktuelle URI der im Rahmen dargestellten Inhalte" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +#, fuzzy +msgid "The title of the history item" +msgstr "Die Gesamtgröße der Datei" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +#, fuzzy +msgid "The alternate title of the history item" +msgstr "Der Titel des Dokuments in dem Rahmen" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +#, fuzzy +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Die aktuelle URI der im Rahmen dargestellten Inhalte" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +#, fuzzy +msgid "Editable" +msgstr "Titel" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Absenden" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Zurücksetzen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "Durchsuchbarer _Index" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Datei wählen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Kein)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Verweis in neuem _Reiter öffnen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "Verweisziel herunter_laden" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Verweisziel _kopieren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "_Bild in neuem Fenster öffnen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Bil_d speichern unter" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Bild k_opieren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "_Rahmen in neuem Fenster öffnen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "_Neu laden" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Keine Vorschläge verfügbar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "Rechtschreibung _ignorieren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "Rechtschreibung _hinzufügen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "Im Netz _suchen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "In _Wörterbuch nachschlagen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "Verweis ö_ffnen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Grammatik _ignorieren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Rechtschreibung und _Grammatik" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "Rechtschreibung und Grammatik _anzeigen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "Rechtschreibung und Grammatik _verbergen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "Dokument jetzt ü_berprüfen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Rechtschreibung beim _Eintippen überprüfen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Grammatik beim _Eintippen überprüfen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Schriftart" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Umrandung" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Element _untersuchen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Keine vergangen Suchen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Vergangene Suchen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Limpar buscas recentes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "begriff" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "bedeutung" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "drucken" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "markieren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "aktivieren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "auswählen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "abwählen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "überspringen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " dateien" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Unbekannt" diff --git a/WebKit/gtk/po/en_GB.po b/WebKit/gtk/po/en_GB.po new file mode 100644 index 0000000..6b6ecc0 --- /dev/null +++ b/WebKit/gtk/po/en_GB.po @@ -0,0 +1,693 @@ +# British English translation of webkit. +# Copyright (C) 2009 webkit's COPYRIGHT HOLDER +# This file is distributed under the same licence as the webkit package. +# Bruce Cowan <bcowan@fastmail.co.uk>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: webkit HEAD\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-07-14 02:01+0100\n" +"Last-Translator: Bruce Cowan <bcowan@fastmail.co.uk>\n" +"Language-Team: British English <en@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Upload File" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Input _Methods" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM _Left-to-right mark" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM _Right-to-left mark" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE Left-to-right _embedding" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE Right-to-left e_mbedding" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO Left-to-right _override" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO Right-to-left o_verride" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "PDF _Pop directional formatting" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "ZWS _Zero width space" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ Zero width _joiner" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ Zero width _non-joiner" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Insert Unicode Control Character" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Network Request" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "The network request for the URI that should be downloaded" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "Destination URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "The destination URI where to save the file" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Suggested Filename" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "The filename suggested as default when saving" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Progress" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Determines the current progress of the download" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Status" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Determines the current status of the download" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Current Size" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "The length of the data already downloaded" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Total Size" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "The total size of the file" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "User cancelled the download" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "A username and password are being requested by the site %s" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Username:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Password:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Remember password" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Name" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "The name of the frame" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Title" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "The document title of the frame" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "The current URI of the contents displayed by the frame" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "The title of the history item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Alternate Title" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "The alternate title of the history item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "The URI of the history item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "Original URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "The original URI of the history item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Last visited Time" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "The time at which the history item was last visited" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Web View" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "The Web View that renders the Web Inspector itself" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "Inspected URI" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "The URI that is currently being inspected" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Enable JavaScript profiling" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Profile the executed JavaScript." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Reason" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "The reason why this navigation is occurring" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "The URI that was requested as the target for the navigation" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Button" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "The button used to click" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Modifier state" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "A bitmask representing the state of the modifier keys" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Default Encoding" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "The default encoding used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Cursive Font Family" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "The default Cursive font family used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Default Font Family" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "The default font family used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Fantasy Font Family" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "The default Fantasy font family used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Monospace Font Family" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "The default font family used to display monospace text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Sans Serif Font Family" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "The default Sans Serif font family used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Serif Font Family" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "The default Serif font family used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Default Font Size" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "The default font size used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Default Monospace Font Size" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "The default font size used to display monospace text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Minimum Font Size" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "The minimum font size used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Minimum Logical Font Size" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "The minimum logical font size used to display text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Enforce 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Enforce a resolution of 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Auto Load Images" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Load images automatically." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Auto Shrink Images" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Automatically shrink standalone images to fit." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Print Backgrounds" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Whether background images should be printed." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Enable Scripts" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Enable embedded scripting languages." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Enable Plugins" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Enable embedded plugin objects." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Resizable Text Areas" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Whether text areas are resizable." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "User Stylesheet URI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "The URI of a stylesheet that is applied to every page." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Zoom Stepping Value" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "The value by which the zoom level is changed when zooming in or out." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Enable Developer Extras" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Enables special extensions that help developers" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Enable Private Browsing" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Enables private browsing mode" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Returns the @web_view's document title" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Returns the current URI of the contents displayed by the @web_view" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Copy target list" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "The list of targets this web view supports for clipboard copying" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Paste target list" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "The list of targets this web view supports for clipboard pasting" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Settings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "An associated WebKitWebSettings instance" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Web Inspector" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "The associated WebKitWebInspector instance" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Editable" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Whether content can be modified by the user" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Transparent" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Whether content has a transparent background" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Zoom level" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "The level of zoom of the content" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Full content zoom" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Whether the full content is scaled when zooming" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Encoding" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "The default encoding of the web view" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Custom Encoding" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "The custom encoding of the web view" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Submit" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Reset" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "_Searchable Index" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Choose File" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(None)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Open Link in New _Window" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Download Linked File" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Copy Link Loc_ation" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Open _Image in New Window" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Sa_ve Image As" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Cop_y Image" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "Open _Frame in New Window" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "_Reload" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "No Guesses Found" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Ignore Spelling" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Learn Spelling" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Search the Web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "_Look Up in Dictionary" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Open Link" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Ignore _Grammar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Spelling and _Grammar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Show Spelling and Grammar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "_Hide Spelling and Grammar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "_Check Document Now" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Check Spelling While _Typing" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Check _Grammar With Spelling" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Font" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Outline" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Inspect _Element" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "No recent searches" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Recent searches" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Clear recent searches" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "term" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definition" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "press" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "select" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "activate" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "untick" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "tick" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "jump" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " files" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Unknown" diff --git a/WebKit/gtk/po/es.po b/WebKit/gtk/po/es.po new file mode 100644 index 0000000..eda63bc --- /dev/null +++ b/WebKit/gtk/po/es.po @@ -0,0 +1,696 @@ +# translation of webkit.webkit.HEAD.es.po.po to Español +# This file is put in the public domain. +# +# Jacinto Capote Robles <fastangel@gmail.com>, 2009. +# Jorge González <jorgegonz@svn.gnome.org>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: webkit.webkit.HEAD.es.po\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-06-11 15:36+0200\n" +"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n" +"Language-Team: Español <gnome-es-list@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Subir archivo" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "_Métodos de entrada" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "Marca de _izquierda-a-derecha [LRM]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "Marca de _derecha-a-izquierda [RLM]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "In_crustamiento de izquierda-a-derecha [LRE]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "Inc_rustamiento de derecha-a-izquierda [RLE]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "_Prevalencia de izquierda-a-derecha [LRO]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "Pre_valencia de derecha-a-izquierda [RLO]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "Formateo d_ireccional emergente [PDF]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "Espacio de ancho _cero [ZWS]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "En_samblador de ancho cero [ZWJ]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "_No ensamblador de ancho cero [ZWNJ]" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Insertar un carácter de control Unicode" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Progreso" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Estado" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Determina el estado actual de la descarga" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Tamaño actual" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Tamaño total" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Nombre de usuario:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Contraseña:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Recordar contraseña" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Nombre" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Título" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Título alternativo" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Vista web" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Razón" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Botón" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Codificación predeterminada" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Tamaño de predeterminado de tipografía" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Tamaño mínimo de tipografía" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Activar complementos" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "URI de la hoja de estilo del usuario" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Copiar la lista de destinos" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Pegar la lista de destinos" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Ajustes" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Inspector web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Editable" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Transparente" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Nivel de ampliación" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "El nivel de ampliación del contenido" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Codificación" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "La codificación predeterminada de la vista web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Enviar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Restablecer" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "Índice buscable" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Elegir archivo" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Ninguno)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Abrir enlace en una _ventana nueva" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Descargar el archivo enlazado" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "_Copiar dirección del enlace" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Abrir _imagen en una ventana nueva" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "_Guardar imagen como" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Copia_r imagen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "Abrir _marco en una ventana nueva" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "Re_cargar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Ignorar ortografía" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Aprender ortografía" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Buscar en la web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Abrir enlace" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Ignorar gra_mática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Ortografía y gra_mática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Mostrar ortografía y gramática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Tipografía" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Inspeccionar _elemento" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "No hay búsquedas recientes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Búsquedas recientes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Cancelar búsquedas recientes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "término" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definición" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "seleccionar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "activar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "deseleccionar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "seleccionar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "saltar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr "archivos" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Desconocido" + diff --git a/WebKit/gtk/po/it.po b/WebKit/gtk/po/it.po new file mode 100644 index 0000000..e02dce7 --- /dev/null +++ b/WebKit/gtk/po/it.po @@ -0,0 +1,773 @@ +# This is the Italian locale translation for WebKitGtk +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# Luca Ferretti <elle.uca@libero.it>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: WebKitGtk\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-05-11 14:10+0200\n" +"Last-Translator: Luca Ferretti <elle.uca@libero.it>\n" +"Language-Team: Italian <tp@lists.linux.it>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Carica file" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "_Metodi di input" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM marcatura _sinistra-destra" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM marcatura _destra-sinistra" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE _inserimento sinistra-destra" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE i_nserimento destra-sinistra" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO _forza sinistra-destra" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO f_orza destra-sinistra" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "PDF cancella formattazione direzionale" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "ZWS spa_zio a larghezza nulla" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ spazio di _unione a larghezza nulla" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ spazio _non di unione a larghezza nulla" + +# merge da gtk +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Inserisci carattere di controllo unicode" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Richiesta di rete" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "La richiesta di rete per l'URI che dovrebbe essere scaricato" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "URI di destinazione" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "L'URI di destinazione in cui salvare il file" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Nome file suggerito" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "Il nome di file suggerito come predefinito quando si salva" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Avanzamento" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Determina l'avanzamento corrente dello scaricamento" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Stato" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Determina lo stato corrente dello scaricamento" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Dimensione corrente" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "La lunghezza dei dati già scaricati" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Dimensione totale" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "La dimensione totale del file" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "L'utente ha annullato lo scaricamento" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Il sito %s richiede un nome utente e una password" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Nome utente:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Password:" + +# checkbox +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Ricordare la password" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Nome" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Il nome della cornice" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Titolo" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Il titolo del documento nella cornice" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "L'URI corrente del contenuto mostrato dalla cornice" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "Il titolo dell'elemento di cronologia" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Titolo alternativo" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "Il titolo alternativo dell'elemento di cronologia" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "L'URI dell'elemento di cronologia" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "URI originale" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "L'URI originale dell'elemento di cronologia" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Data ultima visita" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "" +"La data in cui l'elemento di cronologia è stato visitato l'ultima volta" + +# lasciato non tradotto perchè termine interno di WebKitGtk +# cfr http://webkitgtk.org/reference/webkitgtk-WebKitWebInspector.html#WebKitWebInspector--web-view +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Web View" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "La Web View che esegue il rendering dell'Ispettore web stesso" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "URI ispezionato" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "L'URI che attualmente è ispezionato" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Abilitare profiling JavaScript" + +# FIXME +# oppure Esegue il profiling? +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Traccia un profilo del codice JavaScript eseguito." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Motivo" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "Il motivo per cui questa navigazione si sta verificando" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "L'URI che è stata richiesta come destinazione della navigazione" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Pulsante" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "Il pulsante usato per fare clic" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Stato modificatori" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Una maschera di bit che rappresenta lo stato dei tasti modificatori" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Codifica predefinita" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "La codifica predefinita usata per mostrare il testo." + +# NdT: in questa e nelle seguenti è usata le seguente convenzione +# * nella "breve" si usa carattere, nella "lunga" tipo di carattere +# * nella "breve" si lascia la forma inglese (es. sans serif) nella lunga +# si mette la forma italiana (es. senza grazie) +# Ciò per mantenere corte le "brevi" e per permettere che entrambe le diciture siano presenti +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Famiglia carattere corsivo" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "" +"La famiglia del tipo di carattere \"corsivo\" predefinito usata per mostrare " +"il testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Famiglia carattere predefinita" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "" +"La famiglia del tipo di carattere predefinito usata per mostrare il testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Famiglia carattere fantasia" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "" +"La famiglia del tipo di carattere \"fantasia\" predefinito usata per " +"mostrare il testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Famiglia carattere monospace" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "" +"La famiglia del tipo di carattere predefinito usata per mostrare il testo a " +"spaziatura fissa." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Famiglia carattere sans serif" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "" +"La famiglia del tipo di carattere \"senza grazie\" predefinito usata per " +"mostrare il testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Famiglia carattere serif" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "" +"La famiglia del tipo di carattere \"con grazie\" predefinito usata per " +"mostrare il testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Dimensione predefinita carattere" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "" +"La dimensione predefinita per il tipo di carattere usato per mostrare il " +"testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Dimensione predefinita carattere monospace" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "" +"La dimensione predefinita per il tipo di carattere usato per mostrare il " +"testo a larghezza fissa." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Dimensione minima carattere" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "" +"La dimensione minima per il tipo di carattere usato per mostrare il testo." + +# Dalla documentazione apple per WebKit.framwork +# +# The font size for a web view is different than its logical font size. The minimum logical font +# size, for example, is the absolute minimum size at which the font will display onscreen. This is +# meant to be a functional boundary and not a style boundary. For example, the default value for a +# web view’s minimum logical font size is 9 points, because typical web content looks good on +# Mac OS X at font sizes of 9 point and above. The constraint assures that web content will always +# look good in a web view. If you know that your content will look good only at 12 points or +# above, you should change the minimum font size to 12 points and leave the minimum logical font +# size alone. This will assure that your content will never display at sizes less than 12 points, +# but the functional font size boundary of the web view will remain at 9 points to prevent any +# chance of displaying unnecessarily small text. +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Dimensione minima naturale carattere" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "" +"La dimensione minima naturale per il tipo di carattere usato per mostrare il " +"testo." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Forza 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Forza la risoluzione a 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Caricamento automatico immagini" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Carica le immagini in modo automatico." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Restringimento automatico immagini" + +# assolutamente libertario +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Restringe automaticamente le immagini singole alla dimensione adatta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Stampa sfondi" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Indica se le immagini di sfondo devono essere stampate." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Abilita script" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Abilita i linguaggi di scripting incorporati." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Abilita plugin" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Abilita gli oggetti plugin incorporati." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Aree testo ridimensionabili" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Indica se le aree di testo sono ridimensionabili." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "URI foglio stile utente" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "L'URI di un foglio di stile che è applicato a ogni pagina." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Valore passo ingrandimento" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "" +"Il valore di variazione del livello di ingrandimento quando si aumenta o " +"riduce l'ingrandimento." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Abilita extra per sviluppatori" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Abilita estensioni speciali che sono d'aiuto per gli sviluppatori" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Abilita navigazione privata" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Abilita la modalità di navigazione privata" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Restituisce il titolo del documento di @web_view" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Restituisce l'URI attuale del contenuto mostrato dalla @web_view" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Copia elenco destinazioni" + +# ma ha senso?? +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" +"L'elenco di destinazioni che questa vista web supporta per copiare negli " +"appunti" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Incolla elenco destinazioni" + +# ma ha senso?? +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" +"L'elenco di destinazioni che questa vista web supporta per incollare dagli " +"appunti" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Impostazioni" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "Un'istanza WebKitWebSettings associata" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Ispettore web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "L'istanza WebKitWebInspector associata" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Modificabile" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Indica se il contenuto può essere modificato dall'utente" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Trasparente" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Indica se il contenuto ha uno sfondo trasparente" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Livello ingrandimento" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Il livello di ingrandimento del contenuto" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Ingrandimento intero contenuto" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Indica se all'ingrandimento viene scalato l'intero contenuto" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Codifica" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "La codifica predefinita della vista web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Codifica personalizzata" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "La codifica personalizzata della vista web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Invia" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Azzera" + +# FIXME +# https://bugs.webkit.org/show_bug.cgi?id=25375 +# Aperto bug chiedeno lumi... +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "Indice _cercabile" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Scelta file" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Nessuno)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Apri collegamento in nuova _finestra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Scarica file collegato" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Copia _posizione collegamento" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Apri _immagine in nuova finestra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Sal_va immagine come" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Copia i_mmagine" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "Apri c_ornice in nuova finestra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "A_ggiorna" + +# omesso Found +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Nessun suggerimento" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Ignora ortografia" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "A_pprendi ortografia" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Cerca nel web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "Consu_lta dizionario" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Apri collegamento" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Ignora _grammatica" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Ortografia e _grammatica" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Mostra ortografia e grammatica" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "_Nascondi ortografia e grammatica" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "_Controlla documento ora" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Controlla ortografia durante _digitazione" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Controlla _grammatica con ortografia" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Tipo di carattere" + +# È riferita alla funzione contextMenuItemTagOutline() +# che appare assieme ad altre per bold, italic e underline. +# Le traduzioni di questi ultimi tre effetti per i font è presa +# dalle GTK_STOCK (_Grassetto, _Corsivo, _Sottolineato) +# Usato Co_ntorno come in OpenOffice.org +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "Co_ntorno" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Ispeziona _elemento" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Nessuna ricerca recente" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Ricerche recenti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "Pu_lisci ricerche recenti" + +# String AXDefinitionListTermText() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "termine" + +# String AXDefinitionListDefinitionText() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definizione" + +# String AXButtonActionVerb() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "premi" + +# String AXRadioButtonActionVerb() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "seleziona" + +# String AXTextFieldActionVerb() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "attiva" + +# String AXCheckedCheckBoxActionVerb() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "togli spunta" + +# String AXUncheckedCheckBoxActionVerb() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "metti spunta" + +# String AXLinkActionVerb() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "salta" + +# String multipleFileUploadText(unsigned numberOfFiles) +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " file" + +# String unknownFileSizeText() +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Sconosciuta" diff --git a/WebKit/gtk/po/nl.po b/WebKit/gtk/po/nl.po new file mode 100644 index 0000000..f5dc752 --- /dev/null +++ b/WebKit/gtk/po/nl.po @@ -0,0 +1,697 @@ +# Dutch translation of webkit-gtk +# Released under the same license as webkit-gtk +# Reinout van Schouwen <reinouts@gnome.org>, 2009 +# +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.10\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-07-05 18:58+0100\n" +"Last-Translator: Reinout van Schouwen <reinouts@gnome.org>\n" +"Language-Team: Dutch <vertaling@vrijschrift.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Bestand uploaden" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Invoer_methoden" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM _Links-naar-rechts markering" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM _Rechts-naar-links markering" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE Links-naar-rechts _inbedding" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE Rechts-naar-links i_nbedding" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO Links-naar-rechts _tenietdoen" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO Rechts-naar-links t_enietdoen" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "PDF _Pop richtingsformattering" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "ZWS Spatie _zonder breedte" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ _koppelaar zonder breedte" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ Niet-k_oppelaar zonder breedte" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Unicode controleteken invoegen " + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Netwerkaanvraag" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "De netwerkaanvraag voor de te downloaden URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "Bestemmings-URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "De bestemmings-URI waar dit bestand opgeslagen moet worden" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Gesuggereerde bestandsnaam" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "De standaard gesuggereerde bestandsnaam bij het opslaan" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Voortgang" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Bepaalt de huidige voortgang van de download" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Status" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Bepaalt de huidige status van de download" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Huidige grootte" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "De hoeveelheid reeds gedownloade data" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Totale grootte" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "De totale grootte van het bestand" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "Downloaden door gebruiker gestopt" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "De site %s vraagt een gebruikersnaam en wachtwoord" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Gebruikersnaam:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Wachtwoord:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Wachtwoord onthouden" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Naam" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Naam van het frame" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Titel" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "De titel van het huidige frame" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "De huidige URI van de in het frame weergegeven inhoud" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "De titel van het geschiedenis-item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Alternatieve titel" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "De alternatieve titel van het geschiedenis-item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "De URI van het geschiedenis-item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "Originele URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "De originele URI van het geschiedenis-item" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Laatst bezocht op:" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "De tijd waarop het geschiedenis-item het laatst is bezocht" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Webweergave" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "De webweergave die die Webinspector zelf weergeeft" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "Geïnspecteerde URI" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "De URI die momenteel geïnspecteerd wordt" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "JavaScript-profilering inschakelen" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "De uitgevoerde JavaScript profileren." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Reden" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "De reden waarom deze navigatie optreedt" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "De URI die werd aangevraagd als bestemming voor de navigatie" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Knop" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "De knop voor het klikken" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Staat van de optietoets" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Een bitmask dat de staat van de optietoets representeert" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Standaardcodering" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "De standaardcodering om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Cursive-lettertypefamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "De standaard Cursive-lettertypefamilie om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Standaard lettertypefamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "De standaard lettertypefamilie om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Fantasy-lettertypefamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "De standaard Fantasy-lettertypefamilie om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Monospace-lettertypefamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "De standaard lettertypefamilie om vaste-breedte-tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Sans Serif-lettertypefamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "De standaard Sans Serif-lettertypefamilie om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Serif-lettertypefamilie" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "De standaard Serif-lettertypefamilie om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Standaard korpsgrootte" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "De standaard korpsgrootte om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Standaard Monospace-lettergrootte" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "De standaard lettergrootte om vaste-breedte-tekst weer te geven." + +# Korpsgrootte/lettergrootte? +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Minimum korpsgrootte" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "De minimum lettergrootte om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Minimum logische korpsgrootte" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "De minimum logische korpsgrootte om tekst weer te geven." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "96 DPI afdwingen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Een resolutie van 96 DPI afdwingen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Afbeeldingen automatisch laden" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Automatisch afbeeldingen laden." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Afbeeldingen automatisch verkleinen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Automatisch losstaande afbeeldingen passend maken." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Achtergronden afdrukken" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Of achtergrondafbeeldingen afgedrukt moeten worden." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Scripts inschakelen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Ingebedde scripttalen inschakelen." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Plugins inschakelen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Ingebedde plugin-objecten inschakelen." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Tekstgebieden van grootte veranderbaar" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Of de grootte van tekstgebieden gewijzigd kan worden." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "URI van gebruikersstijlblad" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "De URI van een stijlblad dat wordt toegepast op elke pagina." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Stapgrootte voor in- en uitzoomen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "De hoeveelheid waarmee het zoomniveau verandert bij het in- en uitzoomen." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Extraatjes voor ontwikkelaars" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Schakelt speciale uitbreidingen in die ontwikkelaars helpen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Privé-browsen inschakelen" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Schakelt de stand voor privé-browsen in" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Geeft de documenttitel van de @web_view terug" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Geeft de huidige URI terug van de inhoud die de @web_view weergeeft" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Kopieerdoellijst" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" +"De lijst met targets die deze webweergave ondersteunt voor het kopiëren van het klembord" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Plakdoellijst" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" +"De lijst met targets die deze webview ondersteunt voor het plakken van het klembord" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Instellingen" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "Een geassocieerde instantie van WebKitWebSettings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Web-inspector" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "De geassocieerde instantie van WebKitWebInspector" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Bewerkbaar" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Of de tekst gewijzigd kan worden door de gebruiker" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Transparant" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Of de inhoud een transparante achtergrond heeft" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Zoomniveau" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Zoomfactor van de inhoud" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Zoomen op volledige inhoud" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Of de volledige inhoud op schaal wordt gebracht bij het zoomen" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Codering" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "Standaard codering van de webweergave" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Aangepaste codering" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "De aangepaste codering van de webweergave" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Indienen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Herinitialiseren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "Door_zoekbare index" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Kies een bestand" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Geen)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Verwijzing openen in _nieuw venster" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "Bestand _downloaden" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Verwijzings_adres kopiëren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Af_beelding openen in nieuw venster" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Afbeelding opslaan _als…" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Afbeelding _kopiëren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "_Deelvenster openen in nieuw venster" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "Ve_rversen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Geen suggesties gevonden" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "Spelling _negeren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Spelling leren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "Het web door_zoeken" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "O_pzoeken in woordenboek" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "Koppeling _openen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "_Grammatica negeren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Spelling en _grammatica" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "Spelling en grammatica _tonen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "Spelling en grammatica ver_bergen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "Het document nu _controleren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "_Spelling controleren tijdens het typen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "_Grammatica controleren naast spelling" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Lettertype" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Omtrek" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "_Element inspecteren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Geen recente zoekopdrachten" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Recente zoekopdrachten" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "Recente zoekopdrachten _wissen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "term" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definitie" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "druk" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "selecteren" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "activeren" + +# check / uncheck is aankruisen / deselecteren? +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "deselecteren" + +# check / uncheck is aankruisen / deselecteren? +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "aankruisen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "springen" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " bestanden" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Onbekend" diff --git a/WebKit/gtk/po/pt_BR.po b/WebKit/gtk/po/pt_BR.po new file mode 100644 index 0000000..b471707 --- /dev/null +++ b/WebKit/gtk/po/pt_BR.po @@ -0,0 +1,699 @@ +# Brazilian Portuguese translations for WebKit package. +# Copyright (C) 2009 Collabora Ltd. +# +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.4\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-23 15:57-0300\n" +"PO-Revision-Date: 2009-04-15 21:39-0300\n" +"Last-Translator: Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>\n" +"Language-Team: Brazilian Portuguese\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:454 +msgid "Upload File" +msgstr "Enviar Arquivo" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "_Métodos de entrada" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM Marca da _esquerda para a direita" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM Marca da _direita para a esquerda" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE _Embutido da esquerda para a direita" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE E_mbutido da direita para a esquerda" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO _Sobrepor da esquerda para a direita" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO S_obrepor da direita para a esquerda" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "_PDF Mostrar formatação direcional" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "_ZWS Espaço de largura zero" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ _União de largura zero" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ _Não-união de largura zero" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Inserir caractere de controle Unicode" + +#: WebKit/gtk/webkit/webkitdownload.cpp:254 +msgid "Network Request" +msgstr "Requisição de Rede" + +#: WebKit/gtk/webkit/webkitdownload.cpp:255 +msgid "The network request for the URI that should be downloaded" +msgstr "A requisição de rede para a URI que deve ser baixada" + +#: WebKit/gtk/webkit/webkitdownload.cpp:269 +msgid "Destination URI" +msgstr "URI de Destino" + +#: WebKit/gtk/webkit/webkitdownload.cpp:270 +msgid "The destination URI where to save the file" +msgstr "A URI de destino, onde deve ser salvo o arquivo" + +#: WebKit/gtk/webkit/webkitdownload.cpp:284 +msgid "Suggested Filename" +msgstr "Nome de Arquivo Sugerido" + +#: WebKit/gtk/webkit/webkitdownload.cpp:285 +msgid "The filename suggested as default when saving" +msgstr "O nome de arquivo que deve ser usado como padrão ao salvar" + +#: WebKit/gtk/webkit/webkitdownload.cpp:298 +msgid "Progress" +msgstr "Progresso" + +#: WebKit/gtk/webkit/webkitdownload.cpp:299 +msgid "Determines the current progress of the download" +msgstr "Determina o progresso atual do download" + +#: WebKit/gtk/webkit/webkitdownload.cpp:312 +msgid "Status" +msgstr "Estado" + +#: WebKit/gtk/webkit/webkitdownload.cpp:313 +msgid "Determines the current status of the download" +msgstr "Determina o estado atual do download" + +#: WebKit/gtk/webkit/webkitdownload.cpp:328 +msgid "Current Size" +msgstr "Tamanho Atual" + +#: WebKit/gtk/webkit/webkitdownload.cpp:329 +msgid "The length of the data already downloaded" +msgstr "A quantidade de dados já baixados" + +#: WebKit/gtk/webkit/webkitdownload.cpp:343 +msgid "Total Size" +msgstr "Tamanho total" + +#: WebKit/gtk/webkit/webkitdownload.cpp:344 +msgid "The total size of the file" +msgstr "O tamanho total do arquivo" + +#: WebKit/gtk/webkit/webkitdownload.cpp:473 +msgid "User cancelled the download" +msgstr "Usuário cancelou o download" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Usuário e senha estão sendo pedidos pelo sítio %s" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Usuário:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Senha:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Lembrar senha" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "Name" +msgstr "Nome" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:213 +msgid "The name of the frame" +msgstr "O nome do quadro" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1745 +msgid "Title" +msgstr "Título" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:220 +msgid "The document title of the frame" +msgstr "O título do documento do quadro" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1759 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:227 +msgid "The current URI of the contents displayed by the frame" +msgstr "A URI atual do conteúdo que está sendo exibido pelo quadro" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "O título do item do histórico" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Título Alternativo" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "O título alternativo do item do histórico" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "A URI do item do histórico" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "URI Original" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "A URI original do item do histórico" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Hora da Última Visita" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "Quando o item do histórico foi visitado pela última vez" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Visão Web" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "A visão web que exibe o inspetor web" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "URI Inspecionada" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "A URI que está sendo atualmente inspecionada" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Habilitar análise de desempenho de JavaScript" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Analisar desempenho de JavaScript em execução." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Razão" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "A razão pela qual essa navegação ocorre" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "A URI que foi requisitada como alvo para a navegação" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Botão" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "O botão usado no clique" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Estado do modificador" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Uma máscara de bits representando o estado das teclas modificadoras" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Codificação Padrão" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "A codificação padrão usada para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Família de Fontes Cursivas" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "A família de fontes cursivas padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Família de Fontes Padrão" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "A família de fontes padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Família de Fontes Fantasia" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "A família de fontes fantasia padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Família de Fontes Mono-espaçadas" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "A família de fontes mono-espaçadas padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Família de Fontes Sem Serifa" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "A família de fontes sem serifa padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Família de Fontes Com Serifa" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "A família de fontes com serifa padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Tamanho de Fonte Padrão" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "O tamanho de fonte padrão para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Tamanho de fonte mono-espaçada padrão" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "O tamanho de fonte padrão para exibir texto com fonte mono-espaçada." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Tamanho Mínimo de Fonte" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "O tamanho mínimo de fontes usadas para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Tamanho de Fonte Mínimo Lógico" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "O tamanho lógico mínimo de fontes usadas para exibir texto." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Forçar 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Força uma resolução de 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Auto-carregamento de Imagens" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Carregar imagens automaticamente." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Auto-Diminuição de Imagens" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Automaticamente diminuir imagens sozinhas para caber na tela." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Imprimir Fundos" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Se as imagens de fundo devem ser impressas." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Habilitar Scripts" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Habilitar linguagens de script embutidas." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Habilitar Plugins" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Habilitar objetos de plugins embutidos." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Áreas de Texto Redimensionáveis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Se as áreas de texto devem ser redimensionáveis." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "URI da Folha de Estilo do Usuário" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "A URI de uma folha de estilo que é aplicada a todas as páginas." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Valor de Passo do Zoom" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "O valor da variação do zoom ao aproximar ou distanciar." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Habilitar Extas de Desenvolvimento" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Habilita extensões especiais que auxiliam desenvolvedores" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Habilitar Navegação Privativa" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Habilita o modo de navegação privativa" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1746 +msgid "Returns the @web_view's document title" +msgstr "Retorna o título da visão web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1760 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Retorna a URI do conteúdo atualmente exibido pela visão web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1773 +msgid "Copy target list" +msgstr "Lista de alvos de cópia" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1774 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" +"A lista de alvos que essa visão web suporta para cópia para área de " +"transferência" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1787 +msgid "Paste target list" +msgstr "Lista de alvos de cola" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1788 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" +"A lista de alvos que essa visão web suporta para cola da área de " +"transferência" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1794 +msgid "Settings" +msgstr "Configurações" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1795 +msgid "An associated WebKitWebSettings instance" +msgstr "Uma instância de WebKitWebSettings associada" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1808 +msgid "Web Inspector" +msgstr "Inspetor Web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1809 +msgid "The associated WebKitWebInspector instance" +msgstr "A instância de WebKitWebInspector que está associada a essa visão" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1829 +msgid "Editable" +msgstr "Editável" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1830 +msgid "Whether content can be modified by the user" +msgstr "Se o conteúdo pode ser modificado pelo usuário" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Transparent" +msgstr "Transparente" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether content has a transparent background" +msgstr "Se o conteúdo tem um fundo transparente" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Zoom level" +msgstr "Nível de Zoom" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The level of zoom of the content" +msgstr "O nível de zoom do conteúdo" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1866 +msgid "Full content zoom" +msgstr "Zoom Completo do Conteúdo" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1867 +msgid "Whether the full content is scaled when zooming" +msgstr "Se todo o conteúdo é redimensionado no zoom" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1880 +msgid "Encoding" +msgstr "Codificação" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1881 +msgid "The default encoding of the web view" +msgstr "A codificação padrão da visão web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1894 +msgid "Custom Encoding" +msgstr "Codificação Customizada" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1895 +msgid "The custom encoding of the web view" +msgstr "A codificação customizada da visão web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Enviar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Limpar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "Índice de bu_sca" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Escolher arquivo" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Nenhum)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Abrir Link em Nova _Janela" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Baixar Arquivo" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Copiar _Endereço do Link" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Abrir _Imagem em Nova Janela" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Sal_var Imagem Como" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Co_piar Imagem" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "Abrir _Quadro em Nova Janela" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "_Recarregar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Nenhuma Sugestão Encontrada" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Ignorar Palavra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Aprender Palavra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Procurar na Web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "Procurar no _Dicionário" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Abrir Link" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Ignorar _Gramática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Ortografia e Gramática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "E_xibir Ortografia e Gramática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "E_sconder Ortografia e Gramática" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "_Verificar Documento Agora" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Verifiação _Ortográfica ao Digitar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Verificação _Gramatical ao Digitar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Fonte" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Outline" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Inspecionar _Elemento" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Não há buscas recentes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Buscas recentes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Limpar buscas recentes" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "termo" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definição" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "pressionar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "selecionar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "ativar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "desmarcar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "marcar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "pular" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr "arquivos" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Desconhecido" + +#~ msgid "Select _All" +#~ msgstr "Selecionar _Tudo" diff --git a/WebKit/gtk/po/ru.po b/WebKit/gtk/po/ru.po new file mode 100644 index 0000000..ad176d7 --- /dev/null +++ b/WebKit/gtk/po/ru.po @@ -0,0 +1,717 @@ +msgid "" +msgstr "" +"Project-Id-Version: webkit git\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-05-11 16:48+0900\n" +"PO-Revision-Date: \n" +"Last-Translator: Anton Shestakov <engored@ya.ru>\n" +"Language-Team: Russian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Poedit-Language: Russian\n" +"X-Poedit-Country: RUSSIAN FEDERATION\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:455 +msgid "Upload File" +msgstr "Отправка файла" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:142 +msgid "Input _Methods" +msgstr "_Методы ввода" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM Метка с_лева направо" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM Метка с_права налево" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE Вс_тавка слева направо" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE Вст_авка справа налево" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO П_ерекрывание слева направо" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO Пере_крывание справа налево" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "PDF _Расположение по вертикали" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "ZWS _Нулевой пробел" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ Нулевой о_бъединитель" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ Нулевой ра_зъединитель" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:137 +msgid "_Insert Unicode Control Character" +msgstr "Вст_авить управляющий символ Юникод" + +#: WebKit/gtk/webkit/webkitdownload.cpp:245 +msgid "Network Request" +msgstr "Сетевой запрос" + +#: WebKit/gtk/webkit/webkitdownload.cpp:246 +msgid "The network request for the URI that should be downloaded" +msgstr "Сетевой запрос для заданного URI, который должен быть выполнен" + +#: WebKit/gtk/webkit/webkitdownload.cpp:260 +msgid "Destination URI" +msgstr "URI назначения" + +#: WebKit/gtk/webkit/webkitdownload.cpp:261 +msgid "The destination URI where to save the file" +msgstr "Конечный URI для сохранения файла" + +#: WebKit/gtk/webkit/webkitdownload.cpp:275 +msgid "Suggested Filename" +msgstr "Предлагаемое имя файла" + +#: WebKit/gtk/webkit/webkitdownload.cpp:276 +msgid "The filename suggested as default when saving" +msgstr "Имя файла, которое предлагается при загрузке по умолчанию" + +#: WebKit/gtk/webkit/webkitdownload.cpp:289 +msgid "Progress" +msgstr "Прогресс" + +#: WebKit/gtk/webkit/webkitdownload.cpp:290 +msgid "Determines the current progress of the download" +msgstr "Текущий прогресс загрузки" + +#: WebKit/gtk/webkit/webkitdownload.cpp:303 +msgid "Status" +msgstr "Состояние" + +#: WebKit/gtk/webkit/webkitdownload.cpp:304 +msgid "Determines the current status of the download" +msgstr "Текущее состояния загрузки" + +#: WebKit/gtk/webkit/webkitdownload.cpp:319 +msgid "Current Size" +msgstr "Текущий размер" + +#: WebKit/gtk/webkit/webkitdownload.cpp:320 +msgid "The length of the data already downloaded" +msgstr "Объём уже загруженных данных" + +#: WebKit/gtk/webkit/webkitdownload.cpp:334 +msgid "Total Size" +msgstr "Общий размер" + +#: WebKit/gtk/webkit/webkitdownload.cpp:335 +msgid "The total size of the file" +msgstr "Общий размер файла" + +#: WebKit/gtk/webkit/webkitdownload.cpp:464 +msgid "User cancelled the download" +msgstr "Передача прервана пользователем" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Для сайта %s требуется ввод имени пользователя и пароля" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Имя пользователя:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Пароль:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Запомнить пароль" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:224 +msgid "Name" +msgstr "Имя" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +msgid "The name of the frame" +msgstr "Имя фрейма" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:231 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:152 +#: WebKit/gtk/webkit/webkitwebview.cpp:1771 +msgid "Title" +msgstr "Заголовок" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:232 +msgid "The document title of the frame" +msgstr "Заголовок документа фрейма" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:238 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:184 +#: WebKit/gtk/webkit/webkitwebview.cpp:1785 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:239 +msgid "The current URI of the contents displayed by the frame" +msgstr "Текущий URI содержимого фрейма" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:153 +msgid "The title of the history item" +msgstr "Заголовок элемента истории" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:168 +msgid "Alternate Title" +msgstr "Альтернативный заголовок" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:169 +msgid "The alternate title of the history item" +msgstr "Альтернативный заголовок элемента истории" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:185 +msgid "The URI of the history item" +msgstr "URI элемента истории" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:200 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:165 +msgid "Original URI" +msgstr "Изначальный URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:201 +msgid "The original URI of the history item" +msgstr "Изначальный URI элемента истории" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:216 +msgid "Last visited Time" +msgstr "Время последнего посещения" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:217 +msgid "The time at which the history item was last visited" +msgstr "Время последнего посещения элемента истории" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:258 +msgid "Web View" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:259 +msgid "The Web View that renders the Web Inspector itself" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:272 +msgid "Inspected URI" +msgstr "Исследуемый URI" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:273 +msgid "The URI that is currently being inspected" +msgstr "URI, который исследуется в данный момент" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:289 +msgid "Enable JavaScript profiling" +msgstr "Включить профилирование JavaScript" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:290 +msgid "Profile the executed JavaScript." +msgstr "Профилировать выполняемый код JavaScript." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:150 +msgid "Reason" +msgstr "Причина" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:151 +msgid "The reason why this navigation is occurring" +msgstr "Причина, по которой происходит данный переход" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:166 +msgid "The URI that was requested as the target for the navigation" +msgstr "URI, который был указан в запросе на переход" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:178 +msgid "Button" +msgstr "Кнопка" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:179 +msgid "The button used to click" +msgstr "Кнопка для нажатия" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:194 +msgid "Modifier state" +msgstr "Состояние модификаторов" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:195 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Битовая маска, представляющая состояния клавиш-модификаторов" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:134 +msgid "Default Encoding" +msgstr "Кодировка по умолчанию" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:135 +msgid "The default encoding used to display text." +msgstr "Кодировка текста по умолчанию." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:143 +msgid "Cursive Font Family" +msgstr "Семейство курсивного шрифта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:144 +msgid "The default Cursive font family used to display text." +msgstr "Семейство курсивного шрифта для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:152 +msgid "Default Font Family" +msgstr "Семейство шрифта по умолчанию" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:153 +msgid "The default font family used to display text." +msgstr "Семейство шрифта по умолчанию для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:161 +msgid "Fantasy Font Family" +msgstr "Семейство декоративного шрифта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:162 +msgid "The default Fantasy font family used to display text." +msgstr "Семейство декоративного шрифта для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:170 +msgid "Monospace Font Family" +msgstr "Семейство моноширинного шрифта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:171 +msgid "The default font family used to display monospace text." +msgstr "Семейство моноширинного шрифта для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:179 +msgid "Sans Serif Font Family" +msgstr "Семейство шрифта без засечек" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:180 +msgid "The default Sans Serif font family used to display text." +msgstr "Семейство шрифта без засечек для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:188 +msgid "Serif Font Family" +msgstr "Семейство шрифта с засечками" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:189 +msgid "The default Serif font family used to display text." +msgstr "Семейство шрифта с засечками для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:197 +msgid "Default Font Size" +msgstr "Размер шрифта по умолчанию" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:198 +msgid "The default font size used to display text." +msgstr "Размер шрифта по умолчанию для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:206 +msgid "Default Monospace Font Size" +msgstr "Размер моноширинного шрифта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:207 +msgid "The default font size used to display monospace text." +msgstr "Размер моноширинного шрифта для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:215 +msgid "Minimum Font Size" +msgstr "Минимальный размер шрифта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:216 +msgid "The minimum font size used to display text." +msgstr "Минимальный размер шрифта для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:224 +msgid "Minimum Logical Font Size" +msgstr "Минимальный логический размер шрифта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:225 +msgid "The minimum logical font size used to display text." +msgstr "Минимальный логический размер шрифта для отображения текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:244 +msgid "Enforce 96 DPI" +msgstr "Всегда использовать 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:245 +msgid "Enforce a resolution of 96 DPI" +msgstr "Принудительно использовать разрешение 96 точек на дюйм" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:253 +msgid "Auto Load Images" +msgstr "Загружать изображения автоматически" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:254 +msgid "Load images automatically." +msgstr "Загружать изображения автоматически." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:262 +msgid "Auto Shrink Images" +msgstr "Масштабировать изображения автоматически" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:263 +msgid "Automatically shrink standalone images to fit." +msgstr "Автоматически уменьшать отдельные изображения по размеру экрана." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:271 +msgid "Print Backgrounds" +msgstr "Печатать фоновые изображения" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:272 +msgid "Whether background images should be printed." +msgstr "Должны ли быть выведены на печать фоновые изображения." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:280 +msgid "Enable Scripts" +msgstr "Выполнять сценарии" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:281 +msgid "Enable embedded scripting languages." +msgstr "Выполнять встроенные сценарии на страницах." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:289 +msgid "Enable Plugins" +msgstr "Использовать модули" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:290 +msgid "Enable embedded plugin objects." +msgstr "Разрешить встроенные объекты модулей на страницах." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:298 +msgid "Resizable Text Areas" +msgstr "Изменяемый размер текстовых полей" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:299 +msgid "Whether text areas are resizable." +msgstr "Текстовые поля могут изменять размер." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:306 +msgid "User Stylesheet URI" +msgstr "URI пользовательской таблицы стилей" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:307 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "URI таблицы стилей, которая будет применена для всех страниц." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:322 +msgid "Zoom Stepping Value" +msgstr "Приращение масштаба" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:323 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "Значение, на которое будет изменяться значение масштаба." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:341 +msgid "Enable Developer Extras" +msgstr "Включить средства разработчика" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:342 +msgid "Enables special extensions that help developers" +msgstr "Включить особые расширения, которые могут быть полезны разработчикам" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:362 +msgid "Enable Private Browsing" +msgstr "Включить конфиденциальный режим" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:363 +msgid "Enables private browsing mode" +msgstr "Включает конфиденциальный режим просмотра" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:378 +msgid "Enable Spell Checking" +msgstr "Проверять орфографию" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:379 +msgid "Enables spell checking while typing" +msgstr "Выполнять проверку орфографии при вводе текста" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:402 +msgid "Languages to use for spell checking" +msgstr "Языки для проверки орфографии" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:403 +msgid "Comma separated list of languages to use for spell checking" +msgstr "Список языков через запятую, которые будут использоваться для проверки орфографии" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:417 +msgid "Enable Caret Browsing" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:418 +msgid "Whether to enable accesibility enhanced keyboard navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1772 +msgid "Returns the @web_view's document title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1786 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Copy target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1813 +msgid "Paste target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1814 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Settings" +msgstr "Настройки" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "An associated WebKitWebSettings instance" +msgstr "Связанный экземпляр WebKitWebSettings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1834 +msgid "Web Inspector" +msgstr "Веб-инспектор" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1835 +msgid "The associated WebKitWebInspector instance" +msgstr "Связанный экземпляр WebKitWebInspector" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1855 +msgid "Editable" +msgstr "Изменяемое" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1856 +msgid "Whether content can be modified by the user" +msgstr "Может ли содержимое быть изменено пользователем" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1862 +msgid "Transparent" +msgstr "Прозрачное" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1863 +msgid "Whether content has a transparent background" +msgstr "Имеется ли у содержимого прозрачный фон" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1876 +msgid "Zoom level" +msgstr "Масштаб" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1877 +msgid "The level of zoom of the content" +msgstr "Масштаб содержимого страницы" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1892 +msgid "Full content zoom" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1893 +msgid "Whether the full content is scaled when zooming" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1906 +msgid "Encoding" +msgstr "Кодировка" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1907 +msgid "The default encoding of the web view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1920 +msgid "Custom Encoding" +msgstr "Особая кодировка" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1921 +msgid "The custom encoding of the web view" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:54 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:59 +msgid "Submit" +msgstr "Отправить" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:64 +msgid "Reset" +msgstr "Сброс" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:69 +msgid "_Searchable Index" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:74 +msgid "Choose File" +msgstr "Выбрать файл" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:79 +msgid "(None)" +msgstr "(Нет)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:84 +msgid "Open Link in New _Window" +msgstr "Открыть ссылку в новом _окне" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:89 +msgid "_Download Linked File" +msgstr "_Загрузить связанный файл" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:94 +msgid "Copy Link Loc_ation" +msgstr "_Копировать ссылку" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:99 +msgid "Open _Image in New Window" +msgstr "Открыть _изображение в новом окне" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:104 +msgid "Sa_ve Image As" +msgstr "Со_хранить изображение как..." + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:109 +msgid "Cop_y Image" +msgstr "Коп_ировать изображение" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:114 +msgid "Open _Frame in New Window" +msgstr "Открыть _фрейм в новом окне" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:165 +msgid "_Reload" +msgstr "_Обновить" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:182 +msgid "No Guesses Found" +msgstr "Нет вариантов" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:187 +msgid "_Ignore Spelling" +msgstr "_Пропустить слово" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:192 +msgid "_Learn Spelling" +msgstr "_Добавить слово" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:197 +msgid "_Search the Web" +msgstr "_Найти в сети" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:202 +msgid "_Look Up in Dictionary" +msgstr "Найти в _словаре" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:207 +msgid "_Open Link" +msgstr "О_ткрыть ссылку" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:212 +msgid "Ignore _Grammar" +msgstr "_Игнорировать грамматику" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:217 +msgid "Spelling and _Grammar" +msgstr "_Орфография и грамматика" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:222 +msgid "_Show Spelling and Grammar" +msgstr "_Показать орфографию и грамматику" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:222 +msgid "_Hide Spelling and Grammar" +msgstr "_Скрыть орфографию и грамматику" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:227 +msgid "_Check Document Now" +msgstr "Проверить _документ" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:232 +msgid "Check Spelling While _Typing" +msgstr "Проверять _орфографию в процессе ввода" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:237 +msgid "Check _Grammar With Spelling" +msgstr "Проверять _также грамматику" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:242 +msgid "_Font" +msgstr "_Шрифт" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:265 +msgid "_Outline" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:270 +msgid "Inspect _Element" +msgstr "Исследовать _элемент" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:275 +msgid "No recent searches" +msgstr "Нет недавних поисковых запросов" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:280 +msgid "Recent searches" +msgstr "Недавние поисковые запросы" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:285 +msgid "_Clear recent searches" +msgstr "_Удалить недавние поисковые запросы" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:290 +msgid "term" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:295 +msgid "definition" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:300 +msgid "press" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:305 +msgid "select" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:310 +msgid "activate" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:315 +msgid "uncheck" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:320 +msgid "check" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:325 +msgid "jump" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:331 +msgid " files" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:336 +msgid "Unknown" +msgstr "Неизвестно" + diff --git a/WebKit/gtk/po/sr.po b/WebKit/gtk/po/sr.po new file mode 100644 index 0000000..e7274d5 --- /dev/null +++ b/WebKit/gtk/po/sr.po @@ -0,0 +1,705 @@ +# Serbian translation of webkit
+# Courtesy of Prevod.org team (http://prevod.org/) -- 2009.
+#
+# This file is distributed under the same license as the webkit package.
+#
+# Милош Поповић <gpopac@gmail.com> +# Review by Бранко Кокановић <branko.kokanovic@gmail.com> (27.6.2009.) +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.10\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-06-19 02:35+100\n" +"Last-Translator: Милош Поповић <gpopac@gmail.com>\n" +"Language-Team: Serbian <gnom@prevod.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Пошаљи датотеку" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Начин _уноса" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "Ознака с _лева на десно" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "Ознака с _десна на лево" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "_Уметање с лева на десно" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "У_метање с десна на лево" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "_Препис с лева на десно" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "П_репис с десна на лево" + +# Ух, ух, ух... ~Милош :( +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +#, fuzzy +msgid "PDF _Pop directional formatting" +msgstr "Искачуће _дирекционо форматирање" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "_Нула са тачком" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "П_рецртана нула" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "Н_епрецртана нула" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Уметни уникод контролни знак" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Захтев на мрежи" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "Захтевана адресе датотеке коју желите да преузмете" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "Циљна адреса" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "Циљна адреса где желите да сачувате датотеку" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Предложено име датотеке" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "Подразумевано име датотеке приликом чувања" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Преузето" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Показује тренутни напредак преузимања" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Стање" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Показује тренутно стање преузимања" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Величина" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "Приказује величину преузете датотеке" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Укупна величина" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "Приказује укупну величину преузете датотеке" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "Прекинута преузимања" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Страница %s захтева корисничко име и лозинку" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Корисничко име:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Лозинка:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Упамти лозинку" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Име" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Име оквира" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Наслов" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Наслов документа унутар оквира" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "Адреса" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "Адреса садржаја који је приказан унутар оквира" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "Наслов за ставке у историјату" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +#, fuzzy +msgid "Alternate Title" +msgstr "Променљив наслов" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +#, fuzzy +msgid "The alternate title of the history item" +msgstr "Променљив наслов ставке у историјату" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "Адреса ставке у историјату" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "Оригинална адреса" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "Оригинална адреса ставке у историјату" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Последња посета" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "Време када је ставка из историјата последњи пут посећена" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Веб приказ" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "Веб приказ кога исцртава „Веб инспектор“" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +#, fuzzy +msgid "Inspected URI" +msgstr "Инспекција адресе" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +#, fuzzy +msgid "The URI that is currently being inspected" +msgstr "Адреса коју тренутно обрађује инспектор" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Омогући учење Јава скрипте" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Прави профил покренуте Јава скрипте." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Разлог" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "Разлог због кога је приказана навигација" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "Циљна адреса коју захтева навигација" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Дугме" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "Дугме које се притиска" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Стање измењивача" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Ознака која одређује да ли је укључен тастер за измену функције" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Подразумевано кодирање" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "Подразумевано кодирање за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Скуп искошених фонтова" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "Подразумевани скуп искошених фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Подразумевани скуп фонтова" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "Подразумевани скуп фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Скуп фантази фонтова" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "Подразумевани скуп фантази фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Скуп равномерних фонтова" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "Подразумевани скуп равномерно широких фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Скуп безсерифних фонтова" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "Подразумевани скуп безсерифних фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Скуп серифних фонтова" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "Подразумевани скуп серифних фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Подразумевана величина фонта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "Подразумевана величина фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Подразумевана величина разномерног фонта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "Подразумевана величина равномерно широких фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Најмања величина фонта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "Најмања величина фонта за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Најмања логичка величина фонта" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "Најмања логичка величина фонтова за приказ текста." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Приморај 96 ТПИ" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Приморава резолуцију од 96 ТПИ" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Сам учитај слике" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Аутоматски учитава слике." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Сам смањи слике" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Аутоматску умањује слике тако да се уклопиле у страну." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Исцртај позадину" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Одређује да ли да се приказују позадинске слике." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Омогући скрипте" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Укључује језике за скрипте уметнуте унутар страница." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Омогући додатке" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Укључује објекте уметнуте унутар страница." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Текст променљиве величине" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Одређује да ли да област са текстом буде променљиве величине." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "Адреса датотеке са стилом" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" +"Путања до датотеке са сопственим стилом који се примењује на сваку страницу." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Корак увећања" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "Вредност за коју се мења приказ приликом повећања или смањења." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Укључи додатке за развој" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Укључује додатке који помажу приликом развоја овог програма" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Приватни режим" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Укључује режим разгледања уз чување ваше приватности" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Исписује наслов документа из @веб_прегледа" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Исписује тренутну адресу садржаја приказаног у @веб_прегледу" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Умножи списак циљева" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "Циљева за копирање међу списак исечака које подржава веб преглед" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Убаци списак циљева" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "Списак циљева за убацивање из оставе које подржава веб преглед" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Подешавања" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "Повезано са WebKitWebSettings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Веб инспектор" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "Повезано са WebKitWebSettings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Измењиво" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Омогућава кориснику да уређује приказани садржај" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Провидност" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Омогућава провидну позадину за садржај" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Увећање" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Ниво увећања приказаног садржаја" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Увећавај све" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Одређује да ли да се увећава целокупан садржај" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Кодирање" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "Подразумевано кодирање веб странице" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Произвољно кодирање" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "Произвољно кодирање веб странице" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Пошаљи" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Поништи" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "_Претражив индекс" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Изаберите датотеку" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(ништа)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Отвори везу у _новом прозору" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Преузми циљну датотеку" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Умножи _адресу везе" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "_Отвори слику у новом прозору" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "_Сачувај слику као" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "_Умножи слику" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "О_твори оквир у новом прозору" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "_Освежи" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Нема поклапања" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Занемари ову реч" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Упамти ову реч" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Потражи на мрежи" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "_Потражи у директоријуму" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Отвори везу" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Занемари _правопис" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Провера пи_сања и правописа" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Прикажи проверу писања и правописа" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "С_акриј проверу писања и правописа" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "Про_вери документ" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Провери писање _док куцам" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "П_ровери правопис и писање" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Фонт" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Оквир" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +#, fuzzy +msgid "Inspect _Element" +msgstr "Инспекција _елемента" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Нема скорашњих претрага" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Скорашње претраге" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Очисти скорашње претраге" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "термин" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "дефиниција" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "притисни" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "изабери" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "покрени" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "искључи" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "укључи" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "иди" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " датотеке" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Непознато" diff --git a/WebKit/gtk/po/sr@latin.po b/WebKit/gtk/po/sr@latin.po new file mode 100644 index 0000000..4cdb0bb --- /dev/null +++ b/WebKit/gtk/po/sr@latin.po @@ -0,0 +1,705 @@ +# Serbian translation of webkit
+# Courtesy of Prevod.org team (http://prevod.org/) -- 2009.
+#
+# This file is distributed under the same license as the webkit package.
+#
+# Miloš Popović <gpopac@gmail.com> +# Review by Branko Kokanović <branko.kokanovic@gmail.com> (27.6.2009.) +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.10\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-06-19 02:35+100\n" +"Last-Translator: Miloš Popović <gpopac@gmail.com>\n" +"Language-Team: Serbian <gnom@prevod.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Pošalji datoteku" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Način _unosa" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "Oznaka s _leva na desno" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "Oznaka s _desna na levo" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "_Umetanje s leva na desno" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "U_metanje s desna na levo" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "_Prepis s leva na desno" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "P_repis s desna na levo" + +# Uh, uh, uh... ~Miloš :( +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +#, fuzzy +msgid "PDF _Pop directional formatting" +msgstr "Iskačuće _direkciono formatiranje" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "_Nula sa tačkom" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "P_recrtana nula" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "N_eprecrtana nula" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Umetni unikod kontrolni znak" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Zahtev na mreži" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "Zahtevana adrese datoteke koju želite da preuzmete" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "Ciljna adresa" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "Ciljna adresa gde želite da sačuvate datoteku" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Predloženo ime datoteke" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "Podrazumevano ime datoteke prilikom čuvanja" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Preuzeto" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Pokazuje trenutni napredak preuzimanja" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Stanje" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Pokazuje trenutno stanje preuzimanja" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Veličina" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "Prikazuje veličinu preuzete datoteke" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Ukupna veličina" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "Prikazuje ukupnu veličinu preuzete datoteke" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "Prekinuta preuzimanja" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Stranica %s zahteva korisničko ime i lozinku" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Korisničko ime:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Lozinka:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Upamti lozinku" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Ime" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Ime okvira" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Naslov" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Naslov dokumenta unutar okvira" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "Adresa" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "Adresa sadržaja koji je prikazan unutar okvira" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "Naslov za stavke u istorijatu" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +#, fuzzy +msgid "Alternate Title" +msgstr "Promenljiv naslov" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +#, fuzzy +msgid "The alternate title of the history item" +msgstr "Promenljiv naslov stavke u istorijatu" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "Adresa stavke u istorijatu" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "Originalna adresa" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "Originalna adresa stavke u istorijatu" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Poslednja poseta" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "Vreme kada je stavka iz istorijata poslednji put posećena" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Veb prikaz" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "Veb prikaz koga iscrtava „Veb inspektor“" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +#, fuzzy +msgid "Inspected URI" +msgstr "Inspekcija adrese" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +#, fuzzy +msgid "The URI that is currently being inspected" +msgstr "Adresa koju trenutno obrađuje inspektor" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Omogući učenje Java skripte" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Pravi profil pokrenute Java skripte." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Razlog" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "Razlog zbog koga je prikazana navigacija" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "Ciljna adresa koju zahteva navigacija" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Dugme" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "Dugme koje se pritiska" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Stanje izmenjivača" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Oznaka koja određuje da li je uključen taster za izmenu funkcije" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Podrazumevano kodiranje" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "Podrazumevano kodiranje za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Skup iskošenih fontova" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "Podrazumevani skup iskošenih fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Podrazumevani skup fontova" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "Podrazumevani skup fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Skup fantazi fontova" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "Podrazumevani skup fantazi fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Skup ravnomernih fontova" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "Podrazumevani skup ravnomerno širokih fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Skup bezserifnih fontova" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "Podrazumevani skup bezserifnih fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Skup serifnih fontova" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "Podrazumevani skup serifnih fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Podrazumevana veličina fonta" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "Podrazumevana veličina fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Podrazumevana veličina raznomernog fonta" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "Podrazumevana veličina ravnomerno širokih fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Najmanja veličina fonta" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "Najmanja veličina fonta za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Najmanja logička veličina fonta" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "Najmanja logička veličina fontova za prikaz teksta." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Primoraj 96 TPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Primorava rezoluciju od 96 TPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Sam učitaj slike" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Automatski učitava slike." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Sam smanji slike" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Automatsku umanjuje slike tako da se uklopile u stranu." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Iscrtaj pozadinu" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Određuje da li da se prikazuju pozadinske slike." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Omogući skripte" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Uključuje jezike za skripte umetnute unutar stranica." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Omogući dodatke" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Uključuje objekte umetnute unutar stranica." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Tekst promenljive veličine" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Određuje da li da oblast sa tekstom bude promenljive veličine." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "Adresa datoteke sa stilom" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" +"Putanja do datoteke sa sopstvenim stilom koji se primenjuje na svaku stranicu." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Korak uvećanja" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "Vrednost za koju se menja prikaz prilikom povećanja ili smanjenja." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Uključi dodatke za razvoj" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Uključuje dodatke koji pomažu prilikom razvoja ovog programa" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Privatni režim" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Uključuje režim razgledanja uz čuvanje vaše privatnosti" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Ispisuje naslov dokumenta iz @veb_pregleda" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Ispisuje trenutnu adresu sadržaja prikazanog u @veb_pregledu" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Umnoži spisak ciljeva" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "Ciljeva za kopiranje među spisak isečaka koje podržava veb pregled" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Ubaci spisak ciljeva" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "Spisak ciljeva za ubacivanje iz ostave koje podržava veb pregled" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Podešavanja" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "Povezano sa WebKitWebSettings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Veb inspektor" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "Povezano sa WebKitWebSettings" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Izmenjivo" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Omogućava korisniku da uređuje prikazani sadržaj" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Providnost" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Omogućava providnu pozadinu za sadržaj" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Uvećanje" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Nivo uvećanja prikazanog sadržaja" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Uvećavaj sve" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Određuje da li da se uvećava celokupan sadržaj" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Kodiranje" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "Podrazumevano kodiranje veb stranice" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Proizvoljno kodiranje" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "Proizvoljno kodiranje veb stranice" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Pošalji" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Poništi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "_Pretraživ indeks" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Izaberite datoteku" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(ništa)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Otvori vezu u _novom prozoru" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Preuzmi ciljnu datoteku" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Umnoži _adresu veze" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "_Otvori sliku u novom prozoru" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "_Sačuvaj sliku kao" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "_Umnoži sliku" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "O_tvori okvir u novom prozoru" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "_Osveži" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Nema poklapanja" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Zanemari ovu reč" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Upamti ovu reč" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Potraži na mreži" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "_Potraži u direktorijumu" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Otvori vezu" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Zanemari _pravopis" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Provera pi_sanja i pravopisa" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Prikaži proveru pisanja i pravopisa" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "S_akrij proveru pisanja i pravopisa" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "Pro_veri dokument" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Proveri pisanje _dok kucam" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "P_roveri pravopis i pisanje" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Font" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Okvir" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +#, fuzzy +msgid "Inspect _Element" +msgstr "Inspekcija _elementa" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Nema skorašnjih pretraga" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Skorašnje pretrage" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Očisti skorašnje pretrage" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "termin" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definicija" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "pritisni" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "izaberi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "pokreni" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "isključi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "uključi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "idi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " datoteke" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Nepoznato" diff --git a/WebKit/gtk/po/sv.po b/WebKit/gtk/po/sv.po new file mode 100644 index 0000000..0454658 --- /dev/null +++ b/WebKit/gtk/po/sv.po @@ -0,0 +1,693 @@ +# Swedish translation for webkitgtk+. +# This file is put in the public domain. +# Daniel Nylander <po@danielnylander.se>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: webkitgtk+\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-04-30 12:26+0100\n" +"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" +"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Skicka upp fil" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Inmatnings_metoder" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Nätverksbegäran" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Föreslaget filnamn" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Förlopp" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Fastställer aktuellt förlopp för hämtningen" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Status" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Fastställer aktuell status för hämtningen" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Aktuell storlek" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Total storlek" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "Totala storleken för filen" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "Användaren avbröt hämtningen" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Ett användarnamn och lösenord begärs av platsen %s" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Användarnamn:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Lösenord:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Kom ihåg lösenordet" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Namn" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Namnet på ramen" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Titel" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Dokumenttiteln för ramen" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Alternativ titel" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Senast besökt" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Anledning" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Knapp" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Standardteckenkodning" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "Standardkodningen som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Typsnittsfamiljen Cursive" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "Standardfamiljen för Cursive-typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Standardfamilj för typsnitt" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "Standardfamiljen för typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Typsnittsfamiljen Fantasy" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "Standardfamiljen för Fantasy-typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Typsnittsfamiljen Monospace" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "Standardfamiljen för typsnitt som används för att visa text med fast breddsteg." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Typsnittsfamiljen Sans Serif" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "Standardfamiljen för Sans Serif-typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Typsnittsfamiljen Serif" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "Standardfamiljen för Serif-typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Standardstorlek för typsnitt" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "Standardstorleken för typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Standardstorlek för Monospace-typsnitt" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "Standardstorleken för typsnitt som används för att visa text med fast breddsteg." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Minimumstorlek för typsnitt" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "Minimumstorlek för typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Logisk minimumstorlek för typsnitt" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "Logisk minimumstorlek för typsnitt som används för att visa text." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Tvinga 96 punkter/tum" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Tvinga en upplösning på 96 punkter/tum" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Läs automatiskt in bilder" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Läs in bilder automatiskt." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Skriv ut bakgrunder" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Huruvida bakgrundsbilder ska skrivas ut." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Aktivera skript" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Aktivera inbäddade skriptspråk." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Aktivera insticksmoduler" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Aktivera inbäddade insticksobjekt." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Aktivera privat surfning" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Aktiverar läget för privat surfning" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Kopiera mållista" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Inställningar" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Redigeringsbar" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Genomskinlig" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Huruvida innehållet har en genomskinlig bakgrund" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Zoomnivå" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Zoomnivån för innehållet" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Teckenkodning" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Anpassad teckenkodning" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Skicka" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Återställ" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "_Sökbart index" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Välj fil" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Ingen)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Öppna länk i nytt _fönster" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Hämta länkad fil" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Kopiera länkens ad_ress" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Öppna _bild i nytt fönster" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Spa_ra bild som" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Kop_iera bild" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "Öppna _ram i nytt fönster" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "_Uppdatera" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Inga gissningar hittades" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Ignorera stavfel" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Lär stavning" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Sök på webben" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "Sl_å upp i ordbok" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Öppna länk" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Ignorera _grammatikfel" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Stavning och _grammatik" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Visa stavning och grammatik" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "_Dölj stavning och grammatik" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "_Kontrollera dokumentet nu" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Kontrollera stavning vid _inmatning" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Kontrollera _grammatik med stavning" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Typsnitt" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Kontur" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Inga tidigare sökningar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Tidigare sökningar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Töm tidigare sökningar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "term" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "definition" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "tryck" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "välj" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "aktivera" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "avmarkera" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "markera" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "hoppa" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " filer" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Okänt" + diff --git a/WebKit/gtk/po/vi.po b/WebKit/gtk/po/vi.po new file mode 100644 index 0000000..27baa21 --- /dev/null +++ b/WebKit/gtk/po/vi.po @@ -0,0 +1,692 @@ +# Vietnamese translation for WebKit. +# This file is put in the public domain. +# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.4\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-06-26 08:31+1000\n" +"Last-Translator: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Tải tập tin lên" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Kiểu _nhập" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "LRM Đánh dấu _Trái-sang-phải" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "RLM Đánh dấu _Phải-sang-trái" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "LRE _Nhúng Trái-sang-phải" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "RLE N_húng Phải-sang-trái" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "LRO Đè T_rái-sang-phải" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "RLO Đè P_hải-sang-trái" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "PDF Định dạng hướng _Pop" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "ZWS khoảng trống không kích thước" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "ZWJ _Kết nối không kích thước" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "ZWNJ _Phi kết nối không kích thước" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "_Chèn kí tự Unicode" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "Yêu cầu mạng" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "Yêu cầu mạng cho URI cần tải về" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "URI đích" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "URI đích nơi lưu tập tin" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Tên tập tin đề nghị" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "Tên tập tin đề nghị mặc định khi lưu" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Tiến trình" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "Xác định tiến độ tải về hiện thời" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Tình trạng" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "Xác định tình trạng tải về hiện thời" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Kích thước hiện thời" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "Lượng dữ liệu đã tải về" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Kích thước tổng cộng" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "Kích thước của toàn bộ tập tin" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "Người dùng đã huỷ tải về" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Trang %s đang yêu cầu tên người dùng và mật khẩu" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Tên người dùng:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Mật khẩu:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Nhớ mật khẩu" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Tên" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Tên khung" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Tựa đề" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Tựa đề tài liệu của khung" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "URI hiện thời của nội dung khung đang hiển thị" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "Tựa đề mục lược sử" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Tựa đề thay thế" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "Tựa đề thay thế cho mục lược sử" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "URI cho mục lược sử" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "URI gốc" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "URI gốc của mục lược sử" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Lần xem cuối" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "Thời điểm xem mục lược sử lần cuối" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Khung xem Web" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "Khung xem Web dùng để hiển thị bản thân Thanh tra Web" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "URI được điều tra" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "URI đang được điều tra" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Bật kiểm định JavaScript" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Kiểm định JavaScript được thực thi." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Nguyên nhân" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Nút" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "Nút được dùng để nhấn" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Trạng thái phím bổ trợ" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Bitmask đại diện trạng thái phím bổ trợ" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Bảng mã mặc định" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "Bảng mã mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Họ phông Cursive" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "Họ phông Cursive mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Họ phông mặc định" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "Họ phông mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Họ phông Fantasy" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "Họ phông Fantasy mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Họ phông Monospace" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "Họ phông Monospace mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Họ phông Sans Serif" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "Họ phông Sans Serif mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Họ phông Serif" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "Họ phông Serif mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Cỡ phông mặc định" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "Cỡ phông mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Cỡ phông Monospace mặc định" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "Cỡ phông Monospace mặc định để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Cỡ phông tối thiểu" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "Cỡ phông tối thiểu để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "Cỡ phông logic tối thiểu" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "Cỡ phông logic tối thiểu dùng để hiển thị văn bản." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Ép 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Ép độ phân giảii 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Tự động nạp ảnh" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Nạp ảnh tự động." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Tự động co ảnh." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Tự động co ảnh độc lập cho khít." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "In ảnh nền" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Có in ảnh nền hay không." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Bật phần mở rộng" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Bật phần mở rộng," + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Ô văn bản có thể thay đổi kích thước." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Ô văn bản có thể thay đổi kích thước hay không." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "URI stylesheet người dùng" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "URI của stylesheet áp dụng cho mọi trang." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Giá trị bước thu/phóng" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "Giá trị thay đổi mức thu phóng mỗi lần." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Bật Developer Extras" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Bật các phần mở rộng đặc biệt, hữu dụng cho người phát triển" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Bật duyệt riêng tư" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Bật chế độ duyệt riêng tư" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Trả về tiêu đề tài liệu của @web_view" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Trả về URI hiện thời của tài liệu được @web_view hiển thị" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "Danh sách đích chép" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "Danh sách đích mà khung xem web này hỗ trợ khi chép vào clipboard." + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "Danh sách đích dán" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "Danh sách đích mà khung xem web này hỗ trợ khi dán clipboard." + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Thiết lập" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "Một thể hiện WebKitWebSettings liên kết" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Thanh tra Web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "Một thể hiện WebKitWebInspector liên kết" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Có thể thay đổi" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Nội dung có thể bị người dùng thay đổi hay không" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Trong suốt" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Nội dung có ảnh nền trong suốt không." + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Mức phóng" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Mức phóng to/thu nhỏ nội dung" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Phóng nội dung đầy đủ" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Toàn bộ nội dung có bị co lại không." + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Bảng mã" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "Bảng mã mặc định cho khung xem Web" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Bảng mã tự chọn" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "Bảng mã tự chọn cho khung xem Web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Gửi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Phục hồi" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "Chỉ mục _tìm được" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Chọn tập tin" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Không)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "_Mở liên kết trong cửa sổ mới" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "_Tải tập tin được liên kết" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Chép vị trí _liên kết" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Mở ả_nh trong cửa sổ mới" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Lưu ảnh _là" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "Chép ả_nh" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "Mở _khung trong cửa sổ mới" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "Nạp _lại" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Không đoán ra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Bỏ qua lỗi chính tả" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "_Học lỗi chính tả" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Tìm trên Web" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "_Tra từ điển" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Mở liên kết" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Bỏ qua _ngữ pháp" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Chính tả và _Ngữ pháp" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Hiện lỗi chính tả và ngữ pháp" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "Ẩ_n Chính tả và Ngữ pháp" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "_Kiểm tra tài liệu ngay" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Kiểm tra khi đang _gõ" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Kiểm tra lỗi _ngữ pháp kèm chính tả" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "_Phông" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Nét ngoài" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Thanh tra _yếu tố" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Không có tìm kiếm gần đây" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Tìm kiếm gần đây" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Xoá tìm kiếm gần đây" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "thuật ngữ" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "định nghĩa" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "nhấn" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "chọn" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "kích hoạt" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "bỏ chọn" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "chọn" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "nhảy" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " tập tin" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Không biết" diff --git a/WebKit/gtk/po/webkit.pot b/WebKit/gtk/po/webkit.pot new file mode 100644 index 0000000..90cb868 --- /dev/null +++ b/WebKit/gtk/po/webkit.pot @@ -0,0 +1,693 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.4\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "" diff --git a/WebKit/gtk/po/zh_CN.po b/WebKit/gtk/po/zh_CN.po new file mode 100644 index 0000000..5046880 --- /dev/null +++ b/WebKit/gtk/po/zh_CN.po @@ -0,0 +1,694 @@ +# Chinese translations for WebKit package +# WebKit 软件包的简体中文翻译. +# This file is put in public domain. +# +# Aron Xu <aronmalache@163.com>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.4\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-07-14 18:11+0800\n" +"Last-Translator: Aron Xu <aronmalache@163.com>\n" +"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "上传文件" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "输入方式(_M)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "插入 Unicode 控制字符(_I)" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +msgid "Network Request" +msgstr "网络请求" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +msgid "The network request for the URI that should be downloaded" +msgstr "网络请求该 URI 应当被下载" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "目的 URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "保存文件的目的 URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "建议文件名" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "保存时默认建议使用的文件名" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "进度" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +msgid "Determines the current progress of the download" +msgstr "显示当前下载进度" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "状态" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +msgid "Determines the current status of the download" +msgstr "显示当前下载状态" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "当前尺寸" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "当前已下载的数据大小" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "总尺寸" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "文件总尺寸" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "用户取消了下载" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "站点 %s 请求用户名和密码" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "用户名:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "密码:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "记住密码" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "名称" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "框架名称" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "标题" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "标题名称" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "框架中当前显示内容的 URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "历史条目的标题" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "可选标题" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "历史条目的可选标题" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "历史条目的 URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "原始 URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "历史条目的原始 URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "最近访问时间" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "最近访问历史条目的时间" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Web View" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "Web View 渲染 Web Inspector 本身" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "已检查的 URI" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "当前已经被检查的 URI" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "启用 JavaScript 摘要" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "记录已执行的 JavaScript 的摘要信息。" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "原因" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +msgid "The reason why this navigation is occurring" +msgstr "导航产生的原因" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "此 URI 是被作为导航目标而请求的" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "按钮" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "用以点击的按钮" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "修饰键信息" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "一个代表当前修饰键状态的位掩码" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "默认编码" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "用以显示文本的默认编码。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "草书字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "用以显示文本的默认草书字体。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "默认字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "用以显示文本的默认字体。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "幻想字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "用以显示文本的默认幻想字体。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "等宽字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "用以显示文本的默认等宽字体。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Sans Serif 字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "用以显示文本的默认 Sans Serif 字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Serif 字体" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "用以显示文本的默认 Serif 字体。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "默认字号" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "用以显示文本的默认字号。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "默认等宽字号" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "用以显示等宽文本的默认字号。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "最小字号" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "用以显示文本的最小字号。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +msgid "Minimum Logical Font Size" +msgstr "最小逻辑字号" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +msgid "The minimum logical font size used to display text." +msgstr "用以显示文本的最小逻辑字号。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "强制为 96 DPI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "强制 96 DPI 分辨率" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "自动载入图像" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "自动载入图像。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "自动缩小图像" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "自动缩小单个图像以适应需求。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "打印背景" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "是否打印背景。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "启用脚本" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "启用嵌入式脚步语言" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "启用插件" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "启用嵌入式插件对象。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "大小可变文本域" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "文本域大小是否是否可变。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "用户样式表 URI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "应用于每个页面的样式表的 URI。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "缩放步值" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "在放大或缩小中每次缩放的步值。" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "启用开发者附加" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "启用帮助开发者的特殊扩展" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "启用隐私浏览" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "启用隐私浏览模式" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "返回 @web_view 的文档标题" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "返回当前由 @web_view 显示的内容的 URI" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "复制目标列表" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "目标 Web View 列表支持剪贴簿复制" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "粘贴目标列表" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "目标 Web View 列表支持剪贴簿粘贴" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "设置" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "一个关联的 WebKitWebSettings 样例" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Web Inspector" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "一个关联的 WebKitWebInspector 样例" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "可编辑" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "用户是否可编辑内容" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "透明" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "内容是否包含透明背景" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "缩放级别" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "内容缩放级别" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "完整内容缩放" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "是否将所有内容完整缩放" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "编码" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "Web View 的默认编码" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "自定义编码" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "Web View的自定义编码" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "提交" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "重置" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "可搜索索引(_S)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "选择文件" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(无)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "在新窗口打开链接(_W)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "下载目标文件(_D)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "复制链接地址(_A)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "在新窗口打开图像(_I)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "保存图像(_V)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "复制图像(_Y)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "在新窗口打开框架(_F)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "重载(_R)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "没有找到拼写建议" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "忽略拼写(_I)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "记录特例(_L)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "搜索互联网(_S)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "查询词典(_L)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "打开链接(_O)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "忽略语法(_G)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "拼写和语法(_G)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "显示拼写和语法(_S)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "隐藏拼写和语法(_H)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "立即检查文档(_C)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "输入时检查拼写(_T)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "检查拼写时检查语法(_G)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "字体(_F)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "概要(_O)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "检查元素(_E)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "无最近搜索" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "最近搜索" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "清除最近搜索记录(_C)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "术语" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "定义" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "按" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "选择" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "激活" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "反选" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "勾选" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "跳转" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr "文件" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "未知" diff --git a/WebKit/gtk/resources/error.html b/WebKit/gtk/resources/error.html new file mode 100644 index 0000000..27d4a57 --- /dev/null +++ b/WebKit/gtk/resources/error.html @@ -0,0 +1,60 @@ +<html> +<head> +<title>Error</title> +<style type="text/css"> +body { + background-color: #fff; + margin: 0; + padding: 0; +} + +#errorContainer { + background: #fff; + min-width: 35em; + max-width: 35em; + position: absolute; + top: 2em; + left: 1em; + padding: 10px; + border: 2px solid #eee; + -webkit-border-radius: 5px; +} + +#errorTitleText { + font-size: 120%; + font-weight: bold; +} + +#errorMessageText { + font-size: 80%; +} + +</style> +<script type="text/javascript"> + +function tryagain() +{ + location.reload(); +} +</script> +</head> +<body> +<div id="errorContainer"> + +<div id="errorTitle"> + <p id="errorTitleText">Unable to load page</p> +</div> +<div id="errorMessage"> + <p>Problem occurred while loading the URL %s</p> + <p id="errorMessageText">%s</a> +</p> +</div> + +<form name="bl"> +<input type="button" value="Try again" onclick="javascript:tryagain()" /> +</form> + +</div> + +</body> +</html> diff --git a/WebKit/gtk/tests/testatk.c b/WebKit/gtk/tests/testatk.c new file mode 100644 index 0000000..61eae60 --- /dev/null +++ b/WebKit/gtk/tests/testatk.c @@ -0,0 +1,240 @@ +/* + * Copyright (C) 2009 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <errno.h> +#include <unistd.h> +#include <glib.h> +#include <glib/gstdio.h> +#include <gtk/gtk.h> +#include <webkit/webkit.h> + +#if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0) + +static const char* contents = "<html><body><p>This is a test. This is the second sentence. And this the third.</p></body></html>"; + +static gboolean bail_out(GMainLoop* loop) +{ + if (g_main_loop_is_running(loop)) + g_main_loop_quit(loop); + + return FALSE; +} + +typedef gchar* (*AtkGetTextFunction) (AtkText*, gint, AtkTextBoundary, gint*, gint*); + +static void test_get_text_function(AtkText* text_obj, AtkGetTextFunction fn, AtkTextBoundary boundary, gint offset, const char* text_result, gint start_offset_result, gint end_offset_result) +{ + gint start_offset, end_offset; + char* text; + + text = fn(text_obj, offset, boundary, &start_offset, &end_offset); + g_assert_cmpstr(text, ==, text_result); + g_assert_cmpint(start_offset, ==, start_offset_result); + g_assert_cmpint(end_offset, ==, end_offset_result); + g_free(text); +} + +static void test_webkit_atk_get_text_at_offset(void) +{ + WebKitWebView* webView; + AtkObject *obj; + GMainLoop* loop; + AtkText* text_obj; + char* text; + + webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_object_ref_sink(webView); + webkit_web_view_load_string(webView, contents, NULL, NULL, NULL); + loop = g_main_loop_new(NULL, TRUE); + + g_timeout_add(100, (GSourceFunc)bail_out, loop); + g_main_loop_run(loop); + + /* Get to the inner AtkText object */ + obj = gtk_widget_get_accessible(GTK_WIDGET(webView)); + g_assert(obj); + obj = atk_object_ref_accessible_child(obj, 0); + g_assert(obj); + obj = atk_object_ref_accessible_child(obj, 0); + g_assert(obj); + + text_obj = ATK_TEXT(obj); + g_assert(ATK_IS_TEXT(text_obj)); + + text = atk_text_get_text(text_obj, 0, -1); + g_assert_cmpstr(text, ==, "This is a test. This is the second sentence. And this the third."); + g_free(text); + + /* ATK_TEXT_BOUNDARY_CHAR */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_CHAR, + 0, "T", 0, 1); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_CHAR, + 0, "h", 1, 2); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_CHAR, + 0, "", 0, 0); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_CHAR, + 1, "T", 0, 1); + + /* ATK_TEXT_BOUNDARY_WORD_START */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, + 0, "This ", 0, 5); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, + 4, "This ", 0, 5); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, + 10, "test. ", 10, 16); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, + 58, "third.", 58, 64); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_START, + 5, "This ", 0, 5); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_START, + 7, "This ", 0, 5); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, + 0, "is ", 5, 8); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, + 4, "is ", 5, 8); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, + 3, "is ", 5, 8); + + /* ATK_TEXT_BOUNDARY_WORD_END */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, + 0, "This", 0, 4); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, + 4, " is", 4, 7); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, + 5, " is", 4, 7); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, + 9, " test", 9, 14); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, + 5, "This", 0, 4); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, + 4, "This", 0, 4); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, + 7, " is", 4, 7); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_END, + 5, " a", 7, 9); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_END, + 4, " a", 7, 9); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, + 58, " third", 57, 63); + + /* ATK_TEXT_BOUNDARY_SENTENCE_START */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 0, "This is a test. ", 0, 16); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 15, "This is a test. ", 0, 16); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 0, "This is the second sentence. ", 16, 45); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 15, "This is the second sentence. ", 16, 45); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 16, "This is a test. ", 0, 16); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 44, "This is a test. ", 0, 16); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, + 15, "", 0, 0); + + /* ATK_TEXT_BOUNDARY_SENTENCE_END */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 0, "This is a test.", 0, 15); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 15, " This is the second sentence.", 15, 44); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 16, " This is the second sentence.", 15, 44); + + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 17, " This is the second sentence.", 15, 44); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 0, " This is the second sentence.", 15, 44); + + test_get_text_function(text_obj, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 15, " And this the third.", 44, 64); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 16, "This is a test.", 0, 15); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 15, "This is a test.", 0, 15); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 14, "", 0, 0); + + test_get_text_function(text_obj, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, + 44, " This is the second sentence.", 15, 44); + + /* It's trick to test these properly right now, since our a11y + implementation splits different lines in different a11y + items */ + /* ATK_TEXT_BOUNDARY_LINE_START */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, + 0, "This is a test. This is the second sentence. And this the third.", 0, 64); + + /* ATK_TEXT_BOUNDARY_LINE_END */ + test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, + 0, "This is a test. This is the second sentence. And this the third.", 0, 64); + + g_object_unref(webView); +} + +int main(int argc, char** argv) +{ + g_thread_init(NULL); + gtk_test_init(&argc, &argv, NULL); + + g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/atk/get_text_at_offset", test_webkit_atk_get_text_at_offset); + return g_test_run (); +} + +#else +int main(int argc, char** argv) +{ + g_critical("You will need at least glib-2.16.0 and gtk-2.14.0 to run the unit tests. Doing nothing now."); + return 0; +} + +#endif diff --git a/WebKit/gtk/tests/testdownload.c b/WebKit/gtk/tests/testdownload.c new file mode 100644 index 0000000..0d964ed --- /dev/null +++ b/WebKit/gtk/tests/testdownload.c @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2009 Christian Dywan <christian@twotoasts.de> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2,1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <errno.h> +#include <unistd.h> +#include <glib/gstdio.h> +#include <webkit/webkit.h> + +#if GTK_CHECK_VERSION(2, 14, 0) + +GMainLoop* loop; +char* temporaryFilename = NULL; + +static void +test_webkit_download_create(void) +{ + WebKitNetworkRequest* request; + WebKitDownload* download; + const gchar* uri = "http://example.com"; + gchar* tmpDir; + + request = webkit_network_request_new(uri); + download = webkit_download_new(request); + g_object_unref(request); + g_assert_cmpstr(webkit_download_get_uri(download), ==, uri); + g_assert(webkit_download_get_network_request(download) == request); + g_assert(g_strrstr(uri, webkit_download_get_suggested_filename(download))); + g_assert(webkit_download_get_status(download) == WEBKIT_DOWNLOAD_STATUS_CREATED); + g_assert(!webkit_download_get_total_size(download)); + g_assert(!webkit_download_get_current_size(download)); + g_assert(!webkit_download_get_progress(download)); + g_assert(!webkit_download_get_elapsed_time(download)); + tmpDir = g_filename_to_uri(g_get_tmp_dir(), NULL, NULL); + webkit_download_set_destination_uri(download, tmpDir); + g_assert_cmpstr(tmpDir, ==, webkit_download_get_destination_uri(download));; + g_free(tmpDir); + g_object_unref(download); +} + +static gboolean +navigation_policy_decision_requested_cb(WebKitWebView* web_view, + WebKitWebFrame* web_frame, + WebKitNetworkRequest* request, + WebKitWebNavigationAction* action, + WebKitWebPolicyDecision* decision, + gpointer data) +{ + webkit_web_policy_decision_download(decision); + return TRUE; +} + +static void +notify_status_cb(GObject* object, GParamSpec* pspec, gpointer data) +{ + WebKitDownload* download = WEBKIT_DOWNLOAD(object); + switch (webkit_download_get_status(download)) { + case WEBKIT_DOWNLOAD_STATUS_FINISHED: + case WEBKIT_DOWNLOAD_STATUS_ERROR: + g_main_loop_quit(loop); + break; + case WEBKIT_DOWNLOAD_STATUS_CANCELLED: + g_assert_not_reached(); + break; + default: + break; + } +} + +static gboolean +download_requested_cb(WebKitWebView* web_view, + WebKitDownload* download, + gboolean* beenThere) +{ + *beenThere = TRUE; + if (temporaryFilename) { + gchar *uri = g_filename_to_uri(temporaryFilename, NULL, NULL); + if (uri) + webkit_download_set_destination_uri(download, uri); + g_free(uri); + } + + g_signal_connect(download, "notify::status", + G_CALLBACK(notify_status_cb), NULL); + + return TRUE; +} + +static void +test_webkit_download_perform(void) +{ + WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + + g_object_ref_sink(G_OBJECT(webView)); + + g_signal_connect(webView, "navigation-policy-decision-requested", + G_CALLBACK(navigation_policy_decision_requested_cb), + NULL); + + gboolean beenThere = FALSE; + g_signal_connect(webView, "download-requested", + G_CALLBACK(download_requested_cb), + &beenThere); + + /* Preparation; FIXME: we should move this code to a test + * utilities file, because we have a very similar one in + * testwebframe.c */ + GError *error = NULL; + int fd = g_file_open_tmp ("webkit-testwebdownload-XXXXXX", + &temporaryFilename, &error); + close(fd); + + if (error) + g_critical("Failed to open a temporary file for writing: %s.", error->message); + + if (g_unlink(temporaryFilename) == -1) + g_critical("Failed to delete the temporary file: %s.", g_strerror(errno)); + + loop = g_main_loop_new(NULL, TRUE); + webkit_web_view_load_uri(webView, "http://gnome.org/"); + g_main_loop_run(loop); + + g_assert_cmpint(beenThere, ==, TRUE); + + g_assert_cmpint(g_file_test(temporaryFilename, G_FILE_TEST_IS_REGULAR), ==, TRUE); + + g_unlink(temporaryFilename); + g_free(temporaryFilename); + g_main_loop_unref(loop); + g_object_unref(webView); +} + +int main(int argc, char** argv) +{ + g_thread_init(NULL); + gtk_test_init(&argc, &argv, NULL); + + g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/download/create", test_webkit_download_create); + g_test_add_func("/webkit/download/perform", test_webkit_download_perform); + return g_test_run (); +} + +#else + +int main(int argc, char** argv) +{ + g_critical("You will need at least GTK+ 2.14.0 to run the unit tests."); + return 0; +} + +#endif diff --git a/WebKit/gtk/tests/testhttpbackend.c b/WebKit/gtk/tests/testhttpbackend.c new file mode 100644 index 0000000..c061374 --- /dev/null +++ b/WebKit/gtk/tests/testhttpbackend.c @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2009 Gustavo Noronha Silva + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <errno.h> +#include <unistd.h> +#include <glib.h> +#include <glib/gstdio.h> +#include <gtk/gtk.h> +#include <webkit/webkit.h> + +#if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0) + +// Not yet public API +SoupMessage* webkit_network_request_get_message(WebKitNetworkRequest* request); + +static gboolean navigation_policy_decision_requested_cb(WebKitWebView* web_view, + WebKitWebFrame* web_frame, + WebKitNetworkRequest* request, + WebKitWebNavigationAction* action, + WebKitWebPolicyDecision* decision, + gpointer data) +{ + SoupMessage* message = webkit_network_request_get_message(request); + + /* 1 -> webkit_network_request_with_core_request + * + * The SoupMessage is created exclusively for the emission of this + * signal. + */ + g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); + + return FALSE; +} + +static void test_soup_message_lifetime() +{ + WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new()); + + g_object_ref_sink(web_view); + + g_signal_connect(web_view, "navigation-policy-decision-requested", + G_CALLBACK(navigation_policy_decision_requested_cb), + NULL); + + /* load_uri will trigger the navigation-policy-decision-requested + * signal emission; + */ + webkit_web_view_load_uri(web_view, "http://127.0.0.1/"); + + g_object_unref(web_view); +} + +int main(int argc, char** argv) +{ + g_thread_init(NULL); + gtk_test_init(&argc, &argv, NULL); + + g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/soupmessage/lifetime", test_soup_message_lifetime); + return g_test_run (); +} + +#else +int main(int argc, char** argv) +{ + g_critical("You will need at least glib-2.16.0 and gtk-2.14.0 to run the unit tests. Doing nothing now."); + return 0; +} + +#endif diff --git a/WebKit/gtk/tests/testloading.c b/WebKit/gtk/tests/testloading.c new file mode 100644 index 0000000..cd5f08e --- /dev/null +++ b/WebKit/gtk/tests/testloading.c @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2009 Gustavo Noronha Silva + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <gtk/gtk.h> +#include <webkit/webkit.h> + +#if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0) + +static gboolean has_been_provisional = FALSE; +static gboolean has_been_committed = FALSE; +static gboolean has_been_first_visually_non_empty_layout = FALSE; + +static void load_finished_cb(WebKitWebView* web_view, WebKitWebFrame* web_frame, gpointer data) +{ + GMainLoop* loop = (GMainLoop*)data; + + g_assert(has_been_provisional); + g_assert(has_been_committed); + g_assert(has_been_first_visually_non_empty_layout); + + g_main_loop_quit(loop); +} + + +static void status_changed_cb(GObject* object, GParamSpec* pspec, gpointer data) +{ + WebKitLoadStatus status = webkit_web_view_get_load_status(WEBKIT_WEB_VIEW(object)); + + switch (status) { + case WEBKIT_LOAD_PROVISIONAL: + g_assert(!has_been_provisional); + g_assert(!has_been_committed); + g_assert(!has_been_first_visually_non_empty_layout); + has_been_provisional = TRUE; + break; + case WEBKIT_LOAD_COMMITTED: + g_assert(has_been_provisional); + g_assert(!has_been_committed); + g_assert(!has_been_first_visually_non_empty_layout); + has_been_committed = TRUE; + break; + case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: + g_assert(has_been_provisional); + g_assert(has_been_committed); + g_assert(!has_been_first_visually_non_empty_layout); + has_been_first_visually_non_empty_layout = TRUE; + break; + case WEBKIT_LOAD_FINISHED: + g_assert(has_been_provisional); + g_assert(has_been_committed); + g_assert(has_been_first_visually_non_empty_layout); + break; + default: + g_assert_not_reached(); + } +} + +static void test_loading_status() +{ + WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new()); + GMainLoop* loop = g_main_loop_new(NULL, TRUE); + + g_object_ref_sink(web_view); + + g_assert_cmpint(webkit_web_view_get_load_status(web_view), ==, WEBKIT_LOAD_PROVISIONAL); + + g_object_connect(G_OBJECT(web_view), + "signal::notify::load-status", G_CALLBACK(status_changed_cb), NULL, + "signal::load-finished", G_CALLBACK(load_finished_cb), loop, + NULL); + + /* load_uri will trigger the navigation-policy-decision-requested + * signal emission; + */ + webkit_web_view_load_uri(web_view, "http://gnome.org/"); + + g_main_loop_run(loop); + + g_object_unref(web_view); +} + +int main(int argc, char** argv) +{ + g_thread_init(NULL); + gtk_test_init(&argc, &argv, NULL); + + g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/loading/status", test_loading_status); + return g_test_run(); +} + +#else +int main(int argc, char** argv) +{ + g_critical("You will need at least glib-2.16.0 and gtk-2.14.0 to run the unit tests. Doing nothing now."); + return 0; +} + +#endif diff --git a/WebKit/gtk/tests/testnetworkrequest.c b/WebKit/gtk/tests/testnetworkrequest.c new file mode 100644 index 0000000..40f8e7f --- /dev/null +++ b/WebKit/gtk/tests/testnetworkrequest.c @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2009 Gustavo Noronha Silva + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <errno.h> +#include <unistd.h> +#include <glib.h> +#include <glib/gstdio.h> +#include <gtk/gtk.h> +#include <stdlib.h> +#include <webkit/webkit.h> + +#if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0) + +static void test_network_request_create_destroy() +{ + WebKitNetworkRequest* request; + SoupMessage* message; + + /* Test creation with URI */ + request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "uri", "http://debian.org/", NULL)); + g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); + message = webkit_network_request_get_message(request); + g_assert(!message); + g_object_unref(request); + + /* Test creation with SoupMessage */ + message = soup_message_new("GET", "http://debian.org/"); + request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", message, NULL)); + g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); + g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 2); + g_object_unref(request); + g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); + g_object_unref(message); + + /* Test creation with both SoupMessage and URI */ + message = soup_message_new("GET", "http://debian.org/"); + request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", message, "uri", "http://gnome.org/", NULL)); + g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); + g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 2); + g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://gnome.org/"); + g_object_unref(request); + g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); + g_object_unref(message); +} + +static void test_network_request_properties() +{ + WebKitNetworkRequest* request; + SoupMessage* message; + gchar* soupURI; + + /* Test URI is set correctly when creating with URI */ + request = webkit_network_request_new("http://debian.org/"); + g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); + g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://debian.org/"); + g_object_unref(request); + + /* Test URI is set correctly when creating with Message */ + message = soup_message_new("GET", "http://debian.org/"); + request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", message, NULL)); + g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); + g_object_unref(message); + + message = webkit_network_request_get_message(request); + soupURI = soup_uri_to_string(soup_message_get_uri(message), FALSE); + g_assert_cmpstr(soupURI, ==, "http://debian.org/"); + g_free(soupURI); + + g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://debian.org/"); + g_object_unref(request); +} + +int main(int argc, char** argv) +{ + g_thread_init(NULL); + gtk_test_init(&argc, &argv, NULL); + + g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/networkrequest/createdestroy", test_network_request_create_destroy); + g_test_add_func("/webkit/networkrequest/properties", test_network_request_properties); + return g_test_run (); +} + +#else +int main(int argc, char** argv) +{ + g_critical("You will need at least glib-2.16.0 and gtk-2.14.0 to run the unit tests. Doing nothing now."); + return 0; +} + +#endif diff --git a/WebKit/gtk/tests/testwebbackforwardlist.c b/WebKit/gtk/tests/testwebbackforwardlist.c index 8d53c3e..115c079 100644 --- a/WebKit/gtk/tests/testwebbackforwardlist.c +++ b/WebKit/gtk/tests/testwebbackforwardlist.c @@ -47,15 +47,19 @@ static void test_webkit_web_history_item_lifetime(void) /* add test items */ item1 = webkit_web_history_item_new_with_data("http://example.com/1/", "Site 1"); webkit_web_back_forward_list_add_item(backForwardList, item1); + g_object_unref(item1); item2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Site 2"); webkit_web_back_forward_list_add_item(backForwardList, item2); + g_object_unref(item2); item3 = webkit_web_history_item_new_with_data("http://example.com/3/", "Site 3"); webkit_web_back_forward_list_add_item(backForwardList, item3); + g_object_unref(item3); item4 = webkit_web_history_item_new_with_data("http://example.com/4/", "Site 4"); webkit_web_back_forward_list_add_item(backForwardList, item4); + g_object_unref(item4); /* make sure these functions don't add unnecessary ref to the history item */ backItem = webkit_web_back_forward_list_get_back_item(backForwardList); @@ -93,16 +97,12 @@ static void test_webkit_web_history_item_lifetime(void) g_list_free(forwardList); g_list_free(backList); - g_object_unref(item1); - g_object_unref(item2); - g_object_unref(item3); - g_object_unref(item4); - - g_object_ref(backForwardList); - g_object_unref(webView); - + g_assert_cmpint(G_OBJECT(item1)->ref_count, ==, 1); + g_assert_cmpint(G_OBJECT(item2)->ref_count, ==, 1); + g_assert_cmpint(G_OBJECT(item3)->ref_count, ==, 1); + g_assert_cmpint(G_OBJECT(item4)->ref_count, ==, 1); g_assert_cmpint(G_OBJECT(backForwardList)->ref_count, ==, 1); - g_object_unref(backForwardList); + g_object_unref(webView); } static void test_webkit_web_back_forward_list_order(void) @@ -135,18 +135,22 @@ static void test_webkit_web_back_forward_list_order(void) // Add a new items item1 = webkit_web_history_item_new_with_data("http://example.com/1/", "Site 1"); webkit_web_back_forward_list_add_item(webBackForwardList, item1); + g_object_unref(item1); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item1)); item2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Site 2"); webkit_web_back_forward_list_add_item(webBackForwardList, item2); + g_object_unref(item2); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item2)); item3 = webkit_web_history_item_new_with_data("http://example.com/3/", "Site 3"); webkit_web_back_forward_list_add_item(webBackForwardList, item3); + g_object_unref(item3); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item3)); item4 = webkit_web_history_item_new_with_data("http://example.com/4/", "Site 4"); webkit_web_back_forward_list_add_item(webBackForwardList, item4); + g_object_unref(item4); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item4)); // check the back list order @@ -187,10 +191,6 @@ static void test_webkit_web_back_forward_list_order(void) g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 2"); - g_object_unref(item1); - g_object_unref(item2); - g_object_unref(item3); - g_object_unref(item4); g_list_free(forwardList); g_object_unref(webView); } @@ -222,6 +222,7 @@ static void test_webkit_web_back_forward_list_add_item(void) // Add a new item addItem1 = webkit_web_history_item_new_with_data("http://example.com/", "Added site"); webkit_web_back_forward_list_add_item(webBackForwardList, addItem1); + g_object_unref(addItem1); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem1)); // Check that the added item is the current item. @@ -237,8 +238,8 @@ static void test_webkit_web_back_forward_list_add_item(void) // Add another item. addItem2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Added site 2"); webkit_web_back_forward_list_add_item(webBackForwardList, addItem2); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem2)); g_object_unref(addItem2); + g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem2)); // Check that the added item is new current item. currentItem = webkit_web_back_forward_list_get_current_item(webBackForwardList); @@ -262,7 +263,6 @@ static void test_webkit_web_back_forward_list_add_item(void) g_assert(webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); - g_object_unref(addItem1); g_object_unref(webView); } diff --git a/WebKit/gtk/tests/testwebframe.c b/WebKit/gtk/tests/testwebframe.c index e2da29c..068e2cf 100644 --- a/WebKit/gtk/tests/testwebframe.c +++ b/WebKit/gtk/tests/testwebframe.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2008 Holger Hans Peter Freyther + * Copyright (C) 2009 Collabora Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -17,7 +18,10 @@ * Boston, MA 02110-1301, USA. */ +#include <errno.h> +#include <unistd.h> #include <glib.h> +#include <glib/gstdio.h> #include <gtk/gtk.h> #include <webkit/webkit.h> @@ -25,15 +29,23 @@ static void test_webkit_web_frame_create_destroy(void) { - WebKitWebView* webView; - g_test_bug("21837"); + GtkWidget *webView; + GtkWidget *window; - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_test_bug("21837"); + webView = webkit_web_view_new(); g_object_ref_sink(webView); g_assert_cmpint(G_OBJECT(webView)->ref_count, ==, 1); - // This crashed with the original version g_object_unref(webView); + + g_test_bug("25042"); + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + webView = webkit_web_view_new(); + gtk_container_add(GTK_CONTAINER(window), webView); + gtk_widget_show(window); + gtk_widget_show(webView); + gtk_widget_destroy(webView); } static void test_webkit_web_frame_lifetime(void) @@ -62,6 +74,87 @@ static void test_webkit_web_frame_lifetime(void) g_object_unref(webFrame); } +static gboolean print_requested_cb(WebKitWebView* webView, WebKitWebFrame* webFrame, GMainLoop* loop) +{ + g_object_set_data(G_OBJECT(webView), "signal-handled", GINT_TO_POINTER(TRUE)); + g_main_loop_quit(loop); + return TRUE; +} + +static void print_timeout(GMainLoop* loop) +{ + if (g_main_loop_is_running(loop)) + g_main_loop_quit(loop); +} + +static void test_webkit_web_frame_printing(void) +{ + WebKitWebView* webView; + + webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_object_ref_sink(webView); + g_assert_cmpint(G_OBJECT(webView)->ref_count, ==, 1); + + webkit_web_view_load_string(webView, + "<html><body><h1>WebKitGTK+!</h1></body></html>", + "text/html", + "utf-8", + "file://"); + + GMainLoop* loop = g_main_loop_new(NULL, TRUE); + + // Does javascript print() work correctly? + g_signal_connect(webView, "print-requested", + G_CALLBACK(print_requested_cb), + loop); + + g_object_set_data(G_OBJECT(webView), "signal-handled", GINT_TO_POINTER(FALSE)); + webkit_web_view_execute_script (webView, "print();"); + + // Give javascriptcore some time to process the print request, but + // prepare a timeout to avoid it running forever in case the signal is + // never emitted. + g_timeout_add(1000, (GSourceFunc)print_timeout, loop); + g_main_loop_run(loop); + + g_assert_cmpint(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(webView), "signal-handled")), ==, TRUE); + + // Does printing directly to a file? + GError *error = NULL; + gchar* temporaryFilename = NULL; + gint fd = g_file_open_tmp ("webkit-testwebframe-XXXXXX", &temporaryFilename, &error); + close(fd); + + if (error) { + g_critical("Failed to open a temporary file for writing: %s.", error->message); + g_error_free(error); + goto cleanup; + } + + // We delete the file, so that we can easily figure out that the + // file got printed; + if (g_unlink(temporaryFilename) == -1) { + g_warning("Failed to delete the temporary file: %s.\nThis may cause the test to be bogus.", g_strerror(errno)); + } + + WebKitWebFrame* webFrame = webkit_web_view_get_main_frame(webView); + GtkPrintOperation* operation = gtk_print_operation_new(); + GtkPrintOperationAction action = GTK_PRINT_OPERATION_ACTION_EXPORT; + GtkPrintOperationResult result; + + gtk_print_operation_set_export_filename(operation, temporaryFilename); + result = webkit_web_frame_print_full (webFrame, operation, action, NULL); + + g_assert_cmpint(result, ==, GTK_PRINT_OPERATION_RESULT_APPLY); + g_assert_cmpint(g_file_test(temporaryFilename, G_FILE_TEST_IS_REGULAR), ==, TRUE); + + g_unlink(temporaryFilename); + g_object_unref(operation); +cleanup: + g_object_unref(webView); + g_free(temporaryFilename); +} + int main(int argc, char** argv) { g_thread_init(NULL); @@ -70,6 +163,7 @@ int main(int argc, char** argv) g_test_bug_base("https://bugs.webkit.org/"); g_test_add_func("/webkit/webview/create_destroy", test_webkit_web_frame_create_destroy); g_test_add_func("/webkit/webframe/lifetime", test_webkit_web_frame_lifetime); + g_test_add_func("/webkit/webview/printing", test_webkit_web_frame_printing); return g_test_run (); } diff --git a/WebKit/gtk/tests/testwebhistoryitem.c b/WebKit/gtk/tests/testwebhistoryitem.c index 6038c647..b940afb 100644 --- a/WebKit/gtk/tests/testwebhistoryitem.c +++ b/WebKit/gtk/tests/testwebhistoryitem.c @@ -31,7 +31,7 @@ static void web_history_item_fixture_setup(WebHistoryItemFixture* fixture, gconstpointer data) { fixture->item = webkit_web_history_item_new_with_data("http://example.com/", "Example1"); - g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, == , 2); + g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, == , 1); g_assert(fixture->item != NULL); } @@ -39,8 +39,6 @@ static void web_history_item_fixture_teardown(WebHistoryItemFixture* fixture, gconstpointer data) { g_assert(fixture->item != NULL); - g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, ==, 2); - g_object_unref(fixture->item); g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, ==, 1); } diff --git a/WebKit/gtk/tests/testwebsettings.c b/WebKit/gtk/tests/testwebsettings.c new file mode 100644 index 0000000..8c77def --- /dev/null +++ b/WebKit/gtk/tests/testwebsettings.c @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2009 Jan Michael Alonzo + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <glib.h> +#include <gtk/gtk.h> +#include <webkit/webkit.h> + +#if GLIB_CHECK_VERSION(2, 16, 0) && GTK_CHECK_VERSION(2, 14, 0) + +static void test_webkit_web_settings_user_agent(void) +{ + WebKitWebSettings* settings; + GtkWidget* webView; + gchar* defaultUserAgent; + gchar* userAgent; + g_test_bug("17375"); + + webView = webkit_web_view_new(); + g_object_ref_sink(webView); + + settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView)); + defaultUserAgent = g_strdup(webkit_web_settings_get_user_agent(settings)); + + // test a custom UA string + userAgent = NULL; + g_object_set(G_OBJECT(settings), "user-agent", "testwebsettings/0.1", NULL); + g_object_get(G_OBJECT(settings),"user-agent", &userAgent, NULL); + g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); + g_free(userAgent); + + // setting it to NULL or an empty value should give us the default UA string + userAgent = NULL; + g_object_set(G_OBJECT(settings), "user-agent", NULL, NULL); + g_object_get(G_OBJECT(settings),"user-agent", &userAgent, NULL); + g_assert_cmpstr(userAgent, ==, defaultUserAgent); + g_free(userAgent); + + userAgent = NULL; + g_object_set(G_OBJECT(settings), "user-agent", "", NULL); + g_object_get(G_OBJECT(settings),"user-agent", &userAgent, NULL); + g_assert_cmpstr(userAgent, ==, defaultUserAgent); + g_free(userAgent); + + g_free(defaultUserAgent); + g_object_unref(webView); +} + +int main(int argc, char** argv) +{ + g_thread_init(NULL); + gtk_test_init(&argc, &argv, NULL); + + g_test_bug_base("https://bugs.webkit.org/"); + g_test_add_func("/webkit/websettings/user_agent", test_webkit_web_settings_user_agent); + return g_test_run (); +} + +#else +int main(int argc, char** argv) +{ + g_critical("You will need at least glib-2.16.0 and gtk-2.14.0 to run the unit tests. Doing nothing now."); + return 0; +} + +#endif diff --git a/WebKit/gtk/webkit.pc.in b/WebKit/gtk/webkit.pc.in index 84d6115..895aa19 100644 --- a/WebKit/gtk/webkit.pc.in +++ b/WebKit/gtk/webkit.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: WebKit Description: Web content engine for GTK+ Version: @VERSION@ -Requires: gtk+-2.0 libsoup-2.4 +Requires: glib-2.0 gtk+-2.0 libsoup-2.4 Libs: -L${libdir} -lwebkit-1.0 Cflags: -I${includedir}/webkit-1.0 diff --git a/WebKit/gtk/webkit/webkitapplicationcache.cpp b/WebKit/gtk/webkit/webkitapplicationcache.cpp new file mode 100644 index 0000000..2c6b71f --- /dev/null +++ b/WebKit/gtk/webkit/webkitapplicationcache.cpp @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2009 Jan Michael Alonzo <jmalonzo@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "webkitprivate.h" + +#include "ApplicationCacheStorage.h" + +void webkit_application_cache_set_maximum_size(unsigned long long size) +{ + WebCore::cacheStorage().empty(); + WebCore::cacheStorage().vacuumDatabaseFile(); + WebCore::cacheStorage().setMaximumSize(size); +} + + diff --git a/WebKit/gtk/webkit/webkitdownload.cpp b/WebKit/gtk/webkit/webkitdownload.cpp index 4488304..c0c6ea7 100644 --- a/WebKit/gtk/webkit/webkitdownload.cpp +++ b/WebKit/gtk/webkit/webkitdownload.cpp @@ -21,6 +21,7 @@ #include "config.h" #include "CString.h" +#include <glib/gi18n-lib.h> #include "Noncopyable.h" #include "NotImplemented.h" #include "ResourceHandleClient.h" @@ -36,7 +37,17 @@ using namespace WebKit; using namespace WebCore; -class DownloadClient : Noncopyable, public ResourceHandleClient { +/** + * SECTION:webkitdownload + * @short_description: Object used to communicate with the application when downloading. + * + * #WebKitDownload carries information about a download request, + * including a #WebKitNetworkRequest object. The application may use + * this object to control the download process, or to simply figure + * out what is to be downloaded, and do it itself. + */ + +class DownloadClient : public Noncopyable, public ResourceHandleClient { public: DownloadClient(WebKitDownload*); @@ -51,8 +62,6 @@ class DownloadClient : Noncopyable, public ResourceHandleClient { WebKitDownload* m_download; }; -extern "C" { - #define WEBKIT_DOWNLOAD_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_DOWNLOAD, WebKitDownloadPrivate)) struct _WebKitDownloadPrivate { @@ -179,9 +188,6 @@ static void webkit_download_set_property(GObject* object, guint prop_id, const G switch(prop_id) { case PROP_NETWORK_REQUEST: priv->networkRequest = WEBKIT_NETWORK_REQUEST(g_value_dup_object(value)); - // This is safe as network-request is a construct only property and - // suggestedFilename is initially null. - priv->suggestedFilename = g_path_get_basename(webkit_network_request_get_uri(priv->networkRequest)); break; case PROP_DESTINATION_URI: webkit_download_set_destination_uri(download, g_value_get_string(value)); @@ -202,6 +208,8 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) objectClass->get_property = webkit_download_get_property; objectClass->set_property = webkit_download_set_property; + webkit_init(); + /** * WebKitDownload::error: * @download: the object on which the signal is emitted @@ -214,7 +222,7 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) */ webkit_download_signals[ERROR] = g_signal_new("error", G_TYPE_FROM_CLASS(downloadClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -236,8 +244,8 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) g_object_class_install_property(objectClass, PROP_NETWORK_REQUEST, g_param_spec_object("network-request", - "Network Request", - "The network request for the URI that should be downloaded", + _("Network Request"), + _("The network request for the URI that should be downloaded"), WEBKIT_TYPE_NETWORK_REQUEST, (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); @@ -251,8 +259,8 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) g_object_class_install_property(objectClass, PROP_DESTINATION_URI, g_param_spec_string("destination-uri", - "Destination URI", - "The destination URI where to save the file", + _("Destination URI"), + _("The destination URI where to save the file"), "", WEBKIT_PARAM_READWRITE)); @@ -266,22 +274,26 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) g_object_class_install_property(objectClass, PROP_SUGGESTED_FILENAME, g_param_spec_string("suggested-filename", - "Suggested Filename", - "The filename suggested as default when saving", + _("Suggested Filename"), + _("The filename suggested as default when saving"), "", WEBKIT_PARAM_READABLE)); /** * WebKitDownload:progress: * - * Determines the current progress of the download. + * Determines the current progress of the download. Notice that, + * although the progress changes are reported as soon as possible, + * the emission of the notify signal for this property is + * throttled, for the benefit of download managers. If you care + * about every update, use WebKitDownload:current-size. * * Since: 1.1.2 */ g_object_class_install_property(objectClass, PROP_PROGRESS, g_param_spec_double("progress", - "Progress", - "Determines the current progress of the download", + _("Progress"), + _("Determines the current progress of the download"), 0.0, 1.0, 1.0, WEBKIT_PARAM_READABLE)); @@ -294,8 +306,8 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) */ g_object_class_install_property(objectClass, PROP_STATUS, g_param_spec_enum("status", - "Status", - "Determines the current status of the download", + _("Status"), + _("Determines the current status of the download"), WEBKIT_TYPE_DOWNLOAD_STATUS, WEBKIT_DOWNLOAD_STATUS_CREATED, WEBKIT_PARAM_READABLE)); @@ -310,8 +322,8 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) g_object_class_install_property(objectClass, PROP_CURRENT_SIZE, g_param_spec_uint64("current-size", - "Current Size", - "The length of the data already downloaded", + _("Current Size"), + _("The length of the data already downloaded"), 0, G_MAXUINT64, 0, WEBKIT_PARAM_READABLE)); @@ -325,8 +337,8 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) g_object_class_install_property(objectClass, PROP_CURRENT_SIZE, g_param_spec_uint64("total-size", - "Total Size", - "The total size of the file", + _("Total Size"), + _("The total size of the file"), 0, G_MAXUINT64, 0, WEBKIT_PARAM_READABLE)); @@ -415,11 +427,8 @@ void webkit_download_start(WebKitDownload* download) if (priv->resourceHandle) priv->resourceHandle->setClient(priv->downloadClient); - else { - // FIXME: Use the actual request object when WebKitNetworkRequest is finished. - ResourceRequest request(webkit_network_request_get_uri(priv->networkRequest)); - priv->resourceHandle = ResourceHandle::create(request, priv->downloadClient, 0, false, false, false); - } + else + priv->resourceHandle = ResourceHandle::create(core(priv->networkRequest), priv->downloadClient, 0, false, false, false); priv->timer = g_timer_new(); webkit_download_open_stream_for_uri(download, priv->destinationURI); @@ -455,7 +464,7 @@ void webkit_download_cancel(WebKitDownload* download) webkit_download_set_status(download, WEBKIT_DOWNLOAD_STATUS_CANCELLED); gboolean handled; - g_signal_emit_by_name(download, "error", 0, WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER, "User cancelled the download", &handled); + g_signal_emit_by_name(download, "error", 0, WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER, _("User cancelled the download"), &handled); } /** @@ -519,9 +528,25 @@ const gchar* webkit_download_get_suggested_filename(WebKitDownload* download) g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); WebKitDownloadPrivate* priv = download->priv; + if (priv->suggestedFilename) + return priv->suggestedFilename; + + KURL url = KURL(KURL(), webkit_network_request_get_uri(priv->networkRequest)); + url.setQuery(String()); + url.removeFragmentIdentifier(); + priv->suggestedFilename = g_strdup(decodeURLEscapeSequences(url.lastPathComponent()).utf8().data()); return priv->suggestedFilename; } +// for internal use only +void webkit_download_set_suggested_filename(WebKitDownload* download, const gchar* suggestedFilename) +{ + WebKitDownloadPrivate* priv = download->priv; + g_free(priv->suggestedFilename); + priv->suggestedFilename = g_strdup(suggestedFilename); +} + + /** * webkit_download_get_destination_uri: * @download: the #WebKitDownload @@ -688,6 +713,9 @@ gdouble webkit_download_get_progress(WebKitDownload* download) g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 1.0); WebKitDownloadPrivate* priv = download->priv; + if (!priv->networkResponse) + return 0; + gdouble total_size = (gdouble)priv->networkResponse->expectedContentLength(); if (total_size == 0) @@ -713,6 +741,9 @@ gdouble webkit_download_get_elapsed_time(WebKitDownload* download) g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 0.0); WebKitDownloadPrivate* priv = download->priv; + if (!priv->timer) + return 0; + return g_timer_elapsed(priv->timer, NULL); } @@ -745,9 +776,23 @@ static void webkit_download_received_data(WebKitDownload* download, const gchar* if (priv->currentSize > priv->networkResponse->expectedContentLength()) g_object_notify(G_OBJECT(download), "total-size"); - // FIXME: Throttle the number of updates? Should we remove the - // previous g_object_notify()s if we are going to throttle the - // progress updates? + gdouble lastProgress = webkit_download_get_progress(download); + + // Throttle progress notification to not consume high amounts of + // CPU on fast links, except when the progress is >= 3%, or we + // reached the end. + static gdouble lastElapsed = 0; + gdouble currentElapsed = g_timer_elapsed(priv->timer, NULL); + + if (lastElapsed + && (currentElapsed - lastElapsed) < 0.1 + && (webkit_download_get_progress(download) - lastProgress) < 0.03 + && webkit_download_get_progress(download) < 1.0) { + lastElapsed = currentElapsed; + return; + } + lastElapsed = currentElapsed; + g_object_notify(G_OBJECT(download), "progress"); } @@ -814,5 +859,3 @@ void DownloadClient::cannotShowURL(ResourceHandle*) // and error handling. notImplemented(); } - -} diff --git a/WebKit/gtk/webkit/webkiterror.cpp b/WebKit/gtk/webkit/webkiterror.cpp new file mode 100644 index 0000000..e93a5d5 --- /dev/null +++ b/WebKit/gtk/webkit/webkiterror.cpp @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2008 Luca Bruno <lethalman88@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" + +#include "webkiterror.h" + +GQuark webkit_network_error_quark(void) +{ + return g_quark_from_static_string("webkit-network-error-quark"); +} + +GQuark webkit_policy_error_quark(void) +{ + return g_quark_from_static_string("webkit-policy-error-quark"); +} + +GQuark webkit_plugin_error_quark(void) +{ + return g_quark_from_static_string("webkit-plugin-error-quark"); +} diff --git a/WebKit/gtk/webkit/webkiterror.h b/WebKit/gtk/webkit/webkiterror.h new file mode 100644 index 0000000..512bc7d --- /dev/null +++ b/WebKit/gtk/webkit/webkiterror.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2008 Luca Bruno <lethalman88@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef WEBKIT_ERROR_H +#define WEBKIT_ERROR_H + +#include <glib.h> + +#include <webkit/webkitdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_NETWORK_ERROR webkit_network_error_quark () +#define WEBKIT_POLICY_ERROR webkit_policy_error_quark () +#define WEBKIT_PLUGIN_ERROR webkit_plugin_error_quark () + +typedef enum { + WEBKIT_NETWORK_ERROR_FAILED = 399, + WEBKIT_NETWORK_ERROR_TRANSPORT = 300, + WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL = 301, + WEBKIT_NETWORK_ERROR_CANCELLED = 302, + WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST = 303, +} WebKitNetworkError; + +/* Sync'd with Mac's WebKit Errors */ +typedef enum { + WEBKIT_POLICY_ERROR_FAILED = 199, + WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE = 100, + WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL = 101, + WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE = 102, + WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT = 103, +} WebKitPolicyError; + +typedef enum { + WEBKIT_PLUGIN_ERROR_FAILED = 299, + WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN = 200, + WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN = 201, + WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE = 202, + WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED = 203, + WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD = 204, +} WebKitPluginError; + + +WEBKIT_API GQuark +webkit_network_error_quark (void); + +WEBKIT_API GQuark +webkit_policy_error_quark (void); + +WEBKIT_API GQuark +webkit_plugin_error_quark (void); + +G_END_DECLS + +#endif diff --git a/WebKit/gtk/webkit/webkitnetworkrequest.cpp b/WebKit/gtk/webkit/webkitnetworkrequest.cpp index 3ad8b5d..e8a225c 100644 --- a/WebKit/gtk/webkit/webkitnetworkrequest.cpp +++ b/WebKit/gtk/webkit/webkitnetworkrequest.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2007, 2008 Holger Hans Peter Freyther + * Copyright (C) 2009 Gustavo Noronha Silva * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -18,9 +19,25 @@ */ #include "config.h" - #include "webkitnetworkrequest.h" +#include "CString.h" +#include "GOwnPtr.h" +#include "ResourceRequest.h" +#include "webkitprivate.h" + +#include <glib/gi18n-lib.h> + +namespace WTF { + +template <> void freeOwnedGPtr<SoupMessage>(SoupMessage* soupMessage) +{ + if (soupMessage) + g_object_unref(soupMessage); +} + +} + /** * SECTION:webkitnetworkrequest * @short_description: The target of a navigation request @@ -34,16 +51,22 @@ * */ -extern "C" { - G_DEFINE_TYPE(WebKitNetworkRequest, webkit_network_request, G_TYPE_OBJECT); struct _WebKitNetworkRequestPrivate { gchar* uri; + SoupMessage* message; }; #define WEBKIT_NETWORK_REQUEST_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_NETWORK_REQUEST, WebKitNetworkRequestPrivate)) +enum { + PROP_0, + + PROP_URI, + PROP_MESSAGE, +}; + static void webkit_network_request_finalize(GObject* object) { WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); @@ -51,12 +74,84 @@ static void webkit_network_request_finalize(GObject* object) g_free(priv->uri); + if (priv->message) { + g_object_unref(priv->message); + priv->message = NULL; + } + G_OBJECT_CLASS(webkit_network_request_parent_class)->finalize(object); } +static void webkit_network_request_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* pspec) +{ + WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); + + switch(propertyID) { + case PROP_URI: + g_value_set_string(value, webkit_network_request_get_uri(request)); + break; + case PROP_MESSAGE: + g_value_set_object(value, webkit_network_request_get_message(request)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); + } +} + +static void webkit_network_request_set_property(GObject* object, guint propertyID, const GValue* value, GParamSpec* pspec) +{ + WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); + WebKitNetworkRequestPrivate* priv = request->priv; + + switch(propertyID) { + case PROP_URI: + webkit_network_request_set_uri(request, g_value_get_string(value)); + break; + case PROP_MESSAGE: + priv->message = SOUP_MESSAGE(g_value_dup_object(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); + } +} + static void webkit_network_request_class_init(WebKitNetworkRequestClass* requestClass) { - G_OBJECT_CLASS(requestClass)->finalize = webkit_network_request_finalize; + GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); + + objectClass->finalize = webkit_network_request_finalize; + objectClass->get_property = webkit_network_request_get_property; + objectClass->set_property = webkit_network_request_set_property; + + webkit_init(); + + /** + * WebKitNetworkRequest:uri: + * + * The URI to which the request will be made. + * + * Since: 1.1.10 + */ + g_object_class_install_property(objectClass, PROP_URI, + g_param_spec_string("uri", + _("URI"), + _("The URI to which the request will be made."), + NULL, + (GParamFlags)(WEBKIT_PARAM_READWRITE))); + + /** + * WebKitNetworkRequest:message: + * + * The #SoupMessage that backs the request. + * + * Since: 1.1.10 + */ + g_object_class_install_property(objectClass, PROP_MESSAGE, + g_param_spec_object("message", + _("Message"), + _("The SoupMessage that backs the request."), + SOUP_TYPE_MESSAGE, + (GParamFlags)(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); g_type_class_add_private(requestClass, sizeof(WebKitNetworkRequestPrivate)); } @@ -67,18 +162,42 @@ static void webkit_network_request_init(WebKitNetworkRequest* request) request->priv = priv; } -WebKitNetworkRequest* webkit_network_request_new(const gchar* uri) +// for internal use only +WebKitNetworkRequest* webkit_network_request_new_with_core_request(const WebCore::ResourceRequest& resourceRequest) { - g_return_val_if_fail(uri, NULL); + GOwnPtr<SoupMessage> soupMessage(resourceRequest.toSoupMessage()); + if (soupMessage) + return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", soupMessage.get(), NULL)); - WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, NULL)); - WebKitNetworkRequestPrivate* priv = request->priv; + return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "uri", resourceRequest.url().string().utf8().data(), NULL)); +} - priv->uri = g_strdup(uri); +/** + * webkit_network_request_new: + * @uri: an URI + * + * Creates a new #WebKitNetworkRequest initialized with an URI. + * + * Returns: a new #WebKitNetworkRequest, or %NULL if the URI is + * invalid. + */ +WebKitNetworkRequest* webkit_network_request_new(const gchar* uri) +{ + g_return_val_if_fail(uri, NULL); - return request; + return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "uri", uri, NULL)); } +/** + * webkit_network_request_set_uri: + * @request: a #WebKitNetworkRequest + * @uri: an URI + * + * Sets the URI held and used by the given request. When the request + * has an associated #SoupMessage, its URI will also be set by this + * call. + * + */ void webkit_network_request_set_uri(WebKitNetworkRequest* request, const gchar* uri) { g_return_if_fail(WEBKIT_IS_NETWORK_REQUEST(request)); @@ -86,8 +205,21 @@ void webkit_network_request_set_uri(WebKitNetworkRequest* request, const gchar* WebKitNetworkRequestPrivate* priv = request->priv; - g_free(priv->uri); + if (priv->uri) + g_free(priv->uri); priv->uri = g_strdup(uri); + + if (!priv->message) + return; + + SoupURI* soupURI = soup_uri_new(uri); + if (!soupURI) { + g_warning("Invalid URI: %s", uri); + return; + } + + soup_message_set_uri(priv->message, soupURI); + soup_uri_free(soupURI); } /** @@ -103,7 +235,32 @@ G_CONST_RETURN gchar* webkit_network_request_get_uri(WebKitNetworkRequest* reque g_return_val_if_fail(WEBKIT_IS_NETWORK_REQUEST(request), NULL); WebKitNetworkRequestPrivate* priv = request->priv; + + if (priv->uri) + return priv->uri; + + SoupURI* soupURI = soup_message_get_uri(priv->message); + priv->uri = soup_uri_to_string(soupURI, FALSE); return priv->uri; } +/** + * webkit_network_request_get_soup_message: + * @request: a #WebKitNetworkRequest + * + * Obtains the #SoupMessage held and used by the given request. Notice + * that modification of the SoupMessage of a request by signal + * handlers is only supported (as in, will only affect what is + * actually sent to the server) where explicitly documented. + * + * Returns: the #SoupMessage + * Since: 1.1.9 + */ +SoupMessage* webkit_network_request_get_message(WebKitNetworkRequest* request) +{ + g_return_val_if_fail(WEBKIT_IS_NETWORK_REQUEST(request), NULL); + + WebKitNetworkRequestPrivate* priv = request->priv; + + return priv->message; } diff --git a/WebKit/gtk/webkit/webkitnetworkrequest.h b/WebKit/gtk/webkit/webkitnetworkrequest.h index 01ab8bb..78e04a1 100644 --- a/WebKit/gtk/webkit/webkitnetworkrequest.h +++ b/WebKit/gtk/webkit/webkitnetworkrequest.h @@ -21,6 +21,7 @@ #define WEBKIT_NETWORK_REQUEST_H #include <glib-object.h> +#include <libsoup/soup.h> #include <webkit/webkitdefines.h> @@ -65,6 +66,9 @@ webkit_network_request_set_uri (WebKitNetworkRequest *request, WEBKIT_API G_CONST_RETURN gchar * webkit_network_request_get_uri (WebKitNetworkRequest *request); +WEBKIT_API SoupMessage * +webkit_network_request_get_message(WebKitNetworkRequest* request); + G_END_DECLS #endif diff --git a/WebKit/gtk/webkit/webkitprivate.cpp b/WebKit/gtk/webkit/webkitprivate.cpp index c4264c9..755b4d3 100644 --- a/WebKit/gtk/webkit/webkitprivate.cpp +++ b/WebKit/gtk/webkit/webkitprivate.cpp @@ -22,12 +22,13 @@ #include "webkitsoupauthdialog.h" #include "webkitprivate.h" +#include "ApplicationCacheStorage.h" #include "ChromeClientGtk.h" #include "Frame.h" #include "FrameLoader.h" #include "FrameLoaderClientGtk.h" +#include <libintl.h> #include "Logging.h" -#include "NotImplemented.h" #include "PageCache.h" #include "PageGroup.h" #include "Pasteboard.h" @@ -99,6 +100,16 @@ WebCore::NavigationType core(WebKitWebNavigationReason type) return (WebCore::NavigationType)type; } +WebCore::ResourceRequest core(WebKitNetworkRequest* request) +{ + SoupMessage* soupMessage = webkit_network_request_get_message(request); + if (soupMessage) + return ResourceRequest(soupMessage); + + KURL url = KURL(KURL(), String::fromUTF8(webkit_network_request_get_uri(request))); + return ResourceRequest(url); +} + } /** end namespace WebKit */ static GtkWidget* currentToplevelCallback(WebKitSoupAuthDialog* feature, SoupMessage* message, gpointer userData) @@ -133,6 +144,9 @@ void webkit_init() return; isInitialized = true; + bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + JSC::initializeThreading(); WebCore::InitializeLoggingChannelsIfNecessary(); @@ -145,6 +159,7 @@ void webkit_init() // FIXME: It should be possible for client applications to override this default location gchar* databaseDirectory = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL); WebCore::DatabaseTracker::tracker().setDatabaseDirectoryPath(databaseDirectory); + WebCore::cacheStorage().setCacheDirectory(databaseDirectory); g_free(databaseDirectory); #endif @@ -153,8 +168,13 @@ void webkit_init() Pasteboard::generalPasteboard()->setHelper(new WebKit::PasteboardHelperGtk()); SoupSession* session = webkit_get_default_session(); + SoupSessionFeature* authDialog = static_cast<SoupSessionFeature*>(g_object_new(WEBKIT_TYPE_SOUP_AUTH_DIALOG, NULL)); g_signal_connect(authDialog, "current-toplevel", G_CALLBACK(currentToplevelCallback), NULL); soup_session_add_feature(session, authDialog); g_object_unref(authDialog); + + SoupSessionFeature* sniffer = static_cast<SoupSessionFeature*>(g_object_new(SOUP_TYPE_CONTENT_SNIFFER, NULL)); + soup_session_add_feature(session, sniffer); + g_object_unref(sniffer); } diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h index 0b83a11..0c3fbd3 100644 --- a/WebKit/gtk/webkit/webkitprivate.h +++ b/WebKit/gtk/webkit/webkitprivate.h @@ -23,12 +23,14 @@ #define WEBKIT_PRIVATE_H /* - * This file knows the shared secret of WebKitWebView and WebKitWebFrame. + * This file knows the shared secret of WebKitWebView, WebKitWebFrame, + * and WebKitNetworkRequest. * They are using WebCore which musn't be exposed to the outer world. */ #include <webkit/webkitdefines.h> #include <webkit/webkitdownload.h> +#include <webkit/webkitnetworkrequest.h> #include <webkit/webkitwebview.h> #include <webkit/webkitwebframe.h> #include <webkit/webkitwebpolicydecision.h> @@ -36,8 +38,10 @@ #include <webkit/webkitwebsettings.h> #include <webkit/webkitwebwindowfeatures.h> #include <webkit/webkitwebbackforwardlist.h> +#include <webkit/webkitnetworkrequest.h> #include "BackForwardList.h" +#include <enchant.h> #include "HistoryItem.h" #include "Settings.h" #include "Page.h" @@ -45,10 +49,13 @@ #include "InspectorClientGtk.h" #include "FrameLoaderClient.h" #include "ResourceHandle.h" +#include "ResourceRequest.h" #include "ResourceResponse.h" #include "WindowFeatures.h" +#include <atk/atk.h> #include <glib.h> +#include <libsoup/soup.h> class DownloadClient; @@ -68,8 +75,15 @@ namespace WebKit { WebKitWebNavigationReason kit(WebCore::NavigationType type); WebCore::NavigationType core(WebKitWebNavigationReason reason); + + WebCore::ResourceRequest core(WebKitNetworkRequest* request); } +typedef struct { + EnchantBroker* config; + EnchantDict* speller; +} SpellLanguage; + extern "C" { void webkit_init(); @@ -85,9 +99,6 @@ extern "C" { WebKitWebWindowFeatures* webWindowFeatures; WebKitWebFrame* mainFrame; - WebCore::String applicationNameForUserAgent; - WebCore::String* userAgent; - WebKitWebBackForwardList* backForwardList; gint lastPopupXPosition; @@ -106,10 +117,12 @@ extern "C" { GtkAdjustment* verticalAdjustment; gboolean zoomFullContent; + WebKitLoadStatus loadStatus; char* encoding; char* customEncoding; gboolean disposing; + gboolean usePrimaryForPaste; }; #define WEBKIT_WEB_FRAME_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_FRAME, WebKitWebFramePrivate)) @@ -121,6 +134,7 @@ extern "C" { gchar* name; gchar* title; gchar* uri; + WebKitLoadStatus loadStatus; }; PassRefPtr<WebCore::Frame> @@ -158,12 +172,25 @@ extern "C" { void webkit_web_view_notify_ready (WebKitWebView* web_view); + void + webkit_web_view_request_download(WebKitWebView* web_view, WebKitNetworkRequest* request, const WebCore::ResourceResponse& response = WebCore::ResourceResponse()); + + void + webkit_download_set_suggested_filename(WebKitDownload* download, const gchar* suggestedFilename); + WebKitWebPolicyDecision* webkit_web_policy_decision_new (WebKitWebFrame*, WebCore::FramePolicyFunction); void webkit_web_policy_decision_cancel (WebKitWebPolicyDecision* decision); + WebKitNetworkRequest* + webkit_network_request_new_with_core_request(const WebCore::ResourceRequest& resourceRequest); + + // FIXME: move this to webkitnetworkrequest.h once the API is agreed upon. + WEBKIT_API SoupMessage* + webkit_network_request_get_message(WebKitNetworkRequest* request); + // FIXME: move this functionality into a 'WebKitWebDataSource' once implemented WEBKIT_API gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame); @@ -176,9 +203,6 @@ extern "C" { WEBKIT_API gchar* webkit_web_frame_get_inner_text (WebKitWebFrame* frame); - WEBKIT_API void - webkit_web_frame_print (WebKitWebFrame* frame); - WEBKIT_API gchar* webkit_web_frame_dump_render_tree (WebKitWebFrame* frame); @@ -191,11 +215,41 @@ extern "C" { WEBKIT_API unsigned int webkit_web_frame_number_of_active_animations(WebKitWebFrame* frame); + WEBKIT_API void + webkit_web_frame_clear_main_frame_name(WebKitWebFrame* frame); + + WEBKIT_API AtkObject* + webkit_web_frame_get_focused_accessible_element(WebKitWebFrame* frame); + WEBKIT_API gchar* webkit_web_view_get_selected_text (WebKitWebView* web_view); WEBKIT_API void + webkit_web_view_set_group_name(WebKitWebView* web_view, const gchar* group_name); + + WEBKIT_API void webkit_web_settings_add_extra_plugin_directory (WebKitWebView *web_view, const gchar* directory); + + GSList* + webkit_web_settings_get_spell_languages(WebKitWebView* web_view); + + bool + webkit_web_view_use_primary_for_paste(WebKitWebView* web_view); + + GHashTable* + webkit_history_items(void); + + WEBKIT_API void + webkit_gc_collect_javascript_objects(); + + WEBKIT_API void + webkit_gc_collect_javascript_objects_on_alternate_thread(gboolean waitUntilDone); + + WEBKIT_API gsize + webkit_gc_count_javascript_objects(); + + WEBKIT_API void + webkit_application_cache_set_maximum_size(unsigned long long size); } #endif diff --git a/WebKit/gtk/webkit/webkitsoupauthdialog.c b/WebKit/gtk/webkit/webkitsoupauthdialog.c index 139000b..9bc188e 100644 --- a/WebKit/gtk/webkit/webkitsoupauthdialog.c +++ b/WebKit/gtk/webkit/webkitsoupauthdialog.c @@ -19,6 +19,7 @@ #include "config.h" +#include <glib/gi18n-lib.h> #include <gtk/gtk.h> #include <libsoup/soup.h> #if USE(GNOMEKEYRING) @@ -28,6 +29,17 @@ #include "webkitmarshal.h" #include "webkitsoupauthdialog.h" +/** + * SECTION:webkitsoupauthdialog + * @short_description: A #SoupFeature to provide a simple + * authentication dialog for HTTP basic auth support. + * + * #WebKitSoupAuthDialog is a #SoupFeature that you can attach to your + * #SoupSession to provide a simple authentication dialog, with + * optional GNOME Keyring support, while handling HTTP basic auth. It + * is built as a simple C-only module to ease reuse. + */ + static void webkit_soup_auth_dialog_session_feature_init(SoupSessionFeatureInterface* feature_interface, gpointer interface_data); static void attach(SoupSessionFeature* manager, SoupSession* session); static void detach(SoupSessionFeature* manager, SoupSession* session); @@ -79,11 +91,15 @@ typedef struct _WebKitAuthData { #if USE(GNOMEKEYRING) GtkWidget* checkButton; #endif + char *username; + char *password; } WebKitAuthData; static void free_authData(WebKitAuthData* authData) { g_object_unref(authData->msg); + g_free(authData->username); + g_free(authData->password); g_slice_free(WebKitAuthData, authData); } @@ -92,47 +108,49 @@ static void set_password_callback(GnomeKeyringResult result, guint32 val, gpoint { /* Dummy callback, gnome_keyring_set_network_password does not accept a NULL one */ } -#endif -static void response_callback(GtkDialog* dialog, gint response_id, WebKitAuthData* authData) +static void save_password_callback(SoupMessage* msg, WebKitAuthData* authData) { - const char* login; - const char* password; -#if USE(GNOMEKEYRING) - SoupURI* uri; - gboolean storePassword; + /* Check only for Success status codes (2xx) */ + if (msg->status_code >= 200 && msg->status_code < 300) { + SoupURI* uri = soup_message_get_uri(authData->msg); + gnome_keyring_set_network_password(NULL, + authData->username, + soup_auth_get_realm(authData->auth), + uri->host, + NULL, + uri->scheme, + soup_auth_get_scheme_name(authData->auth), + uri->port, + authData->password, + (GnomeKeyringOperationGetIntCallback)set_password_callback, + NULL, + NULL); + } + free_authData(authData); +} #endif +static void response_callback(GtkDialog* dialog, gint response_id, WebKitAuthData* authData) +{ switch(response_id) { case GTK_RESPONSE_OK: - login = gtk_entry_get_text(GTK_ENTRY(authData->loginEntry)); - password = gtk_entry_get_text(GTK_ENTRY(authData->passwordEntry)); - soup_auth_authenticate(authData->auth, login, password); + authData->username = g_strdup(gtk_entry_get_text(GTK_ENTRY(authData->loginEntry))); + authData->password = g_strdup(gtk_entry_get_text(GTK_ENTRY(authData->passwordEntry))); + soup_auth_authenticate(authData->auth, authData->username, authData->password); #if USE(GNOMEKEYRING) - storePassword = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(authData->checkButton)); - if (storePassword) { - uri = soup_message_get_uri(authData->msg); - gnome_keyring_set_network_password(NULL, - login, - soup_auth_get_realm(authData->auth), - uri->host, - NULL, - uri->scheme, - soup_auth_get_scheme_name(authData->auth), - uri->port, - password, - (GnomeKeyringOperationGetIntCallback)set_password_callback, - NULL, - NULL); - } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(authData->checkButton))) + g_signal_connect(authData->msg, "got-headers", G_CALLBACK(save_password_callback), authData); #endif default: break; } soup_session_unpause_message(authData->session, authData->msg); +#if !USE(GNOMEKEYRING) free_authData(authData); +#endif gtk_widget_destroy(GTK_WIDGET(dialog)); } @@ -229,7 +247,7 @@ static void show_auth_dialog(WebKitAuthData* authData, const char* login, const gtk_box_pack_start(GTK_BOX(hbox), mainVBox, TRUE, TRUE, 0); uri = soup_message_get_uri(authData->msg); - message = g_strdup_printf("A username and password are being requested by the site %s", uri->host); + message = g_strdup_printf(_("A username and password are being requested by the site %s"), uri->host); messageLabel = gtk_label_new(message); g_free(message); gtk_misc_set_alignment(GTK_MISC(messageLabel), 0.0, 0.5); @@ -254,9 +272,9 @@ static void show_auth_dialog(WebKitAuthData* authData, const char* login, const gtk_table_set_row_spacings(GTK_TABLE (table), 6); gtk_container_add(GTK_CONTAINER(entryContainer), table); - authData->loginEntry = table_add_entry(table, 0, "Username:", + authData->loginEntry = table_add_entry(table, 0, _("Username:"), login, NULL); - authData->passwordEntry = table_add_entry(table, 1, "Password:", + authData->passwordEntry = table_add_entry(table, 1, _("Password:"), password, NULL); gtk_entry_set_visibility(GTK_ENTRY(authData->passwordEntry), FALSE); @@ -266,7 +284,7 @@ static void show_auth_dialog(WebKitAuthData* authData, const char* login, const gtk_box_pack_start (GTK_BOX (vbox), rememberBox, FALSE, FALSE, 0); - checkButton = gtk_check_button_new_with_label("Remember password"); + checkButton = gtk_check_button_new_with_mnemonic(_("_Remember password")); if (login && password) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkButton), TRUE); gtk_label_set_line_wrap(GTK_LABEL(gtk_bin_get_child(GTK_BIN(checkButton))), TRUE); diff --git a/WebKit/gtk/webkit/webkitsoupauthdialog.h b/WebKit/gtk/webkit/webkitsoupauthdialog.h index 2c030b4..9721c72 100644 --- a/WebKit/gtk/webkit/webkitsoupauthdialog.h +++ b/WebKit/gtk/webkit/webkitsoupauthdialog.h @@ -20,6 +20,8 @@ #include <gtk/gtk.h> #include <libsoup/soup.h> +#include <webkit/webkitdefines.h> + #ifndef WEBKIT_SOUP_AUTH_DIALOG_H #define WEBKIT_SOUP_AUTH_DIALOG_H 1 @@ -42,7 +44,8 @@ typedef struct { GtkWidget* (*current_toplevel) (WebKitSoupAuthDialog* feature, SoupMessage* message); } WebKitSoupAuthDialogClass; -GType webkit_soup_auth_dialog_get_type (void); +WEBKIT_API GType +webkit_soup_auth_dialog_get_type (void); G_END_DECLS diff --git a/WebKit/gtk/webkit/webkitversion.cpp b/WebKit/gtk/webkit/webkitversion.cpp index 3f35750..62750f5 100644 --- a/WebKit/gtk/webkit/webkitversion.cpp +++ b/WebKit/gtk/webkit/webkitversion.cpp @@ -20,8 +20,6 @@ #include "config.h" #include "webkitversion.h" -extern "C" { - /** * webkit_major_version: * @@ -63,5 +61,3 @@ guint webkit_micro_version() { return WEBKIT_MICRO_VERSION; } - -} diff --git a/WebKit/gtk/webkit/webkitversion.h.in b/WebKit/gtk/webkit/webkitversion.h.in index f70800d..9f1b818 100644 --- a/WebKit/gtk/webkit/webkitversion.h.in +++ b/WebKit/gtk/webkit/webkitversion.h.in @@ -28,6 +28,8 @@ G_BEGIN_DECLS #define WEBKIT_MAJOR_VERSION (@WEBKIT_MAJOR_VERSION@) #define WEBKIT_MINOR_VERSION (@WEBKIT_MINOR_VERSION@) #define WEBKIT_MICRO_VERSION (@WEBKIT_MICRO_VERSION@) +#define WEBKIT_USER_AGENT_MAJOR_VERSION (@WEBKIT_USER_AGENT_MAJOR_VERSION@) +#define WEBKIT_USER_AGENT_MINOR_VERSION (@WEBKIT_USER_AGENT_MINOR_VERSION@) #define WEBKIT_CHECK_VERSION(major, minor, micro) \ (WEBKIT_MAJOR_VERSION > (major) || \ diff --git a/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp b/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp index 5c93df0..31631a5 100644 --- a/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp +++ b/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2008 Jan Michael C. Alonzo + * Copyright (C) 2009 Igalia S.L. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -51,18 +52,41 @@ using namespace WebKit; -extern "C" { - struct _WebKitWebBackForwardListPrivate { WebCore::BackForwardList* backForwardList; + gboolean disposed; }; #define WEBKIT_WEB_BACK_FORWARD_LIST_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, WebKitWebBackForwardListPrivate)) G_DEFINE_TYPE(WebKitWebBackForwardList, webkit_web_back_forward_list, G_TYPE_OBJECT); +static void webkit_web_back_forward_list_dispose(GObject* object) +{ + WebKitWebBackForwardList* list = WEBKIT_WEB_BACK_FORWARD_LIST(object); + WebCore::BackForwardList* backForwardList = core(list); + WebKitWebBackForwardListPrivate* priv = list->priv; + + if (!priv->disposed) { + priv->disposed = true; + + WebCore::HistoryItemVector items = backForwardList->entries(); + GHashTable* table = webkit_history_items(); + for (unsigned i = 0; i < items.size(); i++) + g_hash_table_remove(table, items[i].get()); + } + + G_OBJECT_CLASS(webkit_web_back_forward_list_parent_class)->dispose(object); +} + static void webkit_web_back_forward_list_class_init(WebKitWebBackForwardListClass* klass) { + GObjectClass* object_class = G_OBJECT_CLASS(klass); + + object_class->dispose = webkit_web_back_forward_list_dispose; + + webkit_init(); + g_type_class_add_private(klass, sizeof(WebKitWebBackForwardListPrivate)); } @@ -397,20 +421,23 @@ void webkit_web_back_forward_list_set_limit(WebKitWebBackForwardList* webBackFor * * Adds the item to the #WebKitWebBackForwardList. * + * The @webBackForwardList will add a reference to the @webHistoryItem, so you + * don't need to keep a reference once you've added it to the list. + * * Since: 1.1.1 */ void webkit_web_back_forward_list_add_item(WebKitWebBackForwardList *webBackForwardList, WebKitWebHistoryItem *webHistoryItem) { g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); + g_object_ref(webHistoryItem); + WebCore::BackForwardList* backForwardList = core(webBackForwardList); WebCore::HistoryItem* historyItem = core(webHistoryItem); backForwardList->addItem(historyItem); } -} /* end extern "C" */ - WebCore::BackForwardList* WebKit::core(WebKitWebBackForwardList* webBackForwardList) { g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); diff --git a/WebKit/gtk/webkit/webkitwebframe.cpp b/WebKit/gtk/webkit/webkitwebframe.cpp index e2b10b6..fba084e 100644 --- a/WebKit/gtk/webkit/webkitwebframe.cpp +++ b/WebKit/gtk/webkit/webkitwebframe.cpp @@ -6,6 +6,7 @@ * Copyright (C) 2008 Collabora Ltd. * Copyright (C) 2008 Nuanti Ltd. * Copyright (C) 2009 Jan Alonzo <jmalonzo@gmail.com> + * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -25,21 +26,27 @@ #include "config.h" +#include "webkitenumtypes.h" #include "webkitwebframe.h" #include "webkitwebview.h" #include "webkitmarshal.h" #include "webkitprivate.h" +#include "AccessibilityObjectWrapperAtk.h" #include "AnimationController.h" +#include "AXObjectCache.h" #include "CString.h" #include "DocumentLoader.h" #include "FrameLoader.h" #include "FrameLoaderClientGtk.h" #include "FrameTree.h" #include "FrameView.h" +#include <glib/gi18n-lib.h> +#include "GCController.h" #include "GraphicsContext.h" #include "HTMLFrameOwnerElement.h" #include "JSDOMWindow.h" +#include "JSLock.h" #include "PrintContext.h" #include "RenderView.h" #include "RenderTreeAsText.h" @@ -47,6 +54,7 @@ #include "ScriptController.h" #include "SubstituteData.h" +#include <atk/atk.h> #include <JavaScriptCore/APICast.h> /** @@ -71,8 +79,6 @@ using namespace WebKit; using namespace WebCore; using namespace std; -extern "C" { - enum { CLEARED, LOAD_COMMITTED, @@ -87,7 +93,8 @@ enum { PROP_NAME, PROP_TITLE, - PROP_URI + PROP_URI, + PROP_LOAD_STATUS }; static guint webkit_web_frame_signals[LAST_SIGNAL] = { 0, }; @@ -108,6 +115,9 @@ static void webkit_web_frame_get_property(GObject* object, guint prop_id, GValue case PROP_URI: g_value_set_string(value, webkit_web_frame_get_uri(frame)); break; + case PROP_LOAD_STATUS: + g_value_set_enum(value, webkit_web_frame_get_load_status(frame)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -149,7 +159,7 @@ static void webkit_web_frame_class_init(WebKitWebFrameClass* frameClass) */ webkit_web_frame_signals[CLEARED] = g_signal_new("cleared", G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -158,16 +168,25 @@ static void webkit_web_frame_class_init(WebKitWebFrameClass* frameClass) webkit_web_frame_signals[LOAD_COMMITTED] = g_signal_new("load-committed", G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * WebKitWebFrame::load-done + * @web_frame: the object on which the signal is emitted + * + * Emitted when frame loading is done. + * + * Deprecated: Use WebKitWebView::load-finished instead, and/or + * WebKitWebView::load-error to be notified of load errors + */ webkit_web_frame_signals[LOAD_DONE] = g_signal_new("load-done", G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -177,7 +196,7 @@ static void webkit_web_frame_class_init(WebKitWebFrameClass* frameClass) webkit_web_frame_signals[TITLE_CHANGED] = g_signal_new("title-changed", G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -187,7 +206,7 @@ static void webkit_web_frame_class_init(WebKitWebFrameClass* frameClass) webkit_web_frame_signals[HOVERING_OVER_LINK] = g_signal_new("hovering-over-link", G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -207,25 +226,40 @@ static void webkit_web_frame_class_init(WebKitWebFrameClass* frameClass) */ g_object_class_install_property(objectClass, PROP_NAME, g_param_spec_string("name", - "Name", - "The name of the frame", + _("Name"), + _("The name of the frame"), NULL, WEBKIT_PARAM_READABLE)); g_object_class_install_property(objectClass, PROP_TITLE, g_param_spec_string("title", - "Title", - "The document title of the frame", + _("Title"), + _("The document title of the frame"), NULL, WEBKIT_PARAM_READABLE)); g_object_class_install_property(objectClass, PROP_URI, g_param_spec_string("uri", - "URI", - "The current URI of the contents displayed by the frame", + _("URI"), + _("The current URI of the contents displayed by the frame"), NULL, WEBKIT_PARAM_READABLE)); + /** + * WebKitWebFrame:load-status: + * + * Determines the current status of the load. + * + * Since: 1.1.7 + */ + g_object_class_install_property(objectClass, PROP_LOAD_STATUS, + g_param_spec_enum("load-status", + "Load Status", + "Determines the current status of the load", + WEBKIT_TYPE_LOAD_STATUS, + WEBKIT_LOAD_FINISHED, + WEBKIT_PARAM_READABLE)); + g_type_class_add_private(frameClass, sizeof(WebKitWebFramePrivate)); } @@ -396,6 +430,25 @@ void webkit_web_frame_load_uri(WebKitWebFrame* frame, const gchar* uri) coreFrame->loader()->load(ResourceRequest(KURL(KURL(), String::fromUTF8(uri))), false); } +static void webkit_web_frame_load_data(WebKitWebFrame* frame, const gchar* content, const gchar* mimeType, const gchar* encoding, const gchar* baseURL, const gchar* unreachableURL) +{ + Frame* coreFrame = core(frame); + ASSERT(coreFrame); + + KURL baseKURL = baseURL ? KURL(KURL(), String::fromUTF8(baseURL)) : blankURL(); + + ResourceRequest request(baseKURL); + + RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(content, strlen(content)); + SubstituteData substituteData(sharedBuffer.release(), + mimeType ? String::fromUTF8(mimeType) : String::fromUTF8("text/html"), + encoding ? String::fromUTF8(encoding) : String::fromUTF8("UTF-8"), + baseKURL, + KURL(KURL(), String::fromUTF8(unreachableURL))); + + coreFrame->loader()->load(request, substituteData, false); +} + /** * webkit_web_frame_load_string: * @frame: a #WebKitWebFrame @@ -418,15 +471,28 @@ void webkit_web_frame_load_string(WebKitWebFrame* frame, const gchar* content, c g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); g_return_if_fail(content); - Frame* coreFrame = core(frame); - if (!coreFrame) - return; + webkit_web_frame_load_data(frame, content, contentMimeType, contentEncoding, baseUri, NULL); +} - KURL url(KURL(), baseUri ? String::fromUTF8(baseUri) : ""); - RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(content, strlen(content)); - SubstituteData substituteData(sharedBuffer.release(), contentMimeType ? String(contentMimeType) : "text/html", contentEncoding ? String(contentEncoding) : "UTF-8", blankURL(), url); +/** + * webkit_web_frame_load_alternate_string: + * @frame: a #WebKitWebFrame + * @content: the alternate content to display as the main page of the @frame + * @base_url: the base URI for relative locations + * @unreachable_url: the URL for the alternate page content + * + * Request loading of an alternate content for a URL that is unreachable. + * Using this method will preserve the back-forward list. The URI passed in + * @base_url has to be an absolute URI. + * + * Since: 1.1.6 + */ +void webkit_web_frame_load_alternate_string(WebKitWebFrame* frame, const gchar* content, const gchar* baseURL, const gchar* unreachableURL) +{ + g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); + g_return_if_fail(content); - coreFrame->loader()->load(ResourceRequest(url), substituteData, false); + webkit_web_frame_load_data(frame, content, NULL, NULL, baseURL, unreachableURL); } /** @@ -449,9 +515,7 @@ void webkit_web_frame_load_request(WebKitWebFrame* frame, WebKitNetworkRequest* if (!coreFrame) return; - // TODO: Use the ResourceRequest carried by WebKitNetworkRequest when it is implemented. - String string = String::fromUTF8(webkit_network_request_get_uri(request)); - coreFrame->loader()->load(ResourceRequest(KURL(KURL(), string)), false); + coreFrame->loader()->load(core(request), false); } /** @@ -610,9 +674,7 @@ gchar* webkit_web_frame_dump_render_tree(WebKitWebFrame* frame) return g_strdup(string.utf8().data()); } -#if GTK_CHECK_VERSION(2,10,0) - -static void begin_print(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) +static void begin_print_callback(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) { PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data); @@ -630,7 +692,7 @@ static void begin_print(GtkPrintOperation* op, GtkPrintContext* context, gpointe gtk_print_operation_set_n_pages(op, printContext->pageCount()); } -static void draw_page(GtkPrintOperation* op, GtkPrintContext* context, gint page_nr, gpointer user_data) +static void draw_page_callback(GtkPrintOperation* op, GtkPrintContext* context, gint page_nr, gpointer user_data) { PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data); @@ -640,34 +702,72 @@ static void draw_page(GtkPrintOperation* op, GtkPrintContext* context, gint page printContext->spoolPage(ctx, page_nr, width); } -static void end_print(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) +static void end_print_callback(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) { PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data); printContext->end(); } -void webkit_web_frame_print(WebKitWebFrame* frame) +/** + * webkit_web_frame_print_full: + * @frame: a #WebKitWebFrame to be printed + * @operation: the #GtkPrintOperation to be carried + * @action: the #GtkPrintOperationAction to be performed + * @error: #GError for error return + * + * Prints the given #WebKitFrame, using the given #GtkPrintOperation + * and #GtkPrintOperationAction. This function wraps a call to + * gtk_print_operation_run() for printing the contents of the + * #WebKitWebFrame. + * + * Since: 1.1.5 + */ +GtkPrintOperationResult webkit_web_frame_print_full(WebKitWebFrame* frame, GtkPrintOperation* operation, GtkPrintOperationAction action, GError** error) { + g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), GTK_PRINT_OPERATION_RESULT_ERROR); + g_return_val_if_fail(GTK_IS_PRINT_OPERATION(operation), GTK_PRINT_OPERATION_RESULT_ERROR); + GtkWidget* topLevel = gtk_widget_get_toplevel(GTK_WIDGET(webkit_web_frame_get_web_view(frame))); if (!GTK_WIDGET_TOPLEVEL(topLevel)) topLevel = NULL; Frame* coreFrame = core(frame); if (!coreFrame) - return; + return GTK_PRINT_OPERATION_RESULT_ERROR; PrintContext printContext(coreFrame); - GtkPrintOperation* op = gtk_print_operation_new(); - g_signal_connect(op, "begin-print", G_CALLBACK(begin_print), &printContext); - g_signal_connect(op, "draw-page", G_CALLBACK(draw_page), &printContext); - g_signal_connect(op, "end-print", G_CALLBACK(end_print), &printContext); - GError *error = NULL; - gtk_print_operation_run(op, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW(topLevel), &error); - g_object_unref(op); + g_signal_connect(operation, "begin-print", G_CALLBACK(begin_print_callback), &printContext); + g_signal_connect(operation, "draw-page", G_CALLBACK(draw_page_callback), &printContext); + g_signal_connect(operation, "end-print", G_CALLBACK(end_print_callback), &printContext); + + return gtk_print_operation_run(operation, action, GTK_WINDOW(topLevel), error); +} + +/** + * webkit_web_frame_print: + * @frame: a #WebKitWebFrame + * + * Prints the given #WebKitFrame, by presenting a print dialog to the + * user. If you need more control over the printing process, see + * webkit_web_frame_print_full(). + * + * Since: 1.1.5 + */ +void webkit_web_frame_print(WebKitWebFrame* frame) +{ + g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); + + WebKitWebFramePrivate* priv = frame->priv; + GtkPrintOperation* operation = gtk_print_operation_new(); + GError* error = 0; + + webkit_web_frame_print_full(frame, operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, &error); + g_object_unref(operation); if (error) { - GtkWidget* dialog = gtk_message_dialog_new(GTK_WINDOW(topLevel), + GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(priv->webView)); + GtkWidget* dialog = gtk_message_dialog_new(GTK_WIDGET_TOPLEVEL(window) ? GTK_WINDOW(window) : 0, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, @@ -679,15 +779,6 @@ void webkit_web_frame_print(WebKitWebFrame* frame) } } -#else - -void webkit_web_frame_print(WebKitWebFrame*) -{ - g_warning("Printing support is not available in older versions of GTK+"); -} - -#endif - bool webkit_web_frame_pause_animation(WebKitWebFrame* frame, const gchar* name, double time, const gchar* element) { ASSERT(core(frame)); @@ -727,4 +818,68 @@ gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame) return g_strdup(mimeType.utf8().data()); } +/** + * webkit_web_frame_get_load_status: + * @frame: a #WebKitWebView + * + * Determines the current status of the load. + * + * Since: 1.1.7 + */ +WebKitLoadStatus webkit_web_frame_get_load_status(WebKitWebFrame* frame) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), WEBKIT_LOAD_FINISHED); + + WebKitWebFramePrivate* priv = frame->priv; + return priv->loadStatus; +} + +void webkit_web_frame_clear_main_frame_name(WebKitWebFrame* frame) +{ + g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); + + core(frame)->tree()->clearName(); +} + +void webkit_gc_collect_javascript_objects() +{ + gcController().garbageCollectNow(); +} + +void webkit_gc_collect_javascript_objects_on_alternate_thread(gboolean waitUntilDone) +{ + gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone); +} + +gsize webkit_gc_count_javascript_objects() +{ + JSC::JSLock lock(JSC::SilenceAssertionsOnly); + return JSDOMWindow::commonJSGlobalData()->heap.objectCount(); + +} + +AtkObject* webkit_web_frame_get_focused_accessible_element(WebKitWebFrame* frame) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL); + +#if HAVE(ACCESSIBILITY) + if (!AXObjectCache::accessibilityEnabled()) + AXObjectCache::enableAccessibility(); + + WebKitWebFramePrivate* priv = frame->priv; + if (!priv->coreFrame || !priv->coreFrame->document()) + return NULL; + + RenderView* root = toRenderView(priv->coreFrame->document()->renderer()); + if (!root) + return NULL; + + AtkObject* wrapper = priv->coreFrame->document()->axObjectCache()->getOrCreate(root)->wrapper(); + if (!wrapper) + return NULL; + + return webkit_accessible_get_focused_element(WEBKIT_ACCESSIBLE(wrapper)); +#else + return NULL; +#endif } diff --git a/WebKit/gtk/webkit/webkitwebframe.h b/WebKit/gtk/webkit/webkitwebframe.h index 7e24565..b2e61b9 100644 --- a/WebKit/gtk/webkit/webkitwebframe.h +++ b/WebKit/gtk/webkit/webkitwebframe.h @@ -22,6 +22,8 @@ #define WEBKIT_WEB_FRAME_H #include <glib-object.h> +#include <gtk/gtk.h> + #include <JavaScriptCore/JSBase.h> #include <webkit/webkitdefines.h> @@ -57,6 +59,30 @@ struct _WebKitWebFrameClass { void (*_webkit_reserved6) (void); }; +/** + * WebKitLoadStatus + * @WEBKIT_LOAD_PROVISIONAL: No data has been received yet, empty + * structures have been allocated to perform the load; the load may + * still fail for transport issues such as not being able to resolve a + * name, or connect to a port. + * @WEBKIT_LOAD_COMMITTED: The first data chunk has arrived, meaning + * that the necessary transport requirements are stabilished, and the + * load is being performed. + * @WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: The first layout with + * actual visible content happened; one or more layouts may have + * happened before that caused nothing to be visible on the screen, + * because the data available at the time was not significant enough. + * @WEBKIT_LOAD_FINISHED: This state means either that everything that + * was required to display the page has been loaded, or that an error + * has happened. + */ +typedef enum { + WEBKIT_LOAD_PROVISIONAL, + WEBKIT_LOAD_COMMITTED, + WEBKIT_LOAD_FINISHED, + WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT +} WebKitLoadStatus; + WEBKIT_API GType webkit_web_frame_get_type (void); @@ -92,6 +118,12 @@ webkit_web_frame_load_string (WebKitWebFrame *frame, const gchar *base_uri); WEBKIT_API void +webkit_web_frame_load_alternate_string (WebKitWebFrame *frame, + const gchar *content, + const gchar *base_url, + const gchar *unreachable_url); + +WEBKIT_API void webkit_web_frame_load_request (WebKitWebFrame *frame, WebKitNetworkRequest *request); @@ -108,6 +140,18 @@ webkit_web_frame_find_frame (WebKitWebFrame *frame, WEBKIT_API JSGlobalContextRef webkit_web_frame_get_global_context (WebKitWebFrame *frame); +WEBKIT_API GtkPrintOperationResult +webkit_web_frame_print_full (WebKitWebFrame *frame, + GtkPrintOperation *operation, + GtkPrintOperationAction action, + GError **error); + +WEBKIT_API void +webkit_web_frame_print (WebKitWebFrame *frame); + +WEBKIT_API WebKitLoadStatus +webkit_web_frame_get_load_status (WebKitWebFrame *frame); + G_END_DECLS #endif diff --git a/WebKit/gtk/webkit/webkitwebhistoryitem.cpp b/WebKit/gtk/webkit/webkitwebhistoryitem.cpp index 42e6a9b..a75bc0d 100644 --- a/WebKit/gtk/webkit/webkitwebhistoryitem.cpp +++ b/WebKit/gtk/webkit/webkitwebhistoryitem.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2008, 2009 Jan Michael C. Alonzo + * Copyright (C) 2009 Igalia S.L. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -23,6 +24,7 @@ #include "webkitprivate.h" #include <glib.h> +#include <glib/gi18n-lib.h> #include "CString.h" #include "HistoryItem.h" @@ -49,8 +51,6 @@ using namespace WebKit; -extern "C" { - struct _WebKitWebHistoryItemPrivate { WebCore::HistoryItem* historyItem; @@ -80,37 +80,28 @@ static void webkit_web_history_item_set_property(GObject* object, guint prop_id, static void webkit_web_history_item_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); -static GHashTable* webkit_history_items() +GHashTable* webkit_history_items() { static GHashTable* historyItems = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_object_unref); return historyItems; } -static void webkit_history_item_add(WebKitWebHistoryItem* webHistoryItem, WebCore::HistoryItem* historyItem) +void webkit_history_item_add(WebKitWebHistoryItem* webHistoryItem, WebCore::HistoryItem* historyItem) { g_return_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem)); GHashTable* table = webkit_history_items(); - - g_hash_table_insert(table, historyItem, g_object_ref(webHistoryItem)); + g_hash_table_insert(table, historyItem, webHistoryItem); } static void webkit_web_history_item_dispose(GObject* object) { WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(object); WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - WebCore::HistoryItem* item = core(webHistoryItem); if (!priv->disposed) { - GHashTable* table = webkit_history_items(); - - g_hash_table_remove(table, item); + WebCore::HistoryItem* item = core(webHistoryItem); item->deref(); - - /* destroy table if empty */ - if (!g_hash_table_size(table)) - g_hash_table_destroy(table); - priv->disposed = true; } @@ -139,6 +130,8 @@ static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) gobject_class->set_property = webkit_web_history_item_set_property; gobject_class->get_property = webkit_web_history_item_get_property; + webkit_init(); + /** * WebKitWebHistoryItem:title: * @@ -150,8 +143,8 @@ static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) PROP_TITLE, g_param_spec_string( "title", - "Title", - "The title of the history item", + _("Title"), + _("The title of the history item"), NULL, WEBKIT_PARAM_READABLE)); @@ -166,8 +159,8 @@ static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) PROP_ALTERNATE_TITLE, g_param_spec_string( "alternate-title", - "Alternate Title", - "The alternate title of the history item", + _("Alternate Title"), + _("The alternate title of the history item"), NULL, WEBKIT_PARAM_READWRITE)); @@ -182,8 +175,8 @@ static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) PROP_URI, g_param_spec_string( "uri", - "URI", - "The URI of the history item", + _("URI"), + _("The URI of the history item"), NULL, WEBKIT_PARAM_READABLE)); @@ -198,8 +191,8 @@ static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) PROP_ORIGINAL_URI, g_param_spec_string( "original-uri", - "Original URI", - "The original URI of the history item", + _("Original URI"), + _("The original URI of the history item"), NULL, WEBKIT_PARAM_READABLE)); @@ -214,8 +207,8 @@ static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) PROP_LAST_VISITED_TIME, g_param_spec_double( "last-visited-time", - "Last visited Time", - "The time at which the history item was last visited", + _("Last visited Time"), + _("The time at which the history item was last visited"), 0, G_MAXDOUBLE, 0, WEBKIT_PARAM_READABLE)); @@ -485,8 +478,6 @@ GList* webkit_web_history_item_get_children(WebKitWebHistoryItem* webHistoryItem return g_list_reverse(kids); } -} /* end extern "C" */ - WebCore::HistoryItem* WebKit::core(WebKitWebHistoryItem* webHistoryItem) { g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); @@ -499,11 +490,8 @@ WebKitWebHistoryItem* WebKit::kit(PassRefPtr<WebCore::HistoryItem> historyItem) g_return_val_if_fail(historyItem, NULL); RefPtr<WebCore::HistoryItem> item = historyItem; - - WebKitWebHistoryItem* webHistoryItem; GHashTable* table = webkit_history_items(); - - webHistoryItem = (WebKitWebHistoryItem*) g_hash_table_lookup(table, item.get()); + WebKitWebHistoryItem* webHistoryItem = (WebKitWebHistoryItem*) g_hash_table_lookup(table, item.get()); if (!webHistoryItem) { webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL)); diff --git a/WebKit/gtk/webkit/webkitwebinspector.cpp b/WebKit/gtk/webkit/webkitwebinspector.cpp index 8e1c8c0..4e4f8de 100644 --- a/WebKit/gtk/webkit/webkitwebinspector.cpp +++ b/WebKit/gtk/webkit/webkitwebinspector.cpp @@ -20,6 +20,7 @@ #include "config.h" +#include <glib/gi18n-lib.h> #include "webkitwebinspector.h" #include "webkitmarshal.h" #include "InspectorClientGtk.h" @@ -56,8 +57,6 @@ using namespace WebKit; -extern "C" { - enum { INSPECT_WEB_VIEW, SHOW_WINDOW, @@ -132,7 +131,7 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ webkit_web_inspector_signals[INSPECT_WEB_VIEW] = g_signal_new("inspect-web-view", G_TYPE_FROM_CLASS(klass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, webkit_inspect_web_view_request_handled, NULL, @@ -153,7 +152,7 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ webkit_web_inspector_signals[SHOW_WINDOW] = g_signal_new("show-window", G_TYPE_FROM_CLASS(klass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -172,7 +171,7 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ webkit_web_inspector_signals[ATTACH_WINDOW] = g_signal_new("attach-window", G_TYPE_FROM_CLASS(klass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -190,7 +189,7 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ webkit_web_inspector_signals[DETACH_WINDOW] = g_signal_new("detach-window", G_TYPE_FROM_CLASS(klass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -217,7 +216,7 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ webkit_web_inspector_signals[CLOSE_WINDOW] = g_signal_new("close-window", G_TYPE_FROM_CLASS(klass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -236,7 +235,7 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ webkit_web_inspector_signals[FINISHED] = g_signal_new("finished", G_TYPE_FROM_CLASS(klass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -256,8 +255,8 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ g_object_class_install_property(gobject_class, PROP_WEB_VIEW, g_param_spec_object("web-view", - "Web View", - "The Web View that renders the Web Inspector itself", + _("Web View"), + _("The Web View that renders the Web Inspector itself"), WEBKIT_TYPE_WEB_VIEW, WEBKIT_PARAM_READABLE)); @@ -270,8 +269,8 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) */ g_object_class_install_property(gobject_class, PROP_INSPECTED_URI, g_param_spec_string("inspected-uri", - "Inspected URI", - "The URI that is currently being inspected", + _("Inspected URI"), + _("The URI that is currently being inspected"), NULL, WEBKIT_PARAM_READABLE)); @@ -287,8 +286,8 @@ static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) PROP_JAVASCRIPT_PROFILING_ENABLED, g_param_spec_boolean( "javascript-profiling-enabled", - "Enable JavaScript profiling", - "Profile the executed JavaScript.", + _("Enable JavaScript profiling"), + _("Profile the executed JavaScript."), FALSE, WEBKIT_PARAM_READWRITE)); @@ -427,5 +426,3 @@ webkit_web_inspector_set_inspector_client(WebKitWebInspector* web_inspector, Web priv->page = page; } - -} diff --git a/WebKit/gtk/webkit/webkitwebnavigationaction.cpp b/WebKit/gtk/webkit/webkitwebnavigationaction.cpp index 48e36ac..c866c0f 100644 --- a/WebKit/gtk/webkit/webkitwebnavigationaction.cpp +++ b/WebKit/gtk/webkit/webkitwebnavigationaction.cpp @@ -22,19 +22,30 @@ #include <wtf/Assertions.h> #include "FrameLoaderTypes.h" +#include <glib/gi18n-lib.h> #include "webkitwebnavigationaction.h" #include "webkitprivate.h" #include "webkitenumtypes.h" #include <string.h> -extern "C" { +static void webkit_web_navigation_action_set_target_frame(WebKitWebNavigationAction* navigationAction, const gchar* targetFrame); + +/** + * SECTION:webkitwebnavigationaction + * @short_description: Object used to report details of navigation actions + * + * #WebKitWebNavigationAction is used in signals to provide details about + * what led the navigation to happen. This includes, for instance, if the user + * clicked a link to start that navigation, and what mouse button was used. + */ struct _WebKitWebNavigationActionPrivate { WebKitWebNavigationReason reason; gchar* originalUri; gint button; gint modifier_state; + gchar* targetFrame; }; #define WEBKIT_WEB_NAVIGATION_ACTION_GET_PRIVATE(obj)(G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_NAVIGATION_ACTION, WebKitWebNavigationActionPrivate)) @@ -45,7 +56,8 @@ enum { PROP_REASON, PROP_ORIGINAL_URI, PROP_BUTTON, - PROP_MODIFIER_STATE + PROP_MODIFIER_STATE, + PROP_TARGET_FRAME }; G_DEFINE_TYPE(WebKitWebNavigationAction, webkit_web_navigation_action, G_TYPE_OBJECT) @@ -68,6 +80,9 @@ static void webkit_web_navigation_action_get_property(GObject* object, guint pro case PROP_MODIFIER_STATE: g_value_set_int(value, webkit_web_navigation_action_get_modifier_state(navigationAction)); break; + case PROP_TARGET_FRAME: + g_value_set_string(value, webkit_web_navigation_action_get_target_frame(navigationAction)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); break; @@ -92,6 +107,9 @@ static void webkit_web_navigation_action_set_property(GObject* object, guint pro case PROP_MODIFIER_STATE: priv->modifier_state = g_value_get_int(value); break; + case PROP_TARGET_FRAME: + webkit_web_navigation_action_set_target_frame(navigationAction, g_value_get_string(value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); break; @@ -101,8 +119,6 @@ static void webkit_web_navigation_action_set_property(GObject* object, guint pro static void webkit_web_navigation_action_init(WebKitWebNavigationAction* navigationAction) { navigationAction->priv = WEBKIT_WEB_NAVIGATION_ACTION_GET_PRIVATE(navigationAction); - - WebKitWebNavigationActionPrivate* priv = navigationAction->priv; } static void webkit_web_navigation_action_finalize(GObject* obj) @@ -119,12 +135,12 @@ static void webkit_web_navigation_action_class_init(WebKitWebNavigationActionCla { GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - COMPILE_ASSERT(WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED == WebCore::NavigationTypeLinkClicked, navigation_type_link_clicked_enum_match); - COMPILE_ASSERT(WEBKIT_WEB_NAVIGATION_REASON_FORM_SUBMITTED == WebCore::NavigationTypeFormSubmitted, navigation_type_form_submitted_enum_match); - COMPILE_ASSERT(WEBKIT_WEB_NAVIGATION_REASON_BACK_FORWARD == WebCore::NavigationTypeBackForward, navigation_type_back_forward_enum_match); - COMPILE_ASSERT(WEBKIT_WEB_NAVIGATION_REASON_RELOAD == WebCore::NavigationTypeReload, navigation_type_reload_enum_match); - COMPILE_ASSERT(WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED == WebCore::NavigationTypeFormResubmitted, navigation_type_form_resubmitted_enum_match); - COMPILE_ASSERT(WEBKIT_WEB_NAVIGATION_REASON_OTHER == WebCore::NavigationTypeOther, navigation_type_other_enum_match); + COMPILE_ASSERT(static_cast<int>(WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED) == static_cast<int>(WebCore::NavigationTypeLinkClicked), navigation_type_link_clicked_enum_match); + COMPILE_ASSERT(static_cast<int>(WEBKIT_WEB_NAVIGATION_REASON_FORM_SUBMITTED) == static_cast<int>(WebCore::NavigationTypeFormSubmitted), navigation_type_form_submitted_enum_match); + COMPILE_ASSERT(static_cast<int>(WEBKIT_WEB_NAVIGATION_REASON_BACK_FORWARD) == static_cast<int>(WebCore::NavigationTypeBackForward), navigation_type_back_forward_enum_match); + COMPILE_ASSERT(static_cast<int>(WEBKIT_WEB_NAVIGATION_REASON_RELOAD) == static_cast<int>(WebCore::NavigationTypeReload), navigation_type_reload_enum_match); + COMPILE_ASSERT(static_cast<int>(WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED) == static_cast<int>(WebCore::NavigationTypeFormResubmitted), navigation_type_form_resubmitted_enum_match); + COMPILE_ASSERT(static_cast<int>(WEBKIT_WEB_NAVIGATION_REASON_OTHER) == static_cast<int>(WebCore::NavigationTypeOther), navigation_type_other_enum_match); objectClass->get_property = webkit_web_navigation_action_get_property; objectClass->set_property = webkit_web_navigation_action_set_property; @@ -139,8 +155,8 @@ static void webkit_web_navigation_action_class_init(WebKitWebNavigationActionCla */ g_object_class_install_property(objectClass, PROP_REASON, g_param_spec_enum("reason", - "Reason", - "The reason why this navigation is occurring", + _("Reason"), + _("The reason why this navigation is occurring"), WEBKIT_TYPE_WEB_NAVIGATION_REASON, WEBKIT_WEB_NAVIGATION_REASON_OTHER, (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT))); @@ -154,8 +170,8 @@ static void webkit_web_navigation_action_class_init(WebKitWebNavigationActionCla */ g_object_class_install_property(objectClass, PROP_ORIGINAL_URI, g_param_spec_string("original-uri", - "Original URI", - "The URI that was requested as the target for the navigation", + _("Original URI"), + _("The URI that was requested as the target for the navigation"), "", (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT))); /** @@ -167,8 +183,8 @@ static void webkit_web_navigation_action_class_init(WebKitWebNavigationActionCla */ g_object_class_install_property(objectClass, PROP_BUTTON, g_param_spec_int("button", - "Button", - "The button used to click", + _("Button"), + _("The button used to click"), -1, G_MAXINT, -1, @@ -183,13 +199,27 @@ static void webkit_web_navigation_action_class_init(WebKitWebNavigationActionCla */ g_object_class_install_property(objectClass, PROP_MODIFIER_STATE, g_param_spec_int("modifier-state", - "Modifier state", - "A bitmask representing the state of the modifier keys", + _("Modifier state"), + _("A bitmask representing the state of the modifier keys"), 0, G_MAXINT, 0, (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); + /** + * WebKitWebNavigationAction:target-frame: + * + * The target frame for the navigation. + * + * Since: 1.1.13 + */ + g_object_class_install_property(objectClass, PROP_TARGET_FRAME, + g_param_spec_string("target-frame", + _("Target frame"), + _("The target frame for the navigation"), + NULL, + (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); + g_type_class_add_private(requestClass, sizeof(WebKitWebNavigationActionPrivate)); @@ -308,5 +338,31 @@ gint webkit_web_navigation_action_get_modifier_state(WebKitWebNavigationAction* return navigationAction->priv->modifier_state; } - + +/** + * webkit_web_navigation_action_get_target_frame: + * @navigationAction: a #WebKitWebNavigationAction + * + * Returns the target frame of the action. + * + * Return value: the target frame of the action or NULL + * if there is no target. + * + * Since: 1.1.13 + */ +G_CONST_RETURN gchar* webkit_web_navigation_action_get_target_frame(WebKitWebNavigationAction* navigationAction) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction), NULL); + + return navigationAction->priv->targetFrame; +} + +static void webkit_web_navigation_action_set_target_frame(WebKitWebNavigationAction* navigationAction, const gchar* targetFrame) +{ + if (!g_strcmp0(navigationAction->priv->targetFrame, targetFrame)) + return; + + g_free(navigationAction->priv->targetFrame); + navigationAction->priv->targetFrame = g_strdup(targetFrame); + g_object_notify(G_OBJECT(navigationAction), "target-frame"); } diff --git a/WebKit/gtk/webkit/webkitwebnavigationaction.h b/WebKit/gtk/webkit/webkitwebnavigationaction.h index d83e7a0..c437c50 100644 --- a/WebKit/gtk/webkit/webkitwebnavigationaction.h +++ b/WebKit/gtk/webkit/webkitwebnavigationaction.h @@ -88,6 +88,9 @@ webkit_web_navigation_action_get_button(WebKitWebNavigationAction* navigationAct WEBKIT_API gint webkit_web_navigation_action_get_modifier_state(WebKitWebNavigationAction* navigationAction); +WEBKIT_API G_CONST_RETURN gchar * +webkit_web_navigation_action_get_target_frame(WebKitWebNavigationAction* navigationAction); + G_END_DECLS #endif diff --git a/WebKit/gtk/webkit/webkitwebpolicydecision.cpp b/WebKit/gtk/webkit/webkitwebpolicydecision.cpp index db4d10f..b2bab6b 100644 --- a/WebKit/gtk/webkit/webkitwebpolicydecision.cpp +++ b/WebKit/gtk/webkit/webkitwebpolicydecision.cpp @@ -27,7 +27,15 @@ using namespace WebKit; using namespace WebCore; -extern "C" { +/** + * SECTION:webkitwebpolicydecision + * @short_description: Liason between WebKit and the application regarding asynchronous policy decisions + * + * #WebKitWebPolicyDecision objects are given to the application on + * signal emissions that deal with policy decisions, such as if a new + * window should be opened, or if a given navigation should be + * allowed. The application uses it to tell the engine what to do. + */ G_DEFINE_TYPE(WebKitWebPolicyDecision, webkit_web_policy_decision, G_TYPE_OBJECT); @@ -125,5 +133,3 @@ void webkit_web_policy_decision_cancel(WebKitWebPolicyDecision* decision) priv->isCancelled = TRUE; } - -} diff --git a/WebKit/gtk/webkit/webkitwebsettings.cpp b/WebKit/gtk/webkit/webkitwebsettings.cpp index d31ec2f..061d3e2 100644 --- a/WebKit/gtk/webkit/webkitwebsettings.cpp +++ b/WebKit/gtk/webkit/webkitwebsettings.cpp @@ -3,6 +3,7 @@ * Copyright (C) 2008 Nuanti Ltd. * Copyright (C) 2008 Collabora Ltd. * Copyright (C) 2008 Holger Hans Peter Freyther + * Copyright (C) 2009 Jan Michael Alonzo * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -21,12 +22,21 @@ */ #include "config.h" - #include "webkitwebsettings.h" + #include "webkitprivate.h" +#include "webkitversion.h" +#include "CString.h" #include "FileSystem.h" #include "PluginDatabase.h" +#include "Language.h" +#include "PlatformString.h" + +#include <glib/gi18n-lib.h> +#if PLATFORM(UNIX) +#include <sys/utsname.h> +#endif /** * SECTION:webkitwebsettings @@ -48,8 +58,6 @@ using namespace WebCore; -extern "C" { - G_DEFINE_TYPE(WebKitWebSettings, webkit_web_settings, G_TYPE_OBJECT) struct _WebKitWebSettingsPrivate { @@ -75,6 +83,16 @@ struct _WebKitWebSettingsPrivate { gfloat zoom_step; gboolean enable_developer_extras; gboolean enable_private_browsing; + gboolean enable_spell_checking; + gchar* spell_checking_languages; + GSList* spell_checking_languages_list; + gboolean enable_caret_browsing; + gboolean enable_html5_database; + gboolean enable_html5_local_storage; + gboolean enable_xss_auditor; + gchar* user_agent; + gboolean javascript_can_open_windows_automatically; + gboolean enable_offline_web_application_cache; }; #define WEBKIT_WEB_SETTINGS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsPrivate)) @@ -103,9 +121,75 @@ enum { PROP_USER_STYLESHEET_URI, PROP_ZOOM_STEP, PROP_ENABLE_DEVELOPER_EXTRAS, - PROP_ENABLE_PRIVATE_BROWSING + PROP_ENABLE_PRIVATE_BROWSING, + PROP_ENABLE_SPELL_CHECKING, + PROP_SPELL_CHECKING_LANGUAGES, + PROP_ENABLE_CARET_BROWSING, + PROP_ENABLE_HTML5_DATABASE, + PROP_ENABLE_HTML5_LOCAL_STORAGE, + PROP_ENABLE_XSS_AUDITOR, + PROP_USER_AGENT, + PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY, + PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE }; +// Create a default user agent string +// This is a liberal interpretation of http://www.mozilla.org/build/revised-user-agent-strings.html +// See also http://developer.apple.com/internet/safari/faq.html#anchor2 +static String webkit_get_user_agent() +{ + gchar* platform; + gchar* osVersion; + +#if PLATFORM(X11) + platform = g_strdup("X11"); +#elif PLATFORM(WIN_OS) + platform = g_strdup("Windows"); +#elif PLATFORM(MAC) + platform = g_strdup("Macintosh"); +#elif defined(GDK_WINDOWING_DIRECTFB) + platform = g_strdup("DirectFB"); +#else + platform = g_strdup("Unknown"); +#endif + + // FIXME: platform/version detection can be shared. +#if PLATFORM(DARWIN) + +#if PLATFORM(X86) + osVersion = g_strdup("Intel Mac OS X"); +#else + osVersion = g_strdup("PPC Mac OS X"); +#endif + +#elif PLATFORM(UNIX) + struct utsname name; + if (uname(&name) != -1) + osVersion = g_strdup_printf("%s %s", name.sysname, name.machine); + else + osVersion = g_strdup("Unknown"); + +#elif PLATFORM(WIN_OS) + // FIXME: Compute the Windows version + osVersion = g_strdup("Windows"); + +#else + osVersion = g_strdup("Unknown"); +#endif + + // We mention Safari since many broken sites check for it (OmniWeb does this too) + // We re-use the WebKit version, though it doesn't seem to matter much in practice + + DEFINE_STATIC_LOCAL(const String, uaVersion, (String::format("%d.%d+", WEBKIT_USER_AGENT_MAJOR_VERSION, WEBKIT_USER_AGENT_MINOR_VERSION))); + DEFINE_STATIC_LOCAL(const String, staticUA, (String::format("Mozilla/5.0 (%s; U; %s; %s) AppleWebKit/%s (KHTML, like Gecko) Safari/%s", + platform, osVersion, defaultLanguage().utf8().data(), uaVersion.utf8().data(), uaVersion.utf8().data()))); + + g_free(osVersion); + g_free(platform); + + return staticUA; +} + static void webkit_web_settings_finalize(GObject* object); static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); @@ -119,14 +203,16 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) gobject_class->set_property = webkit_web_settings_set_property; gobject_class->get_property = webkit_web_settings_get_property; + webkit_init(); + GParamFlags flags = (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_class_install_property(gobject_class, PROP_DEFAULT_ENCODING, g_param_spec_string( "default-encoding", - "Default Encoding", - "The default encoding used to display text.", + _("Default Encoding"), + _("The default encoding used to display text."), "iso-8859-1", flags)); @@ -134,8 +220,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_CURSIVE_FONT_FAMILY, g_param_spec_string( "cursive-font-family", - "Cursive Font Family", - "The default Cursive font family used to display text.", + _("Cursive Font Family"), + _("The default Cursive font family used to display text."), "serif", flags)); @@ -143,8 +229,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_DEFAULT_FONT_FAMILY, g_param_spec_string( "default-font-family", - "Default Font Family", - "The default font family used to display text.", + _("Default Font Family"), + _("The default font family used to display text."), "sans-serif", flags)); @@ -152,8 +238,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_FANTASY_FONT_FAMILY, g_param_spec_string( "fantasy-font-family", - "Fantasy Font Family", - "The default Fantasy font family used to display text.", + _("Fantasy Font Family"), + _("The default Fantasy font family used to display text."), "serif", flags)); @@ -161,8 +247,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_MONOSPACE_FONT_FAMILY, g_param_spec_string( "monospace-font-family", - "Monospace Font Family", - "The default font family used to display monospace text.", + _("Monospace Font Family"), + _("The default font family used to display monospace text."), "monospace", flags)); @@ -170,8 +256,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_SANS_SERIF_FONT_FAMILY, g_param_spec_string( "sans-serif-font-family", - "Sans Serif Font Family", - "The default Sans Serif font family used to display text.", + _("Sans Serif Font Family"), + _("The default Sans Serif font family used to display text."), "sans-serif", flags)); @@ -179,8 +265,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_SERIF_FONT_FAMILY, g_param_spec_string( "serif-font-family", - "Serif Font Family", - "The default Serif font family used to display text.", + _("Serif Font Family"), + _("The default Serif font family used to display text."), "serif", flags)); @@ -188,8 +274,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_DEFAULT_FONT_SIZE, g_param_spec_int( "default-font-size", - "Default Font Size", - "The default font size used to display text.", + _("Default Font Size"), + _("The default font size used to display text."), 5, G_MAXINT, 12, flags)); @@ -197,8 +283,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_DEFAULT_MONOSPACE_FONT_SIZE, g_param_spec_int( "default-monospace-font-size", - "Default Monospace Font Size", - "The default font size used to display monospace text.", + _("Default Monospace Font Size"), + _("The default font size used to display monospace text."), 5, G_MAXINT, 10, flags)); @@ -206,8 +292,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_MINIMUM_FONT_SIZE, g_param_spec_int( "minimum-font-size", - "Minimum Font Size", - "The minimum font size used to display text.", + _("Minimum Font Size"), + _("The minimum font size used to display text."), 1, G_MAXINT, 5, flags)); @@ -215,8 +301,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_MINIMUM_LOGICAL_FONT_SIZE, g_param_spec_int( "minimum-logical-font-size", - "Minimum Logical Font Size", - "The minimum logical font size used to display text.", + _("Minimum Logical Font Size"), + _("The minimum logical font size used to display text."), 1, G_MAXINT, 5, flags)); @@ -235,8 +321,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_ENFORCE_96_DPI, g_param_spec_boolean( "enforce-96-dpi", - "Enforce 96 DPI", - "Enforce a resolution of 96 DPI", + _("Enforce 96 DPI"), + _("Enforce a resolution of 96 DPI"), FALSE, flags)); @@ -244,8 +330,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_AUTO_LOAD_IMAGES, g_param_spec_boolean( "auto-load-images", - "Auto Load Images", - "Load images automatically.", + _("Auto Load Images"), + _("Load images automatically."), TRUE, flags)); @@ -253,8 +339,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_AUTO_SHRINK_IMAGES, g_param_spec_boolean( "auto-shrink-images", - "Auto Shrink Images", - "Automatically shrink standalone images to fit.", + _("Auto Shrink Images"), + _("Automatically shrink standalone images to fit."), TRUE, flags)); @@ -262,8 +348,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_PRINT_BACKGROUNDS, g_param_spec_boolean( "print-backgrounds", - "Print Backgrounds", - "Whether background images should be printed.", + _("Print Backgrounds"), + _("Whether background images should be printed."), TRUE, flags)); @@ -271,8 +357,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_ENABLE_SCRIPTS, g_param_spec_boolean( "enable-scripts", - "Enable Scripts", - "Enable embedded scripting languages.", + _("Enable Scripts"), + _("Enable embedded scripting languages."), TRUE, flags)); @@ -280,8 +366,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_ENABLE_PLUGINS, g_param_spec_boolean( "enable-plugins", - "Enable Plugins", - "Enable embedded plugin objects.", + _("Enable Plugins"), + _("Enable embedded plugin objects."), TRUE, flags)); @@ -289,16 +375,16 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_RESIZABLE_TEXT_AREAS, g_param_spec_boolean( "resizable-text-areas", - "Resizable Text Areas", - "Whether text areas are resizable.", + _("Resizable Text Areas"), + _("Whether text areas are resizable."), TRUE, flags)); g_object_class_install_property(gobject_class, PROP_USER_STYLESHEET_URI, g_param_spec_string("user-stylesheet-uri", - "User Stylesheet URI", - "The URI of a stylesheet that is applied to every page.", + _("User Stylesheet URI"), + _("The URI of a stylesheet that is applied to every page."), 0, flags)); @@ -313,8 +399,8 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_ZOOM_STEP, g_param_spec_float( "zoom-step", - "Zoom Stepping Value", - "The value by which the zoom level is changed when zooming in or out.", + _("Zoom Stepping Value"), + _("The value by which the zoom level is changed when zooming in or out."), 0.0f, G_MAXFLOAT, 0.1f, flags)); @@ -332,15 +418,20 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_ENABLE_DEVELOPER_EXTRAS, g_param_spec_boolean( "enable-developer-extras", - "Enable Developer Extras", - "Enables special extensions that help developers", + _("Enable Developer Extras"), + _("Enables special extensions that help developers"), FALSE, flags)); /** * WebKitWebSettings:enable-private-browsing: * - * Whether to enable private browsing mode. + * Whether to enable private browsing mode. Private browsing mode prevents + * WebKit from updating the global history and storing any session + * information e.g., on-disk cache, as well as suppressing any messages + * from being printed into the (javascript) console. + * + * This is currently experimental for WebKitGtk. * * Since 1.1.2 */ @@ -348,11 +439,166 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) PROP_ENABLE_PRIVATE_BROWSING, g_param_spec_boolean( "enable-private-browsing", - "Enable Private Browsing", - "Enables private browsing mode", + _("Enable Private Browsing"), + _("Enables private browsing mode"), FALSE, flags)); + /** + * WebKitWebSettings:enable-spell-checking: + * + * Whether to enable spell checking while typing. + * + * Since 1.1.6 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_SPELL_CHECKING, + g_param_spec_boolean( + "enable-spell-checking", + _("Enable Spell Checking"), + _("Enables spell checking while typing"), + FALSE, + flags)); + + /** + * WebKitWebSettings:spell-checking-languages: + * + * The languages to be used for spell checking, separated by commas. + * + * The locale string typically is in the form lang_COUNTRY, where lang + * is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. + * For instance, sv_FI for Swedish as written in Finland or pt_BR + * for Portuguese as written in Brazil. + * + * If no value is specified then the value returned by + * gtk_get_default_language will be used. + * + * Since 1.1.6 + */ + g_object_class_install_property(gobject_class, + PROP_SPELL_CHECKING_LANGUAGES, + g_param_spec_string( + "spell-checking-languages", + _("Languages to use for spell checking"), + _("Comma separated list of languages to use for spell checking"), + 0, + flags)); + + /** + * WebKitWebSettings:enable-caret-browsing: + * + * Whether to enable caret browsing mode. + * + * Since 1.1.6 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_CARET_BROWSING, + g_param_spec_boolean("enable-caret-browsing", + _("Enable Caret Browsing"), + _("Whether to enable accesibility enhanced keyboard navigation"), + FALSE, + flags)); + /** + * WebKitWebSettings:enable-html5-database: + * + * Whether to enable HTML5 client-side SQL database support. Client-side + * SQL database allows web pages to store structured data and be able to + * use SQL to manipulate that data asynchronously. + * + * Since 1.1.8 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_HTML5_DATABASE, + g_param_spec_boolean("enable-html5-database", + _("Enable HTML5 Database"), + _("Whether to enable HTML5 database support"), + TRUE, + flags)); + + /** + * WebKitWebSettings:enable-html5-local-storage: + * + * Whether to enable HTML5 localStorage support. localStorage provides + * simple synchronous storage access. + * + * Since 1.1.8 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_HTML5_LOCAL_STORAGE, + g_param_spec_boolean("enable-html5-local-storage", + _("Enable HTML5 Local Storage"), + _("Whether to enable HTML5 Local Storage support"), + TRUE, + flags)); + /** + * WebKitWebSettings:enable-xss-auditor + * + * Whether to enable the XSS Auditor. This feature filters some kinds of + * reflective XSS attacks on vulnerable web sites. + * + * Since 1.1.11 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_XSS_AUDITOR, + g_param_spec_boolean("enable-xss-auditor", + _("Enable XSS Auditor"), + _("Whether to enable teh XSS auditor"), + TRUE, + flags)); + + /** + * WebKitWebSettings:user-agent: + * + * The User-Agent string used by WebKitGtk. + * + * This will return a default User-Agent string if a custom string wasn't + * provided by the application. Setting this property to a NULL value or + * an empty string will result in the User-Agent string being reset to the + * default value. + * + * Since: 1.1.11 + */ + g_object_class_install_property(gobject_class, PROP_USER_AGENT, + g_param_spec_string("user-agent", + _("User Agent"), + _("The User-Agent string used by WebKitGtk"), + webkit_get_user_agent().utf8().data(), + flags)); + + /** + * WebKitWebSettings:javascript-can-open-windows-automatically + * + * Whether JavaScript can open popup windows automatically without user + * intervention. + * + * Since 1.1.11 + */ + g_object_class_install_property(gobject_class, + PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY, + g_param_spec_boolean("javascript-can-open-windows-automatically", + _("JavaScript can open windows automatically"), + _("Whether JavaScript can open windows automatically"), + FALSE, + flags)); + /** + * WebKitWebSettings:enable-offline-web-application-cache + * + * Whether to enable HTML5 offline web application cache support. Offline + * Web Application Cache ensures web applications are available even when + * the user is not connected to the network. + * + * Since 1.1.13 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE, + g_param_spec_boolean("enable-offline-web-application-cache", + _("Enable offline web application cache"), + _("Whether to enable offline web application cache"), + TRUE, + flags)); + + + g_type_class_add_private(klass, sizeof(WebKitWebSettingsPrivate)); } @@ -361,6 +607,18 @@ static void webkit_web_settings_init(WebKitWebSettings* web_settings) web_settings->priv = WEBKIT_WEB_SETTINGS_GET_PRIVATE(web_settings); } +static void free_spell_checking_language(gpointer data, gpointer user_data) +{ + SpellLanguage* language = static_cast<SpellLanguage*>(data); + if (language->config) { + if (language->speller) + enchant_broker_free_dict(language->config, language->speller); + + enchant_broker_free(language->config); + } + g_slice_free(SpellLanguage, language); +} + static void webkit_web_settings_finalize(GObject* object) { WebKitWebSettings* web_settings = WEBKIT_WEB_SETTINGS(object); @@ -374,6 +632,12 @@ static void webkit_web_settings_finalize(GObject* object) g_free(priv->sans_serif_font_family); g_free(priv->serif_font_family); g_free(priv->user_stylesheet_uri); + g_free(priv->spell_checking_languages); + + g_slist_foreach(priv->spell_checking_languages_list, free_spell_checking_language, NULL); + g_slist_free(priv->spell_checking_languages_list); + + g_free(priv->user_agent); G_OBJECT_CLASS(webkit_web_settings_parent_class)->finalize(object); } @@ -382,6 +646,8 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con { WebKitWebSettings* web_settings = WEBKIT_WEB_SETTINGS(object); WebKitWebSettingsPrivate* priv = web_settings->priv; + SpellLanguage* lang; + GSList* spellLanguages = NULL; switch(prop_id) { case PROP_DEFAULT_ENCODING: @@ -458,6 +724,61 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con case PROP_ENABLE_PRIVATE_BROWSING: priv->enable_private_browsing = g_value_get_boolean(value); break; + case PROP_ENABLE_CARET_BROWSING: + priv->enable_caret_browsing = g_value_get_boolean(value); + break; + case PROP_ENABLE_HTML5_DATABASE: + priv->enable_html5_database = g_value_get_boolean(value); + break; + case PROP_ENABLE_HTML5_LOCAL_STORAGE: + priv->enable_html5_local_storage = g_value_get_boolean(value); + break; + case PROP_ENABLE_SPELL_CHECKING: + priv->enable_spell_checking = g_value_get_boolean(value); + break; + case PROP_SPELL_CHECKING_LANGUAGES: + priv->spell_checking_languages = g_strdup(g_value_get_string(value)); + + if (priv->spell_checking_languages) { + char** langs = g_strsplit(priv->spell_checking_languages, ",", -1); + for (int i = 0; langs[i]; i++) { + lang = g_slice_new0(SpellLanguage); + lang->config = enchant_broker_init(); + lang->speller = enchant_broker_request_dict(lang->config, langs[i]); + + spellLanguages = g_slist_append(spellLanguages, lang); + } + + g_strfreev(langs); + } else { + const char* language = pango_language_to_string(gtk_get_default_language()); + + lang = g_slice_new0(SpellLanguage); + lang->config = enchant_broker_init(); + lang->speller = enchant_broker_request_dict(lang->config, language); + + spellLanguages = g_slist_append(spellLanguages, lang); + } + g_slist_foreach(priv->spell_checking_languages_list, free_spell_checking_language, NULL); + g_slist_free(priv->spell_checking_languages_list); + priv->spell_checking_languages_list = spellLanguages; + break; + case PROP_ENABLE_XSS_AUDITOR: + priv->enable_xss_auditor = g_value_get_boolean(value); + break; + case PROP_USER_AGENT: + g_free(priv->user_agent); + if (!g_value_get_string(value) || !strlen(g_value_get_string(value))) + priv->user_agent = g_strdup(webkit_get_user_agent().utf8().data()); + else + priv->user_agent = g_strdup(g_value_get_string(value)); + break; + case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY: + priv->javascript_can_open_windows_automatically = g_value_get_boolean(value); + break; + case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE: + priv->enable_offline_web_application_cache = g_value_get_boolean(value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -536,6 +857,33 @@ static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa case PROP_ENABLE_PRIVATE_BROWSING: g_value_set_boolean(value, priv->enable_private_browsing); break; + case PROP_ENABLE_CARET_BROWSING: + g_value_set_boolean(value, priv->enable_caret_browsing); + break; + case PROP_ENABLE_HTML5_DATABASE: + g_value_set_boolean(value, priv->enable_html5_database); + break; + case PROP_ENABLE_HTML5_LOCAL_STORAGE: + g_value_set_boolean(value, priv->enable_html5_local_storage); + break; + case PROP_ENABLE_SPELL_CHECKING: + g_value_set_boolean(value, priv->enable_spell_checking); + break; + case PROP_SPELL_CHECKING_LANGUAGES: + g_value_set_string(value, priv->spell_checking_languages); + break; + case PROP_ENABLE_XSS_AUDITOR: + g_value_set_boolean(value, priv->enable_xss_auditor); + break; + case PROP_USER_AGENT: + g_value_set_string(value, priv->user_agent); + break; + case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY: + g_value_set_boolean(value, priv->javascript_can_open_windows_automatically); + break; + case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE: + g_value_set_boolean(value, priv->enable_offline_web_application_cache); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -588,6 +936,16 @@ WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* web_settings) "zoom-step", priv->zoom_step, "enable-developer-extras", priv->enable_developer_extras, "enable-private-browsing", priv->enable_private_browsing, + "enable-spell-checking", priv->enable_spell_checking, + "spell-checking-languages", priv->spell_checking_languages, + "spell-checking-languages-list", priv->spell_checking_languages_list, + "enable-caret-browsing", priv->enable_caret_browsing, + "enable-html5-database", priv->enable_html5_database, + "enable-html5-local-storage", priv->enable_html5_local_storage, + "enable-xss-auditor", priv->enable_xss_auditor, + "user-agent", webkit_web_settings_get_user_agent(web_settings), + "javascript-can-open-windows-automatically", priv->javascript_can_open_windows_automatically, + "enable-offline-web-application-cache", priv->enable_offline_web_application_cache, NULL)); return copy; @@ -609,4 +967,40 @@ void webkit_web_settings_add_extra_plugin_directory(WebKitWebView* webView, cons PluginDatabase::installedPlugins()->addExtraPluginDirectory(filenameToString(directory)); } +/** + * webkit_web_settings_get_spell_languages: + * @web_view: a #WebKitWebView + * + * Internal use only. Retrieves a GSList of SpellLanguages from the + * #WebKitWebSettings of @web_view. + * + * Since: 1.1.6 + */ +GSList* webkit_web_settings_get_spell_languages(WebKitWebView *web_view) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(web_view), 0); + + WebKitWebSettings* settings = webkit_web_view_get_settings(web_view); + WebKitWebSettingsPrivate* priv = settings->priv; + GSList* list = priv->spell_checking_languages_list; + + return list; +} + +/** + * webkit_web_settings_get_user_agent: + * @web_settings: a #WebKitWebSettings + * + * Returns the User-Agent string currently used by the web view(s) associated + * with the @web_settings. + * + * Since: 1.1.11 + */ +G_CONST_RETURN gchar* webkit_web_settings_get_user_agent(WebKitWebSettings* webSettings) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_SETTINGS(webSettings), NULL); + + WebKitWebSettingsPrivate* priv = webSettings->priv; + + return priv->user_agent; } diff --git a/WebKit/gtk/webkit/webkitwebsettings.h b/WebKit/gtk/webkit/webkitwebsettings.h index 5d25fee..9eac321 100644 --- a/WebKit/gtk/webkit/webkitwebsettings.h +++ b/WebKit/gtk/webkit/webkitwebsettings.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2008 Christian Dywan <christian@imendio.com> + * Copyright (C) 2009 Jan Michael Alonzo <jmalonzo@gmail.com * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -53,13 +54,16 @@ struct _WebKitWebSettingsClass { }; WEBKIT_API GType -webkit_web_settings_get_type (void); +webkit_web_settings_get_type (void); WEBKIT_API WebKitWebSettings * -webkit_web_settings_new (void); +webkit_web_settings_new (void); WEBKIT_API WebKitWebSettings * -webkit_web_settings_copy (WebKitWebSettings *web_settings); +webkit_web_settings_copy (WebKitWebSettings *web_settings); + +WEBKIT_API G_CONST_RETURN gchar * +webkit_web_settings_get_user_agent (WebKitWebSettings *web_settings); G_END_DECLS diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp index d6a0d54..ec59e60 100644 --- a/WebKit/gtk/webkit/webkitwebview.cpp +++ b/WebKit/gtk/webkit/webkitwebview.cpp @@ -55,6 +55,7 @@ #include "FrameLoaderTypes.h" #include "HitTestRequest.h" #include "HitTestResult.h" +#include <glib/gi18n-lib.h> #include "GraphicsContext.h" #include "InspectorClientGtk.h" #include "FrameLoader.h" @@ -62,6 +63,7 @@ #include "PasteboardHelper.h" #include "PlatformKeyboardEvent.h" #include "PlatformWheelEvent.h" +#include "ProgressTracker.h" #include "ResourceHandle.h" #include "ScriptValue.h" #include "Scrollbar.h" @@ -71,10 +73,10 @@ /** * SECTION:webkitwebview - * @short_description: The central class of the WebKit/Gtk+ API + * @short_description: The central class of the WebKitGTK+ API * @see_also: #WebKitWebSettings, #WebKitWebFrame * - * #WebKitWebView is the central class of the WebKit/Gtk+ API. It is a + * #WebKitWebView is the central class of the WebKitGTK+ API. It is a * #GtkWidget implementing the scrolling interface which means you can * embed in a #GtkScrolledWindow. It is responsible for managing the * drawing of the content, forwarding of events. You can load any URI @@ -107,8 +109,6 @@ static const double defaultDPI = 96.0; using namespace WebKit; using namespace WebCore; -extern "C" { - enum { /* normal signals */ NAVIGATION_REQUESTED, @@ -121,6 +121,7 @@ enum { LOAD_STARTED, LOAD_COMMITTED, LOAD_PROGRESS_CHANGED, + LOAD_ERROR, LOAD_FINISHED, TITLE_CHANGED, HOVERING_OVER_LINK, @@ -137,6 +138,10 @@ enum { PASTE_CLIPBOARD, CUT_CLIPBOARD, DOWNLOAD_REQUESTED, + MOVE_CURSOR, + PRINT_REQUESTED, + PLUGIN_WIDGET, + CLOSE_WEB_VIEW, LAST_SIGNAL }; @@ -154,6 +159,8 @@ enum { PROP_TRANSPARENT, PROP_ZOOM_LEVEL, PROP_FULL_CONTENT_ZOOM, + PROP_LOAD_STATUS, + PROP_PROGRESS, PROP_ENCODING, PROP_CUSTOM_ENCODING }; @@ -165,13 +172,6 @@ G_DEFINE_TYPE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER) static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView); static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWebWindowFeatures* webWindowFeatures); -static void webkit_web_view_context_menu_position_func(GtkMenu*, gint* x, gint* y, gboolean* pushIn, WebKitWebViewPrivate* data) -{ - *pushIn = FALSE; - *x = data->lastPopupXPosition; - *y = data->lastPopupYPosition; -} - static gboolean webkit_web_view_forward_context_menu_event(WebKitWebView* webView, const PlatformMouseEvent& event) { Page* page = core(webView); @@ -206,7 +206,7 @@ static gboolean webkit_web_view_forward_context_menu_event(WebKitWebView* webVie priv->lastPopupXPosition = event.globalX(); priv->lastPopupYPosition = event.globalY(); gtk_menu_popup(menu, NULL, NULL, - reinterpret_cast<GtkMenuPositionFunc>(webkit_web_view_context_menu_position_func), + NULL, priv, event.button() + 1, gtk_get_current_event_time()); return TRUE; } @@ -290,14 +290,12 @@ static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue* case PROP_URI: g_value_set_string(value, webkit_web_view_get_uri(webView)); break; -#if GTK_CHECK_VERSION(2,10,0) case PROP_COPY_TARGET_LIST: g_value_set_boxed(value, webkit_web_view_get_copy_target_list(webView)); break; case PROP_PASTE_TARGET_LIST: g_value_set_boxed(value, webkit_web_view_get_paste_target_list(webView)); break; -#endif case PROP_EDITABLE: g_value_set_boolean(value, webkit_web_view_get_editable(webView)); break; @@ -325,6 +323,12 @@ static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue* case PROP_CUSTOM_ENCODING: g_value_set_string(value, webkit_web_view_get_custom_encoding(webView)); break; + case PROP_LOAD_STATUS: + g_value_set_enum(value, webkit_web_view_get_load_status(webView)); + break; + case PROP_PROGRESS: + g_value_set_double(value, webkit_web_view_get_progress(webView)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); } @@ -437,48 +441,6 @@ static gboolean webkit_web_view_key_press_event(GtkWidget* widget, GdkEventKey* if (frame->eventHandler()->keyEvent(keyboardEvent)) return TRUE; - FrameView* view = frame->view(); - SelectionController::EAlteration alteration; - if (event->state & GDK_SHIFT_MASK) - alteration = SelectionController::EXTEND; - else - alteration = SelectionController::MOVE; - - // TODO: We probably want to use GTK+ key bindings here and perhaps take an - // approach more like the Win and Mac ports for key handling. - switch (event->keyval) { - case GDK_Down: - view->scrollBy(IntSize(0, cScrollbarPixelsPerLineStep)); - return TRUE; - case GDK_Up: - view->scrollBy(IntSize(0, -cScrollbarPixelsPerLineStep)); - return TRUE; - case GDK_Right: - view->scrollBy(IntSize(cScrollbarPixelsPerLineStep, 0)); - return TRUE; - case GDK_Left: - view->scrollBy(IntSize(-cScrollbarPixelsPerLineStep, 0)); - return TRUE; - case GDK_space: - if ((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK) - view->scrollBy(IntSize(0, -view->visibleHeight())); - else - view->scrollBy(IntSize(0, view->visibleHeight())); - return TRUE; - case GDK_Page_Up: - view->scrollBy(IntSize(0, -view->visibleHeight())); - return TRUE; - case GDK_Page_Down: - view->scrollBy(IntSize(0, view->visibleHeight())); - return TRUE; - case GDK_Home: - view->scrollBy(IntSize(0, -view->contentsHeight())); - return TRUE; - case GDK_End: - view->scrollBy(IntSize(0, view->contentsHeight())); - return TRUE; - } - /* Chain up to our parent class for binding activation */ return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->key_press_event(widget, event); } @@ -514,7 +476,23 @@ static gboolean webkit_web_view_button_press_event(GtkWidget* widget, GdkEventBu if (!frame->view()) return FALSE; - return frame->eventHandler()->handleMousePressEvent(PlatformMouseEvent(event)); + gboolean result = frame->eventHandler()->handleMousePressEvent(PlatformMouseEvent(event)); + +#if PLATFORM(X11) + /* Copy selection to the X11 selection clipboard */ + if (event->button == 2) { + bool primary = webView->priv->usePrimaryForPaste; + webView->priv->usePrimaryForPaste = true; + + Editor* editor = webView->priv->corePage->focusController()->focusedOrMainFrame()->editor(); + result = result || editor->canPaste() || editor->canDHTMLPaste(); + editor->paste(); + + webView->priv->usePrimaryForPaste = primary; + } +#endif + + return result; } static gboolean webkit_web_view_button_release_event(GtkWidget* widget, GdkEventButton* event) @@ -567,6 +545,21 @@ static gboolean webkit_web_view_scroll_event(GtkWidget* widget, GdkEventScroll* return frame->eventHandler()->handleWheelEvent(wheelEvent); } +static void webkit_web_view_size_request(GtkWidget* widget, GtkRequisition* requisition) +{ + WebKitWebView* web_view = WEBKIT_WEB_VIEW(widget); + Frame* coreFrame = core(webkit_web_view_get_main_frame(web_view)); + if (!coreFrame) + return; + + FrameView* view = coreFrame->view(); + if (!view) + return; + + requisition->width = view->contentsWidth(); + requisition->height = view->contentsHeight(); +} + static void webkit_web_view_size_allocate(GtkWidget* widget, GtkAllocation* allocation) { GTK_WIDGET_CLASS(webkit_web_view_parent_class)->size_allocate(widget,allocation); @@ -582,6 +575,21 @@ static void webkit_web_view_size_allocate(GtkWidget* widget, GtkAllocation* allo frame->view()->adjustViewSize(); } +static void webkit_web_view_grab_focus(GtkWidget* widget) +{ + if (GTK_WIDGET_IS_SENSITIVE(widget)) { + WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); + FocusController* focusController = core(webView)->focusController(); + + if (focusController->focusedFrame()) + focusController->setFocused(true); + else + focusController->setFocusedFrame(core(webView)->mainFrame()); + } + + return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->grab_focus(widget); +} + static gboolean webkit_web_view_focus_in_event(GtkWidget* widget, GdkEventFocus* event) { // TODO: Improve focus handling as suggested in @@ -589,9 +597,14 @@ static gboolean webkit_web_view_focus_in_event(GtkWidget* widget, GdkEventFocus* GtkWidget* toplevel = gtk_widget_get_toplevel(widget); if (GTK_WIDGET_TOPLEVEL(toplevel) && gtk_window_has_toplevel_focus(GTK_WINDOW(toplevel))) { WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); + FocusController* focusController = core(webView)->focusController(); - Frame* frame = core(webView)->mainFrame(); - core(webView)->focusController()->setActive(frame); + focusController->setActive(true); + + if (focusController->focusedFrame()) + focusController->setFocused(true); + else + focusController->setFocusedFrame(core(webView)->mainFrame()); } return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_in_event(widget, event); } @@ -601,6 +614,7 @@ static gboolean webkit_web_view_focus_out_event(GtkWidget* widget, GdkEventFocus WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); core(webView)->focusController()->setActive(false); + core(webView)->focusController()->setFocused(false); return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_out_event(widget, event); } @@ -713,6 +727,11 @@ static gboolean webkit_web_view_real_web_view_ready(WebKitWebView*) return FALSE; } +static gboolean webkit_web_view_real_close_web_view(WebKitWebView*) +{ + return FALSE; +} + static WebKitNavigationResponse webkit_web_view_real_navigation_requested(WebKitWebView*, WebKitWebFrame*, WebKitNetworkRequest*) { return WEBKIT_NAVIGATION_RESPONSE_ACCEPT; @@ -847,6 +866,59 @@ static void webkit_web_view_real_copy_clipboard(WebKitWebView* webView) frame->editor()->command("Copy").execute(); } +static gboolean webkit_web_view_real_move_cursor (WebKitWebView* webView, GtkMovementStep step, gint count) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_VIEW (webView), FALSE); + g_return_val_if_fail(step == GTK_MOVEMENT_VISUAL_POSITIONS || + step == GTK_MOVEMENT_DISPLAY_LINES || + step == GTK_MOVEMENT_PAGES || + step == GTK_MOVEMENT_BUFFER_ENDS, FALSE); + g_return_val_if_fail(count == 1 || count == -1, FALSE); + + ScrollDirection direction; + ScrollGranularity granularity; + + switch (step) { + case GTK_MOVEMENT_DISPLAY_LINES: + granularity = ScrollByLine; + if (count == 1) + direction = ScrollDown; + else + direction = ScrollUp; + break; + case GTK_MOVEMENT_VISUAL_POSITIONS: + granularity = ScrollByLine; + if (count == 1) + direction = ScrollRight; + else + direction = ScrollLeft; + break; + case GTK_MOVEMENT_PAGES: + granularity = ScrollByPage; + if (count == 1) + direction = ScrollDown; + else + direction = ScrollUp; + break; + case GTK_MOVEMENT_BUFFER_ENDS: + granularity = ScrollByDocument; + if (count == 1) + direction = ScrollDown; + else + direction = ScrollUp; + break; + default: + g_assert_not_reached(); + return false; + } + + Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); + if (!frame->eventHandler()->scrollOverflow(direction, granularity)) + frame->view()->scroll(direction, granularity); + + return true; +} + static void webkit_web_view_real_paste_clipboard(WebKitWebView* webView) { Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); @@ -860,14 +932,6 @@ static void webkit_web_view_dispose(GObject* object) priv->disposing = TRUE; - if (priv->corePage) { - webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(object)); - - core(priv->mainFrame)->loader()->detachChildren(); - delete priv->corePage; - priv->corePage = NULL; - } - if (priv->horizontalAdjustment) { g_object_unref(priv->horizontalAdjustment); priv->horizontalAdjustment = NULL; @@ -881,7 +945,17 @@ static void webkit_web_view_dispose(GObject* object) if (priv->backForwardList) { g_object_unref(priv->backForwardList); priv->backForwardList = NULL; + } + if (priv->corePage) { + webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(object)); + + core(priv->mainFrame)->loader()->detachFromParent(); + delete priv->corePage; + priv->corePage = NULL; + } + + if (priv->webSettings) { g_signal_handlers_disconnect_by_func(priv->webSettings, (gpointer)webkit_web_view_settings_notify, webView); g_object_unref(priv->webSettings); priv->webSettings = NULL; @@ -900,9 +974,6 @@ static void webkit_web_view_dispose(GObject* object) gtk_target_list_unref(priv->paste_target_list); priv->paste_target_list = NULL; - - delete priv->userAgent; - priv->userAgent = NULL; } G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object); @@ -919,7 +990,7 @@ static void webkit_web_view_finalize(GObject* object) G_OBJECT_CLASS(webkit_web_view_parent_class)->finalize(object); } -static gboolean webkit_create_web_view_request_handled(GSignalInvocationHint* ihint, GValue* returnAccu, const GValue* handlerReturn, gpointer dummy) +static gboolean webkit_signal_accumulator_object_handled(GSignalInvocationHint* ihint, GValue* returnAccu, const GValue* handlerReturn, gpointer dummy) { gpointer newWebView = g_value_get_object(handlerReturn); g_value_set_object(returnAccu, newWebView); @@ -955,13 +1026,61 @@ static AtkObject* webkit_web_view_get_accessible(GtkWidget* widget) if (!doc) return NULL; - AccessibilityObject* coreAccessible = doc->axObjectCache()->get(doc->renderer()); + AccessibilityObject* coreAccessible = doc->axObjectCache()->getOrCreate(doc->renderer()); if (!coreAccessible || !coreAccessible->wrapper()) return NULL; return coreAccessible->wrapper(); } +static gdouble webViewGetDPI(WebKitWebView* webView) +{ + WebKitWebViewPrivate* priv = webView->priv; + WebKitWebSettings* webSettings = priv->webSettings; + gboolean enforce96DPI; + g_object_get(webSettings, "enforce-96-dpi", &enforce96DPI, NULL); + if (enforce96DPI) + return 96.0; + + gdouble DPI = defaultDPI; + GdkScreen* screen = gtk_widget_has_screen(GTK_WIDGET(webView)) ? gtk_widget_get_screen(GTK_WIDGET(webView)) : gdk_screen_get_default(); + if (screen) { + DPI = gdk_screen_get_resolution(screen); + // gdk_screen_get_resolution() returns -1 when no DPI is set. + if (DPI == -1) + DPI = defaultDPI; + } + ASSERT(DPI > 0); + return DPI; +} + +static void webkit_web_view_screen_changed(GtkWidget* widget, GdkScreen* previousScreen) +{ + WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); + WebKitWebViewPrivate* priv = webView->priv; + + if (priv->disposing) + return; + + WebKitWebSettings* webSettings = priv->webSettings; + Settings* settings = core(webView)->settings(); + gdouble DPI = webViewGetDPI(webView); + + guint defaultFontSize, defaultMonospaceFontSize, minimumFontSize, minimumLogicalFontSize; + + g_object_get(webSettings, + "default-font-size", &defaultFontSize, + "default-monospace-font-size", &defaultMonospaceFontSize, + "minimum-font-size", &minimumFontSize, + "minimum-logical-font-size", &minimumLogicalFontSize, + NULL); + + settings->setDefaultFontSize(defaultFontSize / 72.0 * DPI); + settings->setDefaultFixedFontSize(defaultMonospaceFontSize / 72.0 * DPI); + settings->setMinimumFontSize(minimumFontSize / 72.0 * DPI); + settings->setMinimumLogicalFontSize(minimumLogicalFontSize / 72.0 * DPI); +} + static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) { GtkBindingSet* binding_set; @@ -993,9 +1112,9 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[CREATE_WEB_VIEW] = g_signal_new("create-web-view", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (WebKitWebViewClass, create_web_view), - webkit_create_web_view_request_handled, + webkit_signal_accumulator_object_handled, NULL, webkit_marshal_OBJECT__OBJECT, WEBKIT_TYPE_WEB_VIEW , 1, @@ -1022,7 +1141,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[WEB_VIEW_READY] = g_signal_new("web-view-ready", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (WebKitWebViewClass, web_view_ready), g_signal_accumulator_true_handled, NULL, @@ -1030,6 +1149,26 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 0); /** + * WebKitWebView::close-web-view: + * @web_view: the object on which the signal is emitted + * @return: %TRUE to stop handlers from being invoked for the event or + * %FALSE to propagate the event furter + * + * Emitted when closing a WebView is requested. This occurs when a call + * is made from JavaScript's window.close function. + * + * Since 1.1.11 + */ + webkit_web_view_signals[CLOSE_WEB_VIEW] = g_signal_new("close-web-view", + G_TYPE_FROM_CLASS(webViewClass), + (GSignalFlags)G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WebKitWebViewClass, close_web_view), + g_signal_accumulator_true_handled, + NULL, + webkit_marshal_BOOLEAN__VOID, + G_TYPE_BOOLEAN, 0); + + /** * WebKitWebView::navigation-requested: * @web_view: the object on which the signal is emitted * @frame: the #WebKitWebFrame that required the navigation @@ -1043,7 +1182,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[NAVIGATION_REQUESTED] = g_signal_new("navigation-requested", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (WebKitWebViewClass, navigation_requested), webkit_navigation_request_handled, NULL, @@ -1059,13 +1198,13 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * @request: a #WebKitNetworkRequest * @navigation_action: a #WebKitWebNavigation * @policy_decision: a #WebKitWebPolicyDecision - * @return: TRUE if the signal will be handled, FALSE to have the + * @return: TRUE if a decision was made, FALSE to have the * default behavior apply * * Emitted when @frame requests opening a new window. With this * signal the browser can use the context of the request to decide * about the new window. If the request is not handled the default - * behavior is to allow opening the new window to load the url, + * behavior is to allow opening the new window to load the URI, * which will cause a create-web-view signal emission where the * browser handles the new window action but without information * of the context that caused the navigation. The following @@ -1075,12 +1214,19 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * information about the action that made this new window to be * opened. * + * Notice that if you return TRUE, meaning that you handled the + * signal, you are expected to have decided what to do, by calling + * webkit_web_policy_decision_ignore(), + * webkit_web_policy_decision_use(), or + * webkit_web_policy_decision_download() on the @policy_decision + * object. + * * Since: 1.1.4 */ webkit_web_view_signals[NEW_WINDOW_POLICY_DECISION_REQUESTED] = g_signal_new("new-window-policy-decision-requested", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -1098,18 +1244,25 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * @request: a #WebKitNetworkRequest * @navigation_action: a #WebKitWebNavigation * @policy_decision: a #WebKitWebPolicyDecision - * @return: TRUE if the signal will be handled, FALSE to have the + * @return: TRUE if a decision was made, FALSE to have the * default behavior apply * * Emitted when @frame requests a navigation to another page. * If this signal is not handled, the default behavior is to allow the * navigation. * + * Notice that if you return TRUE, meaning that you handled the + * signal, you are expected to have decided what to do, by calling + * webkit_web_policy_decision_ignore(), + * webkit_web_policy_decision_use(), or + * webkit_web_policy_decision_download() on the @policy_decision + * object. + * * Since: 1.0.3 */ webkit_web_view_signals[NAVIGATION_POLICY_DECISION_REQUESTED] = g_signal_new("navigation-policy-decision-requested", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -1127,7 +1280,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * @request: a WebKitNetworkRequest * @mimetype: the MIME type attempted to load * @policy_decision: a #WebKitWebPolicyDecision - * @return: TRUE if the signal will be handled, FALSE to have the + * @return: TRUE if a decision was made, FALSE to have the * default behavior apply * * Decide whether or not to display the given MIME type. If this @@ -1136,11 +1289,18 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * type; if WebKit is not able to show the MIME type nothing * happens. * + * Notice that if you return TRUE, meaning that you handled the + * signal, you are expected to have decided what to do, by calling + * webkit_web_policy_decision_ignore(), + * webkit_web_policy_decision_use(), or + * webkit_web_policy_decision_download() on the @policy_decision + * object. + * * Since: 1.0.3 */ webkit_web_view_signals[MIME_TYPE_POLICY_DECISION_REQUESTED] = g_signal_new("mime-type-policy-decision-requested", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -1168,7 +1328,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[WINDOW_OBJECT_CLEARED] = g_signal_new("window-object-cleared", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (WebKitWebViewClass, window_object_cleared), NULL, NULL, @@ -1194,11 +1354,22 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * the #WebKitDownload helper object you must handle this signal, * and return %FALSE. * + * Also, keep in mind that the default policy for WebKitGTK+ is to + * ignore files with a MIME type that it does not know how to + * handle, which means this signal won't be emitted in the default + * setup. One way to trigger downloads is to connect to + * WebKitWebView::mime-type-policy-decision-requested and call + * webkit_web_policy_decision_download() on the + * #WebKitWebPolicyDecision in the parameter list for the kind of + * files you want your application to download (a common solution + * is to download anything that WebKit can't handle, which you can + * figure out by using webkit_web_view_can_show_mime_type()). + * * Since: 1.1.2 */ webkit_web_view_signals[DOWNLOAD_REQUESTED] = g_signal_new("download-requested", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, @@ -1215,7 +1386,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[LOAD_STARTED] = g_signal_new("load-started", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1232,7 +1403,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[LOAD_COMMITTED] = g_signal_new("load-committed", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1248,7 +1419,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[LOAD_PROGRESS_CHANGED] = g_signal_new("load-progress-changed", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1256,9 +1427,34 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_NONE, 1, G_TYPE_INT); + /** + * WebKitWebView::load-error + * @web_view: the object on which the signal is emitted + * @web_frame: the #WebKitWebFrame + * @uri: the URI that triggered the error + * @web_error: the #GError that was triggered + * + * An error occurred while loading. By default, if the signal is not + * handled, the @web_view will display a stock error page. You need to + * handle the signal if you want to provide your own error page. + * + * Since: 1.1.6 + */ + webkit_web_view_signals[LOAD_ERROR] = g_signal_new("load-error", + G_TYPE_FROM_CLASS(webViewClass), + (GSignalFlags)(G_SIGNAL_RUN_LAST), + 0, + g_signal_accumulator_true_handled, + NULL, + webkit_marshal_BOOLEAN__OBJECT_STRING_POINTER, + G_TYPE_BOOLEAN, 3, + WEBKIT_TYPE_WEB_FRAME, + G_TYPE_STRING, + G_TYPE_POINTER); + webkit_web_view_signals[LOAD_FINISHED] = g_signal_new("load-finished", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1278,7 +1474,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[TITLE_CHANGED] = g_signal_new("title-changed", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1297,7 +1493,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[HOVERING_OVER_LINK] = g_signal_new("hovering-over-link", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1317,7 +1513,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[POPULATE_POPUP] = g_signal_new("populate-popup", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1325,9 +1521,38 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_NONE, 1, GTK_TYPE_MENU); + /** + * WebKitWebView::print-requested + * @web_view: the object in which the signal is emitted + * @web_frame: the frame that is requesting to be printed + * @return: %TRUE if the print request has been handled, %FALSE if + * the default handler should run + * + * Emitted when printing is requested by the frame, usually + * because of a javascript call. When handling this signal you + * should call webkit_web_frame_print_full() or + * webkit_web_frame_print() to do the actual printing. + * + * The default handler will present a print dialog and carry a + * print operation. Notice that this means that if you intend to + * ignore a print request you must connect to this signal, and + * return %TRUE. + * + * Since: 1.1.5 + */ + webkit_web_view_signals[PRINT_REQUESTED] = g_signal_new("print-requested", + G_TYPE_FROM_CLASS(webViewClass), + (GSignalFlags)G_SIGNAL_RUN_LAST, + 0, + g_signal_accumulator_true_handled, + NULL, + webkit_marshal_BOOLEAN__OBJECT, + G_TYPE_BOOLEAN, 1, + WEBKIT_TYPE_WEB_FRAME); + webkit_web_view_signals[STATUS_BAR_TEXT_CHANGED] = g_signal_new("status-bar-text-changed", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1337,7 +1562,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) webkit_web_view_signals[ICOND_LOADED] = g_signal_new("icon-loaded", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1346,7 +1571,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) webkit_web_view_signals[SELECTION_CHANGED] = g_signal_new("selection-changed", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, 0, NULL, NULL, @@ -1365,7 +1590,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[CONSOLE_MESSAGE] = g_signal_new("console-message", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(WebKitWebViewClass, console_message), g_signal_accumulator_true_handled, NULL, @@ -1384,7 +1609,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[SCRIPT_ALERT] = g_signal_new("script-alert", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(WebKitWebViewClass, script_alert), g_signal_accumulator_true_handled, NULL, @@ -1404,7 +1629,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[SCRIPT_CONFIRM] = g_signal_new("script-confirm", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(WebKitWebViewClass, script_confirm), g_signal_accumulator_true_handled, NULL, @@ -1425,7 +1650,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ webkit_web_view_signals[SCRIPT_PROMPT] = g_signal_new("script-prompt", G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + (GSignalFlags)G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(WebKitWebViewClass, script_prompt), g_signal_accumulator_true_handled, NULL, @@ -1501,11 +1726,60 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + /** + * WebKitWebView::move-cursor: + * @web_view: the object which received the signal + * @step: the type of movement, one of #GtkMovementStep + * @count: an integer indicating the subtype of movement. Currently + * the permitted values are '1' = forward, '-1' = backwards. + * + * The #WebKitWebView::move-cursor will be emitted to apply the + * cursor movement described by its parameters to the @view. + * + * Since: 1.1.4 + */ + webkit_web_view_signals[MOVE_CURSOR] = g_signal_new("move-cursor", + G_TYPE_FROM_CLASS(webViewClass), + (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(WebKitWebViewClass, move_cursor), + NULL, NULL, + webkit_marshal_BOOLEAN__ENUM_INT, + G_TYPE_BOOLEAN, 2, + GTK_TYPE_MOVEMENT_STEP, + G_TYPE_INT); + + /** + * WebKitWebView::create-plugin-widget: + * @web_view: the object which received the signal + * @mime_type: the mimetype of the requested object + * @uri: the URI to load + * @param: a #GHashTable with additional attributes (strings) + * + * The #WebKitWebView::create-plugin signal will be emitted to + * create a plugin widget for embed or object HTML tags. This + * allows to embed a GtkWidget as a plugin into HTML content. In + * case of a textual selection of the GtkWidget WebCore will attempt + * to set the property value of "webkit-widget-is-selected". This can + * be used to draw a visual indicator of the selection. + * + * Since: 1.1.8 + */ + webkit_web_view_signals[PLUGIN_WIDGET] = g_signal_new("create-plugin-widget", + G_TYPE_FROM_CLASS(webViewClass), + (GSignalFlags) (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + 0, + webkit_signal_accumulator_object_handled, + NULL, + webkit_marshal_OBJECT__STRING_STRING_POINTER, + GTK_TYPE_WIDGET, 3, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_HASH_TABLE); + /* * implementations of virtual methods */ webViewClass->create_web_view = webkit_web_view_real_create_web_view; webViewClass->web_view_ready = webkit_web_view_real_web_view_ready; + webViewClass->close_web_view = webkit_web_view_real_close_web_view; webViewClass->navigation_requested = webkit_web_view_real_navigation_requested; webViewClass->window_object_cleared = webkit_web_view_real_window_object_cleared; webViewClass->choose_file = webkit_web_view_real_choose_file; @@ -1517,6 +1791,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) webViewClass->cut_clipboard = webkit_web_view_real_cut_clipboard; webViewClass->copy_clipboard = webkit_web_view_real_copy_clipboard; webViewClass->paste_clipboard = webkit_web_view_real_paste_clipboard; + webViewClass->move_cursor = webkit_web_view_real_move_cursor; GObjectClass* objectClass = G_OBJECT_CLASS(webViewClass); objectClass->dispose = webkit_web_view_dispose; @@ -1534,10 +1809,13 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) widgetClass->motion_notify_event = webkit_web_view_motion_event; widgetClass->scroll_event = webkit_web_view_scroll_event; widgetClass->size_allocate = webkit_web_view_size_allocate; + widgetClass->size_request = webkit_web_view_size_request; widgetClass->popup_menu = webkit_web_view_popup_menu_handler; + widgetClass->grab_focus = webkit_web_view_grab_focus; widgetClass->focus_in_event = webkit_web_view_focus_in_event; widgetClass->focus_out_event = webkit_web_view_focus_out_event; widgetClass->get_accessible = webkit_web_view_get_accessible; + widgetClass->screen_changed = webkit_web_view_screen_changed; GtkContainerClass* containerClass = GTK_CONTAINER_CLASS(webViewClass); containerClass->add = webkit_web_view_container_add; @@ -1582,6 +1860,49 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_SHIFT_MASK, "paste_clipboard", 0); + /* Movement */ + + gtk_binding_entry_add_signal(binding_set, GDK_Down, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_DISPLAY_LINES, + G_TYPE_INT, 1); + gtk_binding_entry_add_signal(binding_set, GDK_Up, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_DISPLAY_LINES, + G_TYPE_INT, -1); + gtk_binding_entry_add_signal(binding_set, GDK_Right, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_VISUAL_POSITIONS, + G_TYPE_INT, 1); + gtk_binding_entry_add_signal(binding_set, GDK_Left, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_VISUAL_POSITIONS, + G_TYPE_INT, -1); + gtk_binding_entry_add_signal(binding_set, GDK_space, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_PAGES, + G_TYPE_INT, 1); + gtk_binding_entry_add_signal(binding_set, GDK_space, GDK_SHIFT_MASK, + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_PAGES, + G_TYPE_INT, -1); + gtk_binding_entry_add_signal(binding_set, GDK_Page_Down, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_PAGES, + G_TYPE_INT, 1); + gtk_binding_entry_add_signal(binding_set, GDK_Page_Up, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_PAGES, + G_TYPE_INT, -1); + gtk_binding_entry_add_signal(binding_set, GDK_End, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_BUFFER_ENDS, + G_TYPE_INT, 1); + gtk_binding_entry_add_signal(binding_set, GDK_Home, static_cast<GdkModifierType>(0), + "move-cursor", 2, + G_TYPE_ENUM, GTK_MOVEMENT_BUFFER_ENDS, + G_TYPE_INT, -1); + /* * properties */ @@ -1595,8 +1916,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_TITLE, g_param_spec_string("title", - "Title", - "Returns the @web_view's document title", + _("Title"), + _("Returns the @web_view's document title"), NULL, WEBKIT_PARAM_READABLE)); @@ -1609,12 +1930,11 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_URI, g_param_spec_string("uri", - "URI", - "Returns the current URI of the contents displayed by the @web_view", + _("URI"), + _("Returns the current URI of the contents displayed by the @web_view"), NULL, WEBKIT_PARAM_READABLE)); -#if GTK_CHECK_VERSION(2,10,0) /** * WebKitWebView:copy-target-list: * @@ -1624,8 +1944,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_COPY_TARGET_LIST, g_param_spec_boxed("copy-target-list", - "Copy target list", - "The list of targets this web view supports for clipboard copying", + _("Copy target list"), + _("The list of targets this web view supports for clipboard copying"), GTK_TYPE_TARGET_LIST, WEBKIT_PARAM_READABLE)); @@ -1638,16 +1958,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_PASTE_TARGET_LIST, g_param_spec_boxed("paste-target-list", - "Paste target list", - "The list of targets this web view supports for clipboard pasting", + _("Paste target list"), + _("The list of targets this web view supports for clipboard pasting"), GTK_TYPE_TARGET_LIST, WEBKIT_PARAM_READABLE)); -#endif g_object_class_install_property(objectClass, PROP_SETTINGS, g_param_spec_object("settings", - "Settings", - "An associated WebKitWebSettings instance", + _("Settings"), + _("An associated WebKitWebSettings instance"), WEBKIT_TYPE_WEB_SETTINGS, WEBKIT_PARAM_READWRITE)); @@ -1660,8 +1979,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_WEB_INSPECTOR, g_param_spec_object("web-inspector", - "Web Inspector", - "The associated WebKitWebInspector instance", + _("Web Inspector"), + _("The associated WebKitWebInspector instance"), WEBKIT_TYPE_WEB_INSPECTOR, WEBKIT_PARAM_READABLE)); @@ -1681,15 +2000,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) g_object_class_install_property(objectClass, PROP_EDITABLE, g_param_spec_boolean("editable", - "Editable", - "Whether content can be modified by the user", + _("Editable"), + _("Whether content can be modified by the user"), FALSE, WEBKIT_PARAM_READWRITE)); g_object_class_install_property(objectClass, PROP_TRANSPARENT, g_param_spec_boolean("transparent", - "Transparent", - "Whether content has a transparent background", + _("Transparent"), + _("Whether content has a transparent background"), FALSE, WEBKIT_PARAM_READWRITE)); @@ -1702,8 +2021,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_ZOOM_LEVEL, g_param_spec_float("zoom-level", - "Zoom level", - "The level of zoom of the content", + _("Zoom level"), + _("The level of zoom of the content"), G_MINFLOAT, G_MAXFLOAT, 1.0f, @@ -1718,8 +2037,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_FULL_CONTENT_ZOOM, g_param_spec_boolean("full-content-zoom", - "Full content zoom", - "Whether the full content is scaled when zooming", + _("Full content zoom"), + _("Whether the full content is scaled when zooming"), FALSE, WEBKIT_PARAM_READWRITE)); @@ -1732,8 +2051,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_ENCODING, g_param_spec_string("encoding", - "Encoding", - "The default encoding of the web view", + _("Encoding"), + _("The default encoding of the web view"), NULL, WEBKIT_PARAM_READABLE)); @@ -1746,57 +2065,41 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) */ g_object_class_install_property(objectClass, PROP_CUSTOM_ENCODING, g_param_spec_string("custom-encoding", - "Custom Encoding", - "The custom encoding of the web view", + _("Custom Encoding"), + _("The custom encoding of the web view"), NULL, WEBKIT_PARAM_READWRITE)); - g_type_class_add_private(webViewClass, sizeof(WebKitWebViewPrivate)); -} - -static gdouble webViewGetDPI(WebKitWebView* webView) -{ - WebKitWebViewPrivate* priv = webView->priv; - WebKitWebSettings* webSettings = priv->webSettings; - gboolean enforce96DPI; - g_object_get(webSettings, "enforce-96-dpi", &enforce96DPI, NULL); - if (enforce96DPI) - return 96.0; - - gdouble DPI = defaultDPI; -#if GTK_CHECK_VERSION(2,10,0) - GdkScreen* screen = gtk_widget_has_screen(GTK_WIDGET(webView)) ? gtk_widget_get_screen(GTK_WIDGET(webView)) : gdk_screen_get_default(); - if (screen) { - DPI = gdk_screen_get_resolution(screen); - // gdk_screen_get_resolution() returns -1 when no DPI is set. - if (DPI == -1) - DPI = defaultDPI; - } -#endif - ASSERT(DPI > 0); - return DPI; -} - -static void webkit_web_view_screen_changed(WebKitWebView* webView, GdkScreen* previousScreen, gpointer userdata) -{ - WebKitWebViewPrivate* priv = webView->priv; - WebKitWebSettings* webSettings = priv->webSettings; - Settings* settings = core(webView)->settings(); - gdouble DPI = webViewGetDPI(webView); - - guint defaultFontSize, defaultMonospaceFontSize, minimumFontSize, minimumLogicalFontSize; + /** + * WebKitWebView:load-status: + * + * Determines the current status of the load. + * + * Since: 1.1.7 + */ + g_object_class_install_property(objectClass, PROP_LOAD_STATUS, + g_param_spec_enum("load-status", + "Load Status", + "Determines the current status of the load", + WEBKIT_TYPE_LOAD_STATUS, + WEBKIT_LOAD_FINISHED, + WEBKIT_PARAM_READABLE)); - g_object_get(webSettings, - "default-font-size", &defaultFontSize, - "default-monospace-font-size", &defaultMonospaceFontSize, - "minimum-font-size", &minimumFontSize, - "minimum-logical-font-size", &minimumLogicalFontSize, - NULL); + /** + * WebKitWebView:progress: + * + * Determines the current progress of the load. + * + * Since: 1.1.7 + */ + g_object_class_install_property(objectClass, PROP_PROGRESS, + g_param_spec_double("progress", + "Progress", + "Determines the current progress of the load", + 0.0, 1.0, 1.0, + WEBKIT_PARAM_READABLE)); - settings->setDefaultFontSize(defaultFontSize / 72.0 * DPI); - settings->setDefaultFixedFontSize(defaultMonospaceFontSize / 72.0 * DPI); - settings->setMinimumFontSize(minimumFontSize / 72.0 * DPI); - settings->setMinimumLogicalFontSize(minimumLogicalFontSize / 72.0 * DPI); + g_type_class_add_private(webViewClass, sizeof(WebKitWebViewPrivate)); } static void webkit_web_view_update_settings(WebKitWebView* webView) @@ -1808,7 +2111,8 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) gchar* defaultEncoding, *cursiveFontFamily, *defaultFontFamily, *fantasyFontFamily, *monospaceFontFamily, *sansSerifFontFamily, *serifFontFamily, *userStylesheetUri; gboolean autoLoadImages, autoShrinkImages, printBackgrounds, enableScripts, enablePlugins, enableDeveloperExtras, resizableTextAreas, - enablePrivateBrowsing; + enablePrivateBrowsing, enableCaretBrowsing, enableHTML5Database, enableHTML5LocalStorage, + enableXSSAuditor, javascriptCanOpenWindows, enableOfflineWebAppCache; g_object_get(webSettings, "default-encoding", &defaultEncoding, @@ -1827,6 +2131,12 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) "user-stylesheet-uri", &userStylesheetUri, "enable-developer-extras", &enableDeveloperExtras, "enable-private-browsing", &enablePrivateBrowsing, + "enable-caret-browsing", &enableCaretBrowsing, + "enable-html5-database", &enableHTML5Database, + "enable-html5-local-storage", &enableHTML5LocalStorage, + "enable-xss-auditor", &enableXSSAuditor, + "javascript-can-open-windows-automatically", &javascriptCanOpenWindows, + "enable-offline-web-application-cache", &enableOfflineWebAppCache, NULL); settings->setDefaultTextEncodingName(defaultEncoding); @@ -1845,6 +2155,12 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) settings->setUserStyleSheetLocation(KURL(KURL(), userStylesheetUri)); settings->setDeveloperExtrasEnabled(enableDeveloperExtras); settings->setPrivateBrowsingEnabled(enablePrivateBrowsing); + settings->setCaretBrowsingEnabled(enableCaretBrowsing); + settings->setDatabasesEnabled(enableHTML5Database); + settings->setLocalStorageEnabled(enableHTML5LocalStorage); + settings->setXSSAuditorEnabled(enableXSSAuditor); + settings->setJavaScriptCanOpenWindowsAutomatically(javascriptCanOpenWindows); + settings->setOfflineWebApplicationCacheEnabled(enableOfflineWebAppCache); g_free(defaultEncoding); g_free(cursiveFontFamily); @@ -1855,7 +2171,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) g_free(serifFontFamily); g_free(userStylesheetUri); - webkit_web_view_screen_changed(webView, NULL, NULL); + webkit_web_view_screen_changed(GTK_WIDGET(webView), NULL); } static inline gint pixelsFromSize(WebKitWebView* webView, gint size) @@ -1896,7 +2212,7 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar else if (name == g_intern_string("minimum-logical-font-size")) settings->setMinimumLogicalFontSize(pixelsFromSize(webView, g_value_get_int(&value))); else if (name == g_intern_string("enforce-96-dpi")) - webkit_web_view_screen_changed(webView, NULL, NULL); + webkit_web_view_screen_changed(GTK_WIDGET(webView), NULL); else if (name == g_intern_string("auto-load-images")) settings->setLoadsImagesAutomatically(g_value_get_boolean(&value)); else if (name == g_intern_string("auto-shrink-images")) @@ -1915,6 +2231,18 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar settings->setDeveloperExtrasEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("enable-private-browsing")) settings->setPrivateBrowsingEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-caret-browsing")) + settings->setCaretBrowsingEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-html5-database")) + settings->setDatabasesEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-html5-local-storage")) + settings->setLocalStorageEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-xss-auditor")) + settings->setXSSAuditorEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("javascript-can-open-windows-automatically")) + settings->setJavaScriptCanOpenWindowsAutomatically(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-offline-web-application-cache")) + settings->setOfflineWebApplicationCacheEnabled(g_value_get_boolean(&value)); else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name)) g_warning("Unexpected setting '%s'", name); g_value_unset(&value); @@ -1950,11 +2278,7 @@ static void webkit_web_view_init(WebKitWebView* webView) priv->zoomFullContent = FALSE; -#if GTK_CHECK_VERSION(2,10,0) GdkAtom textHtml = gdk_atom_intern_static_string("text/html"); -#else - GdkAtom textHtml = gdk_atom_intern("text/html", false); -#endif /* Targets for copy */ priv->copy_target_list = gtk_target_list_new(NULL, 0); gtk_target_list_add(priv->copy_target_list, textHtml, 0, WEBKIT_WEB_VIEW_TARGET_INFO_HTML); @@ -1967,7 +2291,6 @@ static void webkit_web_view_init(WebKitWebView* webView) priv->webSettings = webkit_web_settings_new(); webkit_web_view_update_settings(webView); - g_signal_connect(webView, "screen-changed", G_CALLBACK(webkit_web_view_screen_changed), NULL); g_signal_connect(priv->webSettings, "notify", G_CALLBACK(webkit_web_view_settings_notify), webView); priv->webWindowFeatures = webkit_web_window_features_new(); @@ -1989,6 +2312,31 @@ void webkit_web_view_notify_ready(WebKitWebView* webView) g_signal_emit(webView, webkit_web_view_signals[WEB_VIEW_READY], 0, &isHandled); } +void webkit_web_view_request_download(WebKitWebView* webView, WebKitNetworkRequest* request, const ResourceResponse& response) +{ + g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); + + WebKitDownload* download = webkit_download_new(request); + + if (!response.isNull() && !response.suggestedFilename().isEmpty()) + webkit_download_set_suggested_filename(download, response.suggestedFilename().utf8().data()); + + gboolean handled; + g_signal_emit(webView, webkit_web_view_signals[DOWNLOAD_REQUESTED], 0, download, &handled); + + if (!handled) { + webkit_download_cancel(download); + g_object_unref(download); + return; + } + + webkit_download_start(download); +} + +bool webkit_web_view_use_primary_for_paste(WebKitWebView* webView) +{ + return webView->priv->usePrimaryForPaste; +} void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* webSettings) { @@ -2281,7 +2629,7 @@ void webkit_web_view_open(WebKitWebView* webView, const gchar* uri) // We used to support local paths, unlike the newer // function webkit_web_view_load_uri if (g_path_is_absolute(uri)) { - gchar* fileUri = g_strdup_printf("file://%s", uri); + gchar* fileUri = g_filename_to_uri(uri, NULL, NULL); webkit_web_view_load_uri(webView, fileUri); g_free(fileUri); } @@ -2981,6 +3329,35 @@ SoupSession* webkit_get_default_session () return ResourceHandle::defaultSession(); } +/** + * webkit_web_view_get_load_status: + * @web_view: a #WebKitWebView + * + * Determines the current status of the load. + * + * Since: 1.1.7 + */ +WebKitLoadStatus webkit_web_view_get_load_status(WebKitWebView* webView) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), WEBKIT_LOAD_FINISHED); + + WebKitWebViewPrivate* priv = webView->priv; + return priv->loadStatus; +} + +/** + * webkit_web_view_get_progress: + * @web_view: a #WebKitWebView + * + * Determines the current progress of the load. + * + * Since: 1.1.7 + */ +gdouble webkit_web_view_get_progress(WebKitWebView* webView) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 1.0); + + return core(webView)->progress()->estimatedProgress(); } /** @@ -3050,3 +3427,38 @@ const char* webkit_web_view_get_custom_encoding(WebKitWebView* webView) } else return NULL; } + +/** + * webkit_web_view_move_cursor: + * @web_view: a #WebKitWebView + * @step: a #GtkMovementStep + * @count: integer describing the direction of the movement. 1 for forward, -1 for backwards. + * + * Move the cursor in @view as described by @step and @count. + * + * Since: 1.1.4 + */ +void webkit_web_view_move_cursor(WebKitWebView* webView, GtkMovementStep step, gint count) +{ + g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); + g_return_if_fail(step == GTK_MOVEMENT_VISUAL_POSITIONS || + step == GTK_MOVEMENT_DISPLAY_LINES || + step == GTK_MOVEMENT_PAGES || + step == GTK_MOVEMENT_BUFFER_ENDS); + g_return_if_fail(count == 1 || count == -1); + + gboolean handled; + g_signal_emit(webView, webkit_web_view_signals[MOVE_CURSOR], 0, step, count, &handled); +} + +void webkit_web_view_set_group_name(WebKitWebView* webView, const gchar* groupName) +{ + g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); + + WebKitWebViewPrivate* priv = webView->priv; + + if (!priv->corePage) + return; + + priv->corePage->setGroupName(String::fromUTF8(groupName)); +} diff --git a/WebKit/gtk/webkit/webkitwebview.h b/WebKit/gtk/webkit/webkitwebview.h index 1455a79..fbdefa8 100644 --- a/WebKit/gtk/webkit/webkitwebview.h +++ b/WebKit/gtk/webkit/webkitwebview.h @@ -28,6 +28,7 @@ #include <webkit/webkitdefines.h> #include <webkit/webkitwebbackforwardlist.h> +#include <webkit/webkitwebframe.h> #include <webkit/webkitwebhistoryitem.h> #include <webkit/webkitwebsettings.h> @@ -73,6 +74,8 @@ struct _WebKitWebViewClass { gboolean (* web_view_ready) (WebKitWebView* web_view); + gboolean (* close_web_view) (WebKitWebView* web_view); + WebKitNavigationResponse (* navigation_requested) (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request); @@ -103,6 +106,9 @@ struct _WebKitWebViewClass { void (* cut_clipboard) (WebKitWebView *web_view); void (* copy_clipboard) (WebKitWebView *web_view); void (* paste_clipboard) (WebKitWebView *web_view); + gboolean (* move_cursor) (WebKitWebView *web_view, + GtkMovementStep step, + gint count); /* * internal @@ -117,8 +123,6 @@ struct _WebKitWebViewClass { void (*_webkit_reserved3) (void); void (*_webkit_reserved4) (void); void (*_webkit_reserved5) (void); - void (*_webkit_reserved6) (void); - void (*_webkit_reserved7) (void); }; WEBKIT_API GType @@ -324,6 +328,17 @@ webkit_web_view_set_custom_encoding (WebKitWebView * webView, WEBKIT_API const char* webkit_web_view_get_custom_encoding (WebKitWebView * webView); +WEBKIT_API void +webkit_web_view_move_cursor (WebKitWebView * webView, + GtkMovementStep step, + gint count); + +WEBKIT_API WebKitLoadStatus +webkit_web_view_get_load_status (WebKitWebView *web_view); + +WEBKIT_API gdouble +webkit_web_view_get_progress (WebKitWebView *web_view); + G_END_DECLS #endif diff --git a/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp b/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp index 7e61b59..47610d3 100644 --- a/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp +++ b/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp @@ -54,8 +54,6 @@ * </programlisting></informalexample> */ -extern "C" { - enum { PROP_0, @@ -102,6 +100,8 @@ static void webkit_web_window_features_class_init(WebKitWebWindowFeaturesClass* GParamFlags flags = (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT); + webkit_init(); + /** * WebKitWebWindowFeatures:x: * @@ -438,6 +438,3 @@ gboolean webkit_web_window_features_equal(WebKitWebWindowFeatures* features1, We return TRUE; return FALSE; } - - -} diff --git a/WebKit/gtk/webkitmarshal.list b/WebKit/gtk/webkitmarshal.list index b714a7c..aa0d40c 100644 --- a/WebKit/gtk/webkitmarshal.list +++ b/WebKit/gtk/webkitmarshal.list @@ -1,3 +1,4 @@ +BOOLEAN:ENUM,INT BOOLEAN:INT,INT,STRING BOOLEAN:OBJECT BOOLEAN:OBJECT,OBJECT,OBJECT,OBJECT @@ -9,6 +10,7 @@ BOOLEAN:STRING,INT,STRING BOOLEAN:VOID ENUM:OBJECT,OBJECT OBJECT:OBJECT +OBJECT:STRING,STRING,POINTER OBJECT:VOID VOID:OBJECT,OBJECT VOID:OBJECT,POINTER,POINTER |